Форма PHP без ошибок не вставляет - PullRequest
0 голосов
/ 01 июня 2018

У меня есть форма ниже, которая работала некоторое время, однако по какой-то причине код перестал вставлять то, что пользователь вводит через форму.После того, как форма заработала, единственное, что я изменил, был стиль, и ничего на сайте базы данных, или с вставкой данных.

Я получаю ноль ошибок, когда нажимаю кнопку «Отправить», и я перехожу на страницу, на которой я хочу, чтобы форму тоже забирал пользователь.

<form action="insert.php" method="post">
<p>
    <label for="firstName">First Name:</label>
    <input type="text" name="name" id="Name">
</p>
<p>
    <label for="emailAddress">Email Address:</label>
    <input type="text" name="email" id="email">
</p>
<input type="submit" value="Submit">

и мой PHP-код:

<?php
$link = mysqli_connect("localhost", "root", "root", "travelsite");
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
// Escape user inputs for security
$first_name = mysqli_real_escape_string($link, $_REQUEST['name']);
$email = mysqli_real_escape_string($link, $_REQUEST['email']);

// attempt insert query execution
$sql = "INSERT INTO subscribe (name, email) VALUES ('$name', '$email')";
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// закрыть соединение mysqli_close ($ link);?>

1 Ответ

0 голосов
/ 01 июня 2018

Попробуйте использовать $_POST['name'] и $_POST['email'].

Также, как упоминалось в комментариях: вы перепутали свои переменные.(thx @NitinP)

Попробуйте также использовать оператор подготовки, например:

/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "INSERT INTO subscribe (name, email) VALUES (?, ?)")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "ss", $name, $email); /*or $first_name*/

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("%d Row inserted.\n", mysqli_stmt_affected_rows($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

Для получения дополнительной информации см. ссылку в процедурном стиле

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...