PHP: Примечание: неопределенный индекс: NameFilledIn в C: \ xampp \ htdocs \ vdab \ cookies.php в строке 9

Я новичок в PHP и, хотя я нашел похожие решения для этой ошибки, я пока не могу ее решить. При запуске этой страницы я получаю сообщение об ошибке: Примечание: неопределенный индекс: NameFilledIn в C: \ xampp \ htdocs \ vdab \ cookies.php в строке 9. Когда я заполняю имя и обновляю страницу, она работает. После того, как время cookie пропущено, и я обновляю страницу, я получаю ту же ошибку, что и в начале.

Полный код:

<?php
if (!empty($_POST["txtName"]))
{
setcookie("NameFilledIn", $_POST["txtName"],time() + 60);
$name = $_POST["txtName"];
}
else
{
$name = $_COOKIE["NameFilledIn"];
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org /TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<?php
if (isset($name))
{
print ("Welcom, ") . $name;
}
?>
<form action="cookies.php" method="POST">
Uour name: <input type="text" name="txtName" value="<?php print ($name);?>">
<input type="submit" value="Send">
</form>

<br><br>
<a href="cookies.php">Refresh the page</a>
</body>
</html>

1

Решение

Уведомление Undefined index: произошло, потому что вы пытаетесь получить доступ к cookie без проверки, установлен он или нет. использование isset() чтобы проверить, если они объявлены, прежде чем ссылаться на них, как,

 if (!empty($_POST["txtName"]))
{
setcookie("NameFilledIn", $_POST["txtName"],time() + 60);
$name = $_POST["txtName"];
}
else
{
if(isset($_COOKIE["NameFilledIn"]))   // only if it is set
$name = $_COOKIE["NameFilledIn"];
}

То же самое вы должны проверять везде, где пытаетесь получить доступ к переменным PHP.

<input type="text" name="txtName" value="<?php if(isset($name)) { print ($name); } ?>">
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector