我如何使自定义成功页面从HTML插入表单


How do I make a custom success page from HTML insert form?

我有一个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");
}

我想你真的应该添加一些安全到你的脚本作为$_POST可能包含SQL注入。

尝试修剪所有的post字段并添加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,当然你可以做一些模态窗口,或者你可以只是回显消息。

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']);