@sunnyrio

Как работает сессия если она создается на сервере при помощи ajax?

Из файла index.html при вводе данных в форму авторизации и нажатии на кнопку войти происходит вызов ajax запроса к серверу logina.php , при совпадении данных авторизации с данными в БД создается сессия session_start.

Вопрос: после того как на сервере запустилась сессия в файле index.html она автоматически тоже запускается?

index.html
<div id="auth" style="position: absolute;top: 560px; left: 20px;background-color: #edeef0; width: 150px;">
	<form id="test" name="login">
		<div class="label"> Логин </div>
		<div class="i_a_i">
			<input name="name" type="text" class="inp_auth">
		</div>		
		<div class="label"> Пароль </div>
		<div class="">
			<input name="pass" type="text" class="inp_auth">
		</div>
	</form>
	<button class="btn_auth" onclick="authorization();">Войти</button>
	<button class="btn_auth b_a_i">Регистрация</button>
</div>


JavaScript:
function authorization()
{

	var msg = $('#test').serialize();
 $.ajax({
     url: "logina.php",
     method: "post",
	 data: msg,
	 type: "json",
     success:  function(date) { hideAuth(date);}
 })
}


logina.php:
<?php

	require_once 'dy_functions.php';
	$error = $login = $pass = "";
	if (isset($_POST['name']))
	{
		$login = sanitizeString($_POST['name']);
		$pass = sanitizeString($_POST['pass']);
		
		if ($login == "" || $pass == "")
		{
			$error = "Данные введены не во все поля";
		}
		else
		{
			$result = queryMysql("SELECT login,pass FROM customer WHERE login='$login' AND pass='$pass'");
			if($result->num_rows == 0)
			{
				$error = "Ошибка при вводе пары имя пользователя - пароль";
				
			}
			else
			{
				session_start();
				$_SESSION['name'] = $login;
				$_SESSION['pass'] = $pass;
				$error = 7 ;
				
			}
		}
	}


echo json_encode($error);
?>
  • Вопрос задан
  • 256 просмотров
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Как работает сессия если она создается на сервере при помощи ajax

так же
Получаете ajax, запускаете сессию
Ответ написан
Комментировать
7workers
@7workers
на стороне клиента хранится идентификатор сессии в кукисах PHPSESSID. чтобы увидеть своими глазами, "знает ли" клиент (страница) о сессии - откройте developer tools и посмотрите в cookies появился ли PHPSESSID.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы