【问题标题】:Error message: Premature end of script headers错误消息:脚本头过早结束
【发布时间】:2012-04-30 12:27:54
【问题描述】:

这可以正常工作,但我突然收到此错误消息。 “错误信息: 脚本头过早结束:cust.php"

<?php
    //contact to database
    $user = '';
$pass = '';
$db_name=""; // Database name 
$tbl_name="cust"; // Table name

// Create a connection to the MySql server
$conn = mysql_connect('', $user, $pass);
mysql_select_db("$db_name")or die("cannot select DB");


//Get data in local variable
 $v_Fname=$_POST['First_Name'];
 $v_Lname=$_POST['Last_Name'];
 $v_FAdd=$_POST['First_Add_Line'];
 $v_postCode=$_POST['Postcode'];
 $v_Num=$_POST['ContactNum'];
 $v_Email=$_POST['Email'];


// check for null values
if ($v_Fname==""  or $v_Lname=="" or $v_FAdd==""  or $v_postCode==""  or $v_Num=="" or         $v_Email=="")
echo "All fields must be entered, hit back button and re-enter information";
else{
$query="INSERT INTO       $tbl_name(First_Name,Last_Name,First_Add_Line,Postcode,ContactNum,Email) values('$v_Fname','$v_Lname','$v_FAdd','$v_postCode','$v_Num','$v_Email')";
mysql_query($query)  or die(mysql_error());
echo "You have registered as a Customer, Thank you";
echo "<BR>";
echo "<a href='index.html'>Back to main page</a>";
}

mysql_close();

?>

请帮忙,提前谢谢你:)

【问题讨论】:

  • 您的代码易受 SQL 注入攻击。您真的应该使用准备好的语句,您将变量作为参数传递到其中,这些参数不会针对 SQL 进行评估。如果您不知道我在说什么或如何解决它,请阅读 Bobby Tables 的故事。
  • @eggyal 一个小时前我刚做了一个关于 SQL 注入的讲座,真有趣。但安全并不是真正的问题。
  • 在你被黑客入侵之前,你总是这么说;)除非应用程序仅供您个人使用,请始终注意安全性...
  • @adrien 只是我正在进行的小项目,它永远不会被发布:)
  • 在问题中包含您的数据库的主机名、用户和密码可能不是一个好主意..

标签: php mysql sql-server database


【解决方案1】:

你试试这个

mysql_select_db("$db_name",$conn)or die("cannot select DB");

您还应该为每个帖子变量使用mysql_real_escape_string()

谢谢。

【讨论】:

  • 尝试应用空格,例如 $query="INSERT INTO $tbl_name (
  • 没有理由引用变量名。 "$foo" == $foo,所以使用mysql_select_db($db_name, $conn)
猜你喜欢
  • 2017-07-22
  • 2013-07-09
  • 1970-01-01
  • 2012-12-03
  • 2012-06-09
  • 2011-05-28
  • 2014-06-03
  • 2011-05-19
相关资源
最近更新 更多