Mysql PHP头问题
我目前正在学习数据库和php,遇到了很多麻烦。 希望你们能帮忙。。好的,问题来了 我在Mysql中创建了3个表,Admin(在Mac上使用PHPADMIN) 我创建了3个单独的html表单,将信息输入到这些表中 当我点击submit时,我需要将信息重定向并显示在一个单独的.php/html页面上。我遇到的问题是,信息被正确地输入到表中,它第一次将我重定向到配置文件页面。 当我返回并在同一表单中输入另一个条目(包含不同的信息)并点击submit时,它会将我带到profile页面,但从第一个条目加载相同的信息。无论我尝试重新输入信息多少次,它都会继续加载第一个条目。 我输入的所有信息都正确地输入到表中 这是提交的代码Mysql PHP头问题,php,mysql,Php,Mysql,我目前正在学习数据库和php,遇到了很多麻烦。 希望你们能帮忙。。好的,问题来了 我在Mysql中创建了3个表,Admin(在Mac上使用PHPADMIN) 我创建了3个单独的html表单,将信息输入到这些表中 当我点击submit时,我需要将信息重定向并显示在一个单独的.php/html页面上。我遇到的问题是,信息被正确地输入到表中,它第一次将我重定向到配置文件页面。 当我返回并在同一表单中输入另一个条目(包含不同的信息)并点击submit时,它会将我带到profile页面,但从第一个条目加载
**<?php
require 'connect_mysql.php';
error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);
$SalesmanID = trim($_REQUEST['SalesmanID']);
$password = trim($_REQUEST['password']);
$FirstName = trim($_REQUEST['FirstName']);
$LastName = trim($_REQUEST['LastName']);
$Phone = trim($_REQUEST['Phone']);
$Email = trim($_REQUEST['Email']);
$DateAdded = trim($_REQUEST['DateAdded']);
// Handle user request
$insert_sql = "INSERT INTO Salesman (SalesmanID, password, FirstName, LastName, Phone, Email, DateAdded) " .
"VALUES ('{$SalesmanID}','{$password}', '{$FirstName}', '{$LastName}', '{$Phone}', '{$Email}','{$DateAdded}') ; " ;
// Insert the user into the database
mysql_query($insert_sql)
or die(mysql_error());
// Redirect the user to the page that displays user information
header("Location:../staff/salesmen/salesmen_profile_page.php?SalesmanID=" . mysql_insert_id());
exit();
?>**
***我认为错误已被抑制。。。尝试忽略错误报告,然后再次尝试查看是否有任何错误。Steven
你们并没有给我们足够的信息,比如HTTP方法(POST/GET)、Web服务器、表单的源代码等等
不过,根据您提供的信息,我的最佳选择是您的302重定向以某种方式被缓存,并且您总是被重定向到相同的。/staff/salesmans/salesmans\u profile\u page.php?SalesmanID=$ID
页面
这可能是由于您的Web服务器前面的代理/缓存服务器、Web服务器配置错误、缓存头、使用的扩展等造成的。可能您的服务器被重定向,状态为“301已永久移动”
,请在浏览器的devtools中查看。如果是这样,您可能希望尝试设置附加标题:302 found
或307 Temporary Redirect
首先,停止使用mysql\uuuuz
方法-这些方法已被弃用多年,并且存在严重缺陷。使用PDO或MySQLi。其次,您的代码对SQL注入非常开放,因此不难破解,任何包括字符“
在内的内容都会破坏您的数据库调用。使用准备好的语句和绑定变量。第三,不要将密码存储在明文中。对它们进行散列(最好使用bcrypt函数password\u Hash
),通过phpmyadminun运行select语句,确保其正确性幸运的是,我目前正在学习的课程使用Mysql,他们希望我们学习的所有信息和书籍都使用这种旧方法。。我不知道从哪里开始使用Mysqli。@StevenMihelakis然后至少使用mysql\u real\u escape\u string
。谢谢大家的建议,在我翻阅这本书并从头开始之前,我什么都做不了。意识到我需要创建一个不同的主键(如UserID),并使其自动递增,而不是作为字段包含在表单中。。。现在一切都正常了。当我点击submit时,它在开发工具中说,302找到了,方法是POST,我使用的是localhost服务器MAMPAs,这在我的回答中已经解释过,并且得到了您上一条评论(302找到)的确认,您遇到了缓存(导航器)问题。
**<?php
require '../../scripts/connect_mysql.php';
error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);
// Get the user ID of the user to show
$SalesmanID = $_REQUEST['SalesmanID'];
// Build the SELECT statement
$select_query = "SELECT * FROM Salesman WHERE SalesmanID = " . $SalesmanID;
// Run the query
$result = mysql_query($select_query);
if ($result) {
$row = mysql_fetch_array($result);
$SalesmanID = $row['SalesmanID'];
$FirstName = $row['FirstName'];
$LastName = $row['LastName'];
$Phone = $row['Phone'];
$Email = $row['Email'];
while($row = mysql_fetch_array($result)){
}
} else {
die("Error locating user with ID {$SalesmanID}");
}
?>**