[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Notice: Undefined variable
Страницы: 1, 2, 3
Игорь_Vasinsky
покажи код с 270 по 280

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Гость_Mister_X
Доброго времени суток !

Помогите пожалуйста решить вопрос .... Я сейчас потихоньку изучаю пхп и к сайту пытаюсь приделать простую админку в нете нашел вроде что то урока и ставлю код для входа по паролю в админку

<?php
if($_COOKIE["pass"]!=="123"){
sleep(1);
if(isset($_POST["pass"])){
setcookie("pass",$_POST["pass"], time()+3600*24*14);
die("Обновите страницу");
}
?>
<html><head><title>Админка</title></head><body>
<form method="post">
<input type="password" name="pass" value="">
<input type="submit" name="submit" value="Пароль">
</form></body></html>
<?php
exit();
}
?>

перехожу localhost/admin.php и вот мне что выдает

Цитата
( ! ) Notice: Undefined index: pass in C:\VertrigoServ\www\admin.php on line 2
Call Stack
# Time Memory Function Location
1 0.0030 330688 {main}( ) ..\admin.php:0

и под этой ерундой поле для ввода пароля ввожу пароль и ошибка пропадает
GET
Цитата
if($_COOKIE["pass"]!=="123"){


По началу при первом запуске скрипта куки "pass" еще нет, а вы сразу проверяете равна ли она 123, от этого ошибка
Цитата
Notice: Undefined index: pass in C:\VertrigoServ\www\admin.php on line 2

неизвестный индекс "pass" здесь: $_COOKIE["pass"]

Можно, например, сделать так:
создать переменную $cookie которой присвоить значение $_COOKIE["pass"] если она существует или присвоить пустую строку если этой куки нет, а уже потом работать только уже с ней.


$cookie=((!isset($_COOKIE["pass"])?'':$_COOKIE["pass"]);
if($cookie!=="123"){


таким образом сначала проверит

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Гость_Mister_X
Спасибо Вам за помощь ... все заработало ... но появились вопросы (((

в строчке $cookie=((!isset($_COOKIE["pass"])?'':$_COOKIE["pass"]);

в середине есть знаки ?'': для чего они там ? нельзя просто написать and ?
GET
Цитата
в строчке $cookie=((!isset($_COOKIE["pass"])?'':$_COOKIE["pass"]);

в середине есть знаки ?'': для чего они там ? нельзя просто написать and ?


Читайте тернарные операторы.

http://us2.php.net/manual/ru/language.oper....comparison.php

Запись $cookie=((!isset($_COOKIE["pass"])?'':$_COOKIE["pass"]);
это сокращенная запись выражения:

if(!isset($_COOKIE['pass']))
{
$cookie='';
}
else
{
$cookie=$_COOKIE['pass'];
}


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Mister_X
Спасибо за ответ )))
ww220ww
Помогите с формой обратной связи. С локального сервера отправляет, но выдает предупреждение: user posted image

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (!empty($_POST['uname']) && (!empty($_POST['uemail']) || !empty($_POST['uphone']))){
if (isset($_POST['uname'])) {
if (!empty($_POST['uname'])){
$uname = strip_tags($_POST['uname']) . "<br>";
$unameFieldset = "<b>Имя пославшего:</b>";
}
}

if (isset($_POST['uemail'])) {
if (!empty($_POST['uemail'])){
$uemail = strip_tags($_POST['uemail']) . "<br>";
$uemailFieldset = "<b>Почта:</b>";
}
}

if (isset($_POST['uphone'])) {
if (!empty($_POST['uphone'])){
$uphone = strip_tags($_POST['uphone']) . "<br>";
$uphoneFieldset = "<b>Телефон:</b>";
}
}

if (isset($_POST['formInfo'])) {
if (!empty($_POST['formInfo'])){
$formInfo = strip_tags($_POST['formInfo']);
$formInfoFieldset = "<b>Тема:</b>";
}
}


$to = "wwwwww@yandex.ru"; /*Укажите адрес, на который должно приходить письмо*/
$sendfrom = "smart-landing@yandex.ru"; /*Укажите адрес, с которого будет приходить письмо */
$headers = "From: " . strip_tags($sendfrom) . "\r\n";
$headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html;charset=utf-8 \r\n";
$headers .= "Content-Transfer-Encoding: 8bit \r\n";
$subject = "$formInfo";
$message = "$unameFieldset $uname
$uemailFieldset $uemail
$uphoneFieldset $uphone
$formInfoFieldset $formInfo
";

$send = mail ($to, $subject, $message, $headers);
if ($send == 'true') {
echo '<p class="success">Спасибо за отправку вашего сообщения!</p>';
} else {
echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
}
}
else {
echo '<p class="fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
}
}
else {
header ("Location: http://odnastraniza.ru"); // главная страница вашего лендинга
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.