Я пытаюсь найти свою ошибку в следующем фрагменте кода. Сначала пользователь должен будет заполнить следующую форму. В этом php есть переменная GET с именем ‘code’ (пример: feedback_form.php? Code = ABC):
<?php
session_start();
include ("feedback_form_entry.php");
if (!isset($_SESSION["feedback_ok"])) {
header('Location: login_error.php');
exit;
}
?>
<!doctype html>
<html>
<head>
</head>
<body>
<form method="post" id="contact_form" action="feedback_form_entry.php">
<textarea type="text" name="nps_question_2" rows="4" spellcheck="false" placeholder="What was the reason you gave us this rating?"></textarea>
<textarea type="text" name="nps_question_3" rows="4" spellcheck="false" placeholder="What can we do to improve your experience?"></textarea>
<input class="button" type="submit" name ="send_feedback" value="SEND FEEDBACK">
</form>
</body>
</html>
Затем должен следовать следующий скрипт (feedback_form_entry.php):
<?php
$nps = "";
$nps_question_2 = "";
$nps_question_3 = "";
function test_input($data) {
return htmlspecialchars(stripslashes(trim($data)));
}
if (isset($_POST["send_feedback"])) {
$nps_question_2 = test_input($_POST["nps_question_2"]);
include("db_connect.php");
$nps_question_2_update = $con->prepare("UPDATE codes SET `nps_question_2`=? WHERE `code`=" . $_GET["code"]);
$nps_question_2_update->bind_param("s", $nps_question_2);
$nps_question_2_update->execute();
$nps_question_2_update->close();
header('Location: feedback_form_success.php');
$con->close();
}
?>
Теперь я получу следующее сообщение об ошибке:
Примечание: неопределенный индекс: код в C: \ xampp \ htdocs \ tours \ feedback_form_entry.php в строке 15
и я не могу выяснить, где проблема. Я попытался определить переменную GET как $ code, но она просто не будет работать.
Заранее спасибо за любое предложение!
Проблема в том, что вы не распространяете $code
переменная, когда нажимается кнопка отправки. Чтобы это исправить, просто добавьте ?code=
на ваш action
форма:
<form method="post" id="contact_form" action="feedback_form_entry.php?code=<?php echo $_GET['code']; ?>">
пытаться
$_GET['code'] = (isset($_GET['code']) ? $_GET['code'] : 'default value');
это проверяет, установлен ли $ _GET [‘code’] или нет, если нет, он установит значение по умолчанию.