PHP脚本将文件标题为“未知”


PHP Script going to file titled "unknown"

我正在编写一个脚本,用户从一个框中选择一个选项,然后他们点击提交,他们的选择被写入MySQL数据库。但是,每当我尝试单击提交时,url就会从(例如:www.stackoverflow.com/questions变为www.stackoverflow.com/questions/unknown)更改。我已经找了好几个小时了,似乎还是不明白为什么会发生这种情况。有谁能告诉我是什么原因造成的吗?这个脚本应该在用户点击提交按钮时运行。

if( $_POST )
{
$con = mysql_connect("localhost","username","password");
if (!$con)
{
  die('Could not connect: ' . mysql_error());
}
mysql_select_db("db_name", $con);
$q1 = $_POST['q1'];
$q2 = $_POST['q2'];
$q3 = $_POST['q3'];
$q4 = $_POST['q4'];
$q5 = $_POST['q5'];
$q6 = $_POST['q6'];
$q7 = $_POST['q7'];
$q7 = $_POST['q7'];
$q8 = $_POST['q8'];
$qf1 = $_POST['qf1'];
$qf2 = $_POST['qf2'];
$qf3 = $_POST['qf3'];
$qf4 = $_POST['qf4'];
$s1 = $_POST['s1'];
$s2 = $_POST['s2'];
$final = $_POST['final'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];

$q1 = mysql_real_escape_string($q1);
$q2 = mysql_real_escape_string($q2);
$q3 = mysql_real_escape_string($q3);
$q4 = mysql_real_escape_string($q4);
$q5 = mysql_real_escape_string($q5);
$q6 = mysql_real_escape_string($q6);
$q7 = mysql_real_escape_string($q7);
$q8 = mysql_real_escape_string($q8);
$qf1 = mysql_real_escape_string($qf1);
$qf2 = mysql_real_escape_string($qf2);
$qf3 = mysql_real_escape_string($qf3);
$qf4 = mysql_real_escape_string($qf4);
$s1 = mysql_real_escape_string($s1);
$s2 = mysql_real_escape_string($s2);
$final = mysql_real_escape_string($final);
$fname = mysql_real_escape_string($fname);
$lname = mysql_real_escape_string($lname);

  $query = "
 INSERT INTO `db_name`.`table_name` (`qualifier_1`, `qualifier_2`, `qualifier_3`, `qualifier_4`, `qualifier_5`, `qualifier_6`, `qualifier_7`, `qualifier_8`, `quarter_1`, `quarter_2`, `quarter_3`, `quarter_4`, `semi_1`, `semi_2`, 'final', 'first_name', 'last_name', 'TimeDate') VALUES ('$q1', '$q2', '$q3', '$q4', '$q5', '$q6', '$q7', '$q8', '$qf1', '$qf2', '$qf3', '$qf4', '$s1', '$s2', '$final', '$fname', '$lname', CURRENT_TIMESTAMP);";
mysql_query($query);
echo "<h2>Thank you for your Submission!</h2>";
mysql_close($con);
}
 ?>

由于您运行的是较旧的IE版本,因此您所看到的与PHP完全无关,而是与JavaScript有关。在JavaScript中,如果你连接一个未定义的变量,单词'undefined'实际上是连接在一起的,例如:

var mystring = "foo" + bar;

如果bar未定义,则设置mystring为"fooundefined"。在IE7或更早的版本中,它将改为"foounknown"。

必须有JavaScript设置表单的动作,所以这一切都发生在你发布的代码之外。查看MDN (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form)了解有关使用表单元素的详细信息。要么你的'动作'是在js中设置的,要么按钮的'动作'是设置的。检查该代码,您将看到一些未定义变量的连接导致此