2015-11-16 4 views
0

я поставил печенье в моем коде, но когда я пытаюсь получить значение куки я получаю следующее сообщение об ошибке:Куки не показывает значение

Notice: Undefined index: mailquery in D:\Dev\htdocs\index.php on line 24

Я понятия не имею, что делать здесь. Это находится на пустом веб-сайте, используя новейшую версию XAMPP.

Что происходит не так?

Мой код:

<?php 
include "sqlconnect.php"; 
$connect = mysql_connect($host, $user, $pass) or die(mysql_error()); 
mysql_query("CREATE DATABASE IF NOT EXISTS users;") or die(mysql_error()); 
mysql_query("USE users;") or die(mysql_error()); 
mysql_query("CREATE TABLE IF NOT EXISTS userinfo(id int AUTO_INCREMENT NOT NULL, 
               mail varchar(255) default 0 NOT NULL, 
               phone varchar(10) default 0 NOT NULL, 
               PRIMARY KEY(id));") or die(mysql_error()); 
if($_REQUEST['extr'] == 0){ 
    mysql_query("INSERT INTO userinfo(mail, phone) VALUES(" . "'". $_REQUEST['x'] . "'" . ", " . $_REQUEST['y'] . ");") or die(mysql_error()); 
}; 
if($_REQUEST['extr'] == 1){ 
    $query = mysql_query("SELECT * FROM userinfo;"); 
    $result = mysql_fetch_row($query); 
    setcookie("mailquery", $result[1] . $result[2], time() + 300, "/"); 
}; 

echo $_REQUEST['mailquery']; 
?> 
+0

[Ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –

+0

Если вы можете, вы должен [прекратить использование 'mysql_ *' функций] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). [Эти расширения] (http://php.net/manual/en/migration70.removed-exts-sapis.php) были удалены в PHP 7. Узнайте о [подготовленном] (http://en.wikipedia.org/ wiki/Prepared_statement) для [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) и [MySQLi] (http://php.net/manual/en/mysqli.quickstart .prepared-statements.php) и подумайте об использовании PDO, [это действительно не сложно] (http://jayblanchard.net/demystifying_php_pdo.html). –

+0

Это потому, что вы пытаетесь получить undefined/null значение в этой строке: 'echo $ _REQUEST ['mailquery'];' –

ответ

1

Чтобы просмотреть значение куки, вы должны использовать $_COOKIE['cookiename'].

Попробуйте заменить

echo $_REQUEST['mailquery']; 

с

if(isset($_COOKIE['mailquery'])) { 
    echo $_COOKIE['mailquery']; 
} 

PHP справки:

ПРИМЕЧАНИЕ: Обратите внимание на комментарии от @JayBlanchard. Если вы можете, вы должны прекратить использовать функции mysql_*. Эти расширения были удалены в PHP 7. Узнайте о подготовленных операциях для PDO и MySQLi и рассмотрите возможность использования PDO, это действительно не сложно.

+0

Он все еще не работает. На этот раз он просто ничего не возвращает. – Prophet

+0

Это потому, что вы 'setcookie (« mailquery », $ result [1]. $ Result [2], time() + 300,«/»);' по какой-то причине не вызывают, если вы просто скопируете эту строку ' setcookie («mailquery», 1. 2, time() + 300, «/»); 'из инструкции if для тестирования вы обнаружите, что он работает, и он должен показать 12 в вашем браузере, вы должны проверить, есть ли заявление. это еще одна проблема, тогда вы задаете вопрос –

+0

extr - это переменная, помещенная в URL-адрес, например localhost/index.php? extr = 1 – Prophet

Смежные вопросы