дело в том что страница с которой вызывается авторизация(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>';
}