如何从HTML插入表单创建自定义成功页面?

时间:2011-09-15 03:58:04

标签: php mysql

我有一个PHP脚本,可以通过HTML表单将记录插入MySQL。如何在提交后转到HTML页面并创建弹出的成功或弹出失败?

$host="XXXXXXXXXXXXXXX";
$username="XXXXXXXXXXX";
$password="XXXXXXXXXXX";
$db_name="naturan8_hero";
$tbl_name="cartons_current";

mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$order = "INSERT INTO cartons_current (type, part_no, description, count, size, min, max, qty) VALUES('$_POST[type]', '$_POST[part_no]', '$_POST[description]', '$_POST[count]', '$_POST[size]', '$_POST[min]', '$_POST[max]', '$_POST[qty]')";

$result = mysql_query($order);  //order executes
if ($result) {
  echo("<br>Input data is succeed");
}
else {
  echo("<br>Input data is fail");
}

1 个答案:

答案 0 :(得分:0)

我想您应该为脚本添加一些安全性,因为$_POST可能包含SQL注入。

尝试修剪所有帖子字段并添加mysql_real_escape_string()

$type = mysql_real_escape_string($_POST['type']);
// ......... etc ..

第二部分,你问题的答案,我相信你应该设置一个$_SESSION变量:

文件的开头:

session_start();
查询后

if ($result) {
   $_SESSION['result'] = 'success';
} else {
   $_SESSION['result'] = 'fail';
}
// and redirect to your page
header('Location http://www.example.org/result.php');
exit;
在你的html result.php上添加相同的session_start()并检查$_SESSION['result']变量,然后为弹出窗口添加一些javascript,当然你可以做一些modal window或你可以回复一条消息。

if(isset($_SESSION['result']) && ($_SESSION['result'] != '')){
    if($_SESSION['result'] == 'success'){
        echo "<script type='text/javascript'>window.open ('http://www.example.org/result-ok.php','success');"; // result-ok.php
    } else {
        echo "<script type='text/javascript'>window.open ('http://www.example.org/result-notok.php','fail');"; // result-notok.php
    }
}

在这两个文件中,您取消设置该会话变量以防止该窗口再次打开:

session_start();
unset($_SESSION['result']);