什么是PHP中的ispostback(.NET)?

时间:2011-07-26 14:17:22

标签: php asp.net mysql database

我刚开始用PHP编码, 我写了第一个用于通过网络表单插入数据的 php + mysql 程序。它工作正常,但每当我刷新页面时,它会自动将空记录保存到我的数据库。 我知道.NET中的解决方案是ispostback,但不是在PHP? 有人可以用PHP给我一些想法。

代码在这里:

<body>
<form action="mySQLTest.php" method="post">
First Name :<input type="text" name ="txtFirstName"/> <br/>
Last Name: <input type="text" name ="txtLastName"/>   <br/>
Age : <input type="text" name= "txtAge" /> <br/>
<input type="submit"/>
</form>
<?php
   $con = mysql_connect("localhost","root","");
   if(!$con)
   {
    die('Could not Connect:' .mysql_error());
   }

   mysql_select_db("test", $con);

   if($_REQUEST[])
   {

   $sql1 = "Insert into info(FirstName, LastName, Age) Values('$_POST[txtFirstName]','$_POST[txtLastName]','$_POST[txtAge]')";
   }
   if(!mysql_query($sql1, $con))
   {
    die('Error: '.mysql_error());
   }
   else                                
   {
   echo "1 Record Added";
   }

   mysql_close($con)
?>
</body>

2 个答案:

答案 0 :(得分:4)

您是否尝试过if ($_SERVER['REQUEST_METHOD']=='POST')

更新回答

if ($_SERVER['REQUEST_METHOD']=='POST') {
[insert...]
header('Location: added_record.php');
}

答案 1 :(得分:1)

当你使用POST方法时,最好(imho)使用$ _POST而不是$ _REQUEST。要检查您是否有数据,可以使用isset($_POST['txtFirstName']);。如果您需要所有数据,最好对所有输入字段执行此操作,从而产生

if(isset($_POST['txtFirstName']) && isset($_POST['txtLastName']) && isset($_POST['txtAge'])) {
    // do stuff
}

如果您想知道是否有任何使用帖子提交的字段,您可以使用if(!empty($_POST)) {

旁注:我知道你刚刚启动PHP,在查询中使用用户生成的代码可能非常危险。当您在线构建内容时,每个人都可以访问,请阅读SQL injection。当有人输入撇号(')时,这也会阻止您的代码中断。