PDA

Просмотр полной версии : Не работают сессии


2misha
07.05.2014, 14:58
<?php
//----------------------------------------------------------------------------------------
//Установка значений.
//Поменяйте данные от базы на ваши ниже.
$db_user = "zslit";
$db_pass = "p0o9i8";
$db_host = "localhost";
$db_name = "game";

$users_table = "users";
$cities_table = "cities";

$login_field = "username";
$pass_field = "pass"; .
$money_field = "money";
$food_field = "food";

$city_field = "city";
$city_index_field = "id";
?>


Имеется такой скрипт авторизации

<?php
include 'server.php';
//Записываем полученные данные в переменные
if(isset($_POST['login'])) $login = $_POST['login'];
if(isset($_POST['pass'])) $pass = $_POST['pass'];

//Обрезаем символ конца строки и пробелы в начале и конце строки.
$login = trim($login);
$pass = trim($pass);

//Проверяем на длину логина.
if(strlen($login) < 3 || strlen($login) > 35)
die("Довжина логiна повинна бути вiд 3 до 35 символiв.");
if(strlen($pass) < 3 || strlen($pass) > 35)
die("Довжина пароля повинна бути вiд 3 до 35 символiв.");
//Подключаемся к БД
$db_connection = mysql_connect($db_host, $db_user, $db_pass)
or die("Не можу пiдключитися до бази даних гравцiв.");

$db = mysql_select_db($db_name, $db_connection);

//Кодировка
mysql_set_charset("utf8");

//Выполняем проверку логина и пароля
$result = mysql_query('SELECT * FROM '.$users_table.' WHERE '.$login_field.'=\''.$login.'\'')
or die("Не можу виконати запит до бази даних гравцiв.");
$user = (mysql_fetch_array($result, MYSQL_ASSOC));
if($user[$pass_field] != $pass) die("Пароль не вірний");
session_start()
$_SESSION['user_name'] = $login;
$_SESSION['password'] = $pass;

echo "success";
?>

Когда я забираю строки с сессиями:

session_start()
$_SESSION['user_name'] = $login;
$_SESSION['password'] = $pass;
То в текстовое поле inforner все корректно выводится (если совпадают логин и пароль, пишет вы авторизованы, а если нет, то пишет, что не совпадают).
То как только включу те три строчки чтоб оно в сессии записывало, то в текстовое поле Informer при нажатии кнопки "Войти" выводит <!--error--><br />

Так что не так и где у меня ошибка?

caseyryan
07.05.2014, 19:23
после session_start() пропущена точка с запятой. В php это недопустимо

2misha
07.05.2014, 20:38
Ага. Понял.

Можете какой-то нормальный пример вывода из массива php переменных в as3 кинуть? А то я по одному был делал, так не хочет оно работать почему-то.

Добавлено через 2 часа 49 минут
я вот когда прописываю
<?
session_start();
$us_name = $_SESSION['user_name'];

echo $us_name;
?>

то при запуске самого файла скрипта, выводит то, что надо. Но когда передаю в АС, то пустота передается вместо значения $_SESSION['user_name']
когда же прописываю $us_name = "Какое-то выражения";

то передается в АС правильно.
Что за фигня происходит то?