PHP - переменные сеанса с подготовленными операторами и параметризованными запросами - PullRequest
0 голосов
/ 26 апреля 2018

Я пытался написать регистрационную форму. На подаче он предполагает:

  • Получить данные из входных данных в базу данных 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...