Я не могу получить значение $ _COOKIE [‘mycookiename’] при отправке запроса на сервер с помощью ajax

#php #ajax #cookies

#php #ajax #файлы cookie

Вопрос:

Я хочу отправить что-то на сервер с помощью GET метода ajax, а также используя cookies, поэтому я отправляю свое значение в ajax, мне нужно это значение для обновления текущего значения cookie. В файле ajax я не могу получить $_COOKIE['cookie_name'] , когда я повторяю это, результат будет таким -> [] !

 function card(action,value) {
    if (value == "") {
        document.getElementById('errmsgs').innerHTML = "";
        return;
    } else { 
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        } else {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {

            if (xmlhttp.readyState == 4 amp;amp; xmlhttp.status == 200) {
                document.getElementById('errmsgs').innerHTML = xmlhttp.responseText;
            }
        };

        xmlhttp.open("GET","inc/pricing/pricing.php?act=" action "amp;val=" value,true);
        xmlhttp.send();
    }
}
  

И страница с ценами:

 <?php 
require_once '../../connection.php';
require_once '../../func.php';

$what_is_action = $_REQUEST['act']; 
$myCook = $_REQUEST['val'];

}
echo $full_cookie_value = $_COOKIE['mycookiename']; ----> output will be--> [] ---->but it must be something like this ---> {"wwde34":"1","effy33":"1","ssdfff":"1"}


if($what_is_action == 'delete'){
    //delete_cook($myCook);
}
?>
  

Решено.
Проблема заключалась в том, что когда я пытался создать cookie, его не было в root, поэтому в других папках он не может быть доступен! поэтому я добавил ‘/’ в последний параметр setcookie
например: setcookie('a','b',time() 36666,'/')
это создаст cookie в корневом каталоге, и он может быть доступен в других папках!

Ответ №1:

Был ли создан ваш cookie-файл?

Убедитесь, что файл cookie установлен! Пример:

Там, где вы видите кнопку I, вам нужно будет нажать ее и найти файл cookie и капсулы, проверьте, можете ли вы найти там свой файл cookie! Это должно быть сделано с вашего веб-сайта.

Получение ошибки

 try
{
    echo $_COOKIE['name']['bills'];
}
catch (Throwable $t) // PHP 7
{
    echo '<b>COOKIE is not made</b>';
}
catch (Exception $e) // PHP 5
{
    echo '<b>COOKIE is not made</b>';
}
  

Пожалуйста, взгляните на: Получение файлов cookie с помощью javascript

Комментарии:

1. Кнопка I находится в левой части панели ссылок в Google Chrome

2. да, это было сделано на другой странице, и я записываю значение текущего файла cookie здесь, {«wwde34»: «1», «effy33»: «1», «ssdfff»: «1»} .

3. Я могу восстановить значение на всех своих страницах , но здесь, на странице ajax php , это не истинное значение !! он показывает мне всего две скобки ! Я удивляюсь этому 😀

4. Пожалуйста, попробуйте это с помощью javascript. Взгляните на: w3schools.com/js/js_cookies.asp

5. Есть ли какой-либо код, который, возможно, манипулировал вашим кодом?

Ответ №2:

Вы знаете, что, если это фактический код из вашего файла, вы не присваиваете переменную после echo, верно?

echo full_cookie_value должно быть echo $full_cookie_value , или если вы пытались повторить ‘full_cookie_value’ в качестве «метки», echo 'full_cookie_value '.$_COOKIE['mycookiename']

Комментарии:

1. все в порядке, это ошибка ввода, которая взята здесь, это всего лишь пример кода, я просто повторяю значение $ _COOKIE [‘something’], и это дало мне неправильное значение.