Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中重新加载浏览器时自动插入以前的数据_Php_Html_Mysql_Css - Fatal编程技术网

在PHP中重新加载浏览器时自动插入以前的数据

在PHP中重新加载浏览器时自动插入以前的数据,php,html,mysql,css,Php,Html,Mysql,Css,我有一些数据input区域。这是我的文件 这是我的db.php: <?php $username = "root"; $password = ""; try { $db = new PDO('mysql:host=localhost;dbname=task', $username, $password); echo "Connection Successfull"; } catch (PDOException $e) { die("Error: Database

我有一些数据
input
区域。这是我的文件

这是我的db.php:

<?php

$username = "root";
$password = "";

try {
    $db = new PDO('mysql:host=localhost;dbname=task', $username, $password);
    echo "Connection Successfull";
} catch (PDOException $e) {
    die("Error: Database connection");
}

?>

我的index.php是:

<?php 
    include "db.php";
?>
<!DOCTYPE html>
<html>
<head>
    <title>This is title</title>
        <link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
    <div class="wrap1">
        <form method="POST" action="">
            <input type="text" name="name" required>  Username</br></br>
            <input type="email" name="email" required>  Email</br></br>
            <input type="text" name="website" required>  Website</br></br>
            <input type="submit" value="Submit">
        </form>
    </div>

    <?php
        $username = $_POST['name'];
        $emailadd = $_POST['email'];
        $webadd   = $_POST['website'];
        $sql = "INSERT INTO users (name,email,website) VALUES ('$username','$emailadd','$webadd')";
        if(empty($username) || empty($emailadd) || empty($webadd)){
            echo "Please input all field";
        }
        else{
            if ($db->query($sql)) {
                echo "Inserted!";
            }
            else{
                echo "Error";
            }
        }
        $db = null;

    ?>
</body>
</html>

这是标题
用户名

电子邮件

网站


这是因为,您没有检查表单是否已提交

在每个页面请求中,插入数据时,添加一个检查

<?php
if (isset($_POST['name']) && ! empty($_POST['name'])) {
 $username = $_POST['name'];
 $emailadd = $_POST['email'];
 $webadd   = $_POST['website'];
 $sql = "INSERT INTO users (name,email,website) VALUES ('$username','$emailadd','$webadd')";
 if (empty($username) || empty($emailadd) || empty($webadd)){
  echo "Please input all field";
 }
 else{
  if ($db->query($sql)) {
   echo "Inserted!";
  }
  else{
   echo "Error";
  }
 }
 $db = null;
 $_POST = NULL;
}
?>

这是因为,您没有检查表单是否已提交

在每个页面请求中,插入数据时,添加一个检查

<?php
if (isset($_POST['name']) && ! empty($_POST['name'])) {
 $username = $_POST['name'];
 $emailadd = $_POST['email'];
 $webadd   = $_POST['website'];
 $sql = "INSERT INTO users (name,email,website) VALUES ('$username','$emailadd','$webadd')";
 if (empty($username) || empty($emailadd) || empty($webadd)){
  echo "Please input all field";
 }
 else{
  if ($db->query($sql)) {
   echo "Inserted!";
  }
  else{
   echo "Error";
  }
 }
 $db = null;
 $_POST = NULL;
}
?>

重新加载页面时,它要求重新提交表单。当您单击“重新发送”时,它将再次发布所有数据并插入数据库。要解决这个问题,可以使用jquery

请尝试以下代码:

html文件:

    <!DOCTYPE html>
    <html>
    <head>
        <title>This is title</title>
            <link href="style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
        <div class="wrap1">
            <form method="POST" id="frm" action="">
                <input type="text" name="name" required>  Username</br></br>
                <input type="email" name="email" required>  Email</br></br>
                <input type="text" name="website" required>  Website</br></br>
                <input type="submit" class="sub" value="Submit">
            </form>
        </div>
<script>
$(".sub").click(function (e) {
    e.preventDefault();
    $.post("test.php",$("#frm").serialize(),function(data){
       if(data == "Inserted!") {
           //You can reload your page here
        } else {
           //Display error message.
        }
     });
});
</script>

     </body>
    </html>

这是标题
用户名

电子邮件

网站

$(“.sub”)。单击(函数(e){ e、 预防默认值(); $.post(“test.php”,$(“#frm”).serialize(),函数(数据){ 如果(数据==“插入!”){ //您可以在此处重新加载页面 }否则{ //显示错误消息。 } }); });
您可以使用php代码(test.php):


重新加载页面时,它要求重新提交表单。当您单击“重新发送”时,它将再次发布所有数据并插入数据库。要解决这个问题,可以使用jquery

请尝试以下代码:

html文件:

    <!DOCTYPE html>
    <html>
    <head>
        <title>This is title</title>
            <link href="style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
        <div class="wrap1">
            <form method="POST" id="frm" action="">
                <input type="text" name="name" required>  Username</br></br>
                <input type="email" name="email" required>  Email</br></br>
                <input type="text" name="website" required>  Website</br></br>
                <input type="submit" class="sub" value="Submit">
            </form>
        </div>
<script>
$(".sub").click(function (e) {
    e.preventDefault();
    $.post("test.php",$("#frm").serialize(),function(data){
       if(data == "Inserted!") {
           //You can reload your page here
        } else {
           //Display error message.
        }
     });
});
</script>

     </body>
    </html>

这是标题
用户名

电子邮件

网站

$(“.sub”)。单击(函数(e){ e、 预防默认值(); $.post(“test.php”,$(“#frm”).serialize(),函数(数据){ 如果(数据==“插入!”){ //您可以在此处重新加载页面 }否则{ //显示错误消息。 } }); });
您可以使用php代码(test.php):


不是总是可用吗?
$\u POST
总是设置好的,最好使用
!空的
,或者只说OP最初检查的特定post字段empty@SwarajGiri,你是对的
$\u POST
是一个超级全局变量,始终可用。我已经更新了我的答案。
if(设置($\u POST['name']&&&$\u POST['name'])
无需使用
empty
<代码>如果
就足够了。这是浏览器属性。如果您将表单提交到同一页面,然后重新加载该页面,它将要求您重新提交表单。更改方法以获取并检查重复性,或者将表单提交到另一个文件(将表单提交代码移动到另一个文件并将其设置为表单操作)。是否
$\u POST
始终可用?
$\u POST
始终处于设置状态,最好使用
!空的
,或者只说OP最初检查的特定post字段empty@SwarajGiri,你是对的
$\u POST
是一个超级全局变量,始终可用。我已经更新了我的答案。
if(设置($\u POST['name']&&&$\u POST['name'])
无需使用
empty
<代码>如果
就足够了。这是浏览器属性。如果您将表单提交到同一页面,然后重新加载该页面,它将要求您重新提交表单。更改方法以获取并检查重复性,或者将表单提交到另一个文件(将表单提交代码移动到另一个文件并将其设置为表单操作)。