PHP - 具有预准备语句和参数化查询的会话变量

时间:2018-04-26 10:43:11

标签: php sql session prepared-statement parameterized-query

我试着写一份报名表。关于它的假设:

  • 从输入到sql数据库获取数据 - 作为表中的一行。
  • 将用户电子邮件地址添加为会话变量。
  • 将它们重定向到第二页。

这一切都发生了,但它增加了两个相同的行而不是一个。 我会感谢您给我的任何答案,这将解释为什么我的脚本将相同的行两次添加到数据库中。

PHP:

<?php
ob_start();
session_start();

if($_POST) {
    $email = $_POST['email'];
    $password = $_POST['password'];
    $name = $_POST['name'];
    $error = "";
    $link = mysqli_connect("xx", "xx", "xx", "xx");
    if (mysqli_connect_error()) {
        die("the connection was failed");
    }
    if ($email || $password || $name) {
        $stmt = $link->prepare("INSERT INTO `Family` (email, password, name) VALUES (?, ?, ?)");
        $stmt->bind_param("sss", $email, $password, $name);
        $stmt->execute();
        if($stmt->execute()) { 
            $_SESSION['email'] = $email;
            header("Location: session.php");
            $stmt->close();
        } else {
            echo "it failed";
        }
    }
}


HTML:

<html>
    <head>
    </head>
    <body>
    <h1>Registration Form</h1>
    <form method="post">
        <p>Email:</p>
        <input type="email" name="email">
        <p>Password:</p>
        <input type="password" name="password">
        <p>Name:</p>
        <input type="text" name="name">
        <br><br><br>
        <button type="submit">Submit</button>
    </form>
    </body>
</html>

0 个答案:

没有答案