|
|
|
| Всем привет. Собственно имею 2 способа записи тестовой куки - в самом пхп файле сайта (выводит контент раздела, где и нужно определять у юзера включенность кук) или через джаваскрипт:
Первый способ:
в самом начале пхп файла пишу:
setcookie('test','1');
|
в джаваскрипте:
window.onload = function () {
PHPText();
}
function PHPText(){
//Создаем функцию обработчик
var Handler = function(Request){
alert(Request.responseText);
}
//Отправляем запрос
SendRequest("POST","/requests/test.php","",Handler);
}
|
и в обработчике test.php
if(isset($_COOKIE['test'])){
echo 'Кука установлена!';
}else{
echo 'Кука не установлена!';
}
|
по логике -> страничка загрузилась и кука установилась, по window.onload, т.е. после полной загрузки странички, когда кука уже установлена, мы выполняем ф-цию, которая обращается в обработчик и проверяет эту же куку на существование и выдает результат (в дальнейшем это определение я буду использовать не для вывода результата, а для подсчета статистики посещений)......всегда мне почему-то выдает, что кука не установлена.
Второй способ:
Тут уже в самом джаваскрипте мы записываем куку и определяем включены ли у пользователя куки или нет. После чего можно посылать этот результат в обработчик для дальнейшей статистики.
А теперь вопросы:
1. Почему первый способ работает неверно?
2. Способы разные. Второй как бы проще, но не хуже?
3. При подсчете статистики через ajax мы избавляем себя от головной боли по фильтрации поисковых ботов, верно?
4. Разве Ajax-ом не скрыто должно передавать данные, чтобы в консоле фаердебага не было видно переданных и полученных данных, т.е. вообще ни POST ни GET запросов?
Вроде как бы все. Спасибо за внимание. | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2011 в 12:10)
| | >1. Почему первый способ работает неверно?
Вообще должен. Если перезагрузить страницу несколько раз - ситуация не меняется?
>2. Способы разные. Второй как бы проще, но не хуже?
Даже лучше, вы проверяете возможности браузера средствами JavaScript, языка специально разработанного для работы на клиентской стороне.
>3. При подсчете статистики через ajax мы избавляем себя от головной боли по фильтрации
>поисковых ботов, верно?
Да, верно.
>4. Разве Ajax-ом не скрыто должно передавать данные, чтобы в консоле фаердебага не было
>видно переданных и полученных данных, т.е. вообще ни POST ни GET запросов?
Вовсе не обязательно. При создании AJAX (вернее асинхронных запросов JavaScript) не было цели что-то намеренно укрывать или скрывать. Был цель послать фоновый запрос - если файердебагер может его отследить - ради бога, ничего криминального в этом нет. | |
|
|
|
|
|
|
|
для: cheops
(04.10.2011 в 14:38)
| | 1. нет не меняется
2. спасибо и от сюда вопрос:
- как лучше результат записи проверять - в самом джаваскрипте (определили и послали результат в обработчик) или уже в самом пхп обработчике?
3. отлично
4. спасибо за разьяснение
И еще попутный вопрос по поводу jquery и ajax.
Jquery работает с синхронными запросами, т.е. 2 сразу послать нельзя, чтобы они одновременно выполнились, а ajax как синхронно так и асинхронно, верно? | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2011 в 14:57)
| | я понял чего кука не определяется....нужно ей было указать путь....а сам скрипт по другому пути выполнялся вот и не мог ее определить | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2011 в 14:57)
| | При отправке ajax запроса с помощью jQuery есть возможность указать тип запроса - асинхронный или нет. (см http://api.jquery.com/jQuery.ajax/ параметр async). По умолчанию используются асинхронные. | |
|
|
|
|
|
|
|
для: Гость
(05.10.2011 в 05:15)
| | это уже я понял, спасибо) | |
|
|
|