function doLogin($login, $pass, $remember)
{
return $remember;
}
проблема с посылкой checkbox
есть элемент
Код:
<INPUT class=inputbox id=mod_login_remember type=checkbox alt="Remember Me" value=yes name=remember> <LABEL for=mod_login_remember>Запомнить меня
</LABEL>
</LABEL>
затем через js используя ajax посылаю его
Код:
var rem = document.getElementById("mod_login_remember");
var rem2;
if( rem.checked == true )
rem2 = "yes";
else
rem2 = 0;
x_doLogin(login, pass, rem2, rep);
var rem2;
if( rem.checked == true )
rem2 = "yes";
else
rem2 = 0;
x_doLogin(login, pass, rem2, rep);
далее в обработчике
Код:
function doLogin($login, $pass, $remember)
{
/* код */
if( strpos($remember, "yes") !== false )
{
/* код далее */
}
{
/* код */
if( strpos($remember, "yes") !== false )
{
/* код далее */
}
и в-общем этот код не выполняется никак когда checkbox установлен
если в тупую посылать x_doLogin(login, pass, rem, rep);
то if( isset($remember) ) { /* */ }
тоже не работает...
( использую sajax для посылки )
в чём может быть проблема?
Цитата:
if( rem.checked == true )
Вот это круто... =)))
[COLOR="Silver"]Вообще переменная rem является объектом. Насколько мне помнится Sajax не умеет сам передавать объекты.[/COLOR]
Еще хорошо было бы расставить везде кавычки как того требует стандарт.
UPD:
Не заметил сходу что все правильно передается. Как вы узнаете что "ничего не работает"?
я бы для начала посмотрел что передается на сервер.
Примерно так:
Код:
а в JavaScript функции получающей ответ сервера поставил бы обычный алерт
Код:
function rep(str)
{
alert(str);
}
{
alert(str);
}
передаётся как ни странно yes
(alert выводит всё нормально)
тогда наверное проблема в коде))
там стоит установка cookie для запоминания пользователей... и flush() после неё...
раньше когда sajax не использовал всё нормально работало и запоминало))
Кстати а зачем там мудрить с куками? Сессии чем не угодили?
куки просто чтобы запомнить юзера, потом всё равно после проверки кук всё в сессии пишется и с ними работается.. сессии ведь очищаются когда окно браузера закрывается) а требуют чтобы юзер запоминался... вот не пойму в чём проблема)
Сессия "умирает" тогда, когда "умирает" кука ее идентифицирующая. А параметры куки легко настраиваются с помощью стандартной функции:
http://ru2.php.net/manual/ru/function.session-set-cookie-params.php
А не работает еще вот почему:
if( strpos($remember, "yes") !== false ) - это условие ВСЕГДА выполняется, тк сравнение идет с учетом типа данных. А integer ВСЕГДА не равен boolean..
Как говорится мануал рулит: http://ru2.php.net/manual/ru/function.strpos.php
Да и способ сравнения идиотский. Почему нельзя сделать так: if($remember == "yes")
ладно, с этим я уже разобрался, в функцию всё нормально передаётся, проблема в коде)) за линк пасиба, ушёл копаться в коде)
вот я делаю
Код:
if( $remember == "yes" )
session_set_cookie_params(60*60*24*20);
else
session_set_cookie_params(0);
session_set_cookie_params(60*60*24*20);
else
session_set_cookie_params(0);
а при переходе по страницам session_get_cookie_params(); выдаёт lifetime 0
что я не так делаю? ))
Потому что когда $remember не отправляется - выполняется условие после else...
ну а когда посылается, проверка показывает что посылается, а session_set_cookie_params не срабатывает
А что показывает дибаг?
Цитата: RussianSpy
С чего вы взяли что сессии очищаются после закрытия окна?
Сессия "умирает" тогда, когда "умирает" кука ее идентифицирующая.
Сессия "умирает" тогда, когда "умирает" кука ее идентифицирующая.
Мой склероз говорит мне, что сессия "умирает" когда её убивает сборшик мусора на сервере ;) . А когда этот момент настанет в файле конфига указывается.