Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Определение включенности кук у пользователя (статистика), работаем с Ajax
 
 автор: TetRiska   (04.10.2011 в 12:10)   письмо автору
 
 

Всем привет. Собственно имею 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 запросов?

Вроде как бы все. Спасибо за внимание.

  Ответить  
 
 автор: cheops   (04.10.2011 в 14:38)   письмо автору
 
   для: TetRiska   (04.10.2011 в 12:10)
 

>1. Почему первый способ работает неверно?
Вообще должен. Если перезагрузить страницу несколько раз - ситуация не меняется?

>2. Способы разные. Второй как бы проще, но не хуже?
Даже лучше, вы проверяете возможности браузера средствами JavaScript, языка специально разработанного для работы на клиентской стороне.

>3. При подсчете статистики через ajax мы избавляем себя от головной боли по фильтрации
>поисковых ботов, верно?
Да, верно.

>4. Разве Ajax-ом не скрыто должно передавать данные, чтобы в консоле фаердебага не было
>видно переданных и полученных данных, т.е. вообще ни POST ни GET запросов?
Вовсе не обязательно. При создании AJAX (вернее асинхронных запросов JavaScript) не было цели что-то намеренно укрывать или скрывать. Был цель послать фоновый запрос - если файердебагер может его отследить - ради бога, ничего криминального в этом нет.

  Ответить  
 
 автор: TetRiska   (04.10.2011 в 14:57)   письмо автору
 
   для: cheops   (04.10.2011 в 14:38)
 

1. нет не меняется
2. спасибо и от сюда вопрос:
- как лучше результат записи проверять - в самом джаваскрипте (определили и послали результат в обработчик) или уже в самом пхп обработчике?
3. отлично
4. спасибо за разьяснение

И еще попутный вопрос по поводу jquery и ajax.
Jquery работает с синхронными запросами, т.е. 2 сразу послать нельзя, чтобы они одновременно выполнились, а ajax как синхронно так и асинхронно, верно?

  Ответить  
 
 автор: TetRiska   (04.10.2011 в 18:04)   письмо автору
 
   для: TetRiska   (04.10.2011 в 14:57)
 

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

  Ответить  
 
 автор: Гость   (05.10.2011 в 05:15)   письмо автору
 
   для: TetRiska   (04.10.2011 в 14:57)
 

При отправке ajax запроса с помощью jQuery есть возможность указать тип запроса - асинхронный или нет. (см http://api.jquery.com/jQuery.ajax/ параметр async). По умолчанию используются асинхронные.

  Ответить  
 
 автор: TetRiska   (05.10.2011 в 10:36)   письмо автору
 
   для: Гость   (05.10.2011 в 05:15)
 

это уже я понял, спасибо)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования