[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вернуть сессию из javascript
Aeooe
Доброго времени суток форумчане. Столкнулся вот стаким вот вопросом, который затрагивает сразу и JS и PHP:
дело в том что страница с которой вызывается авторизация(js) и куда должна вернуься сессия index.php а сама авторизация проходит в файле auth.php. Т.е. создаем форму в index.php и отправляем авторизационные данные post запросом(при помощи js) в файл auth.php, соответсвенно функция в auth.php делает авторизацию и создает сессию, но ведь эту сессию надо вернуть в index.php? и перезагрузить страницу уже с этой сессией?

function login()
{
var event="login";
var login=document.forms['login_form'].elements['login'].value;
var password = document.forms['login_form'].elements['password'].value;
if(login!=""&&password!=""){
var xmlhttp = getXmlHttp(); // Создаём объект XMLHTTP
xmlhttp.open('POST', '/php/auth.php', true); // Открываем асинхронное соединение
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // Отправляем кодировку
xmlhttp.send("event="+encodeURIComponent(event)+"&login="+encodeURIComponent(login)+"&password="+encodeURIComponent(password));
xmlhttp.onreadystatechange = function() { // Ждём ответа от сервера
if (xmlhttp.readyState == 4) { // Ответ пришёл
if(xmlhttp.status == 200) { // Сервер вернул код 200 (что хорошо)
alert(xmlhttp.responseText); // Выводим ответ сервера
if(xmlhttp.responseText.indexOf("успешно")!=-1){all_form_close("login_form");}
}
}
}
;
} else {alert("Заполните форму целиком для успешной авторизации!");}


Т.е. передаем post запросом файлу auth.php логин и пароль.

Код auth.php:

function login($login,$password)
{
require_once $_SERVER['DOCUMENT_ROOT']."/php/connect.php";
$out=mysql_query("Select login from users_site where login='".$login."'");
if (mysql_result($out,0,"login")<>'')
{
$out=mysql_query("Select id,fio from users_site where password='".md5($password)."' and login='".$login."'");
if (mysql_num_rows($out)>0)
{session_start();
$_SESSION['id']=mysql_result($out,0,"id");
$_SESSION['fio']=mysql_result($out,0,"fio");
return "Вы успешно авторизовались!";
}
else
{return "Пароль не верный!";}
}

else
{
return "Неверный пользователь или пароль!";
}
}


Который стартует сессию в случае удачной авторизации.

Собственно вопрос: Как вернуть начатю сессию средсвами javascript? Я так понимаю мне нужно перезгрузить текущую локацию с параметром сессии?

PS Делаю проверка в файле index.php на наличие сессии - и проверка всегда показывает false.

if (isset($_REQUEST[session_name()])) {session_start();
if ($_SESSION['fio']!=''){
$this->session_info="Здраствуйте, ".$_SESSION['fio'];
}
}
else {
$this->session_info='<span class="button" style="margin: 0 auto; display: block;" onclick="create_login_form();"><span>ВХОД\РЕГИСТРАЦИЯ</span></span>';
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.