powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) сесси - почему-то не работает после первого захода
12 сообщений из 12, страница 1 из 1
(PHP) сесси - почему-то не работает после первого захода
    #33462619
Olyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем день добрый,
Прошу прощения за набившие должно быть оскомину простые вопросы про сессии. Но я пытаюсь их освоить и пока не могу понять, почему у меня не работает :/
Читала про сесси, что нашла на форуме, в книге, на phpfaq.ru и php.net, у меня ощущение, что я чего-то в них все-таки не понимаю :( или клин в голове какой-то...
Вот написала простой пробный скрипт на авторизацию
главная страничка oko_main.php
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?php
// если был введен логин и пароль, тогда стартуем сессию
// и проверям наличие $valid_user. Если $valid_user не проканал
// говорим, что нет и опять на логин, если да, то выдаем $valid_user
if ($login && $psw)
{
  session_start();
    if (session_is_registered("valid_user"))
      echo $valid_user;
    else
    {
      echo "NO RESULT<br>";
      include "includes/connect.php";
    }
}
// если логина с паролем нет совсем, то просим залогиниться
// и отправляем на регистрацию
else
{
    echo "PLEASE LOG IN<br>";
    include "includes/connect.php";
}
?>

собственно страница connect.php
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
<?php
//если логин и пароль есть и не пустые
if (($psw and $psw<>"") && ($login and $login<>""))
{
// соединяемся с базой
$connect=mysql_connect ('localhost','oko');
if (!$connect)
	echo "Невозможно соединиться с базой";
// если соединение успешное...
else
{
    $db=mysql_select_db('oko');
    $query="select id_worker from workers where login='".$login."' and psw='".$psw."'";
    $result = mysql_query($query);
    $row=mysql_fetch_array($result);
// если такой пользователь есть, то создаем сессию, регистрируем его ИД
	  if (mysql_num_rows($result)> 0 )
	  {
                 session_start();
	    $valid_user = $row["id_worker"];
	    session_register("valid_user");
	  }
// в противном случае выдаем сообщение и отправляем на повторную авторизацию
      else
      {
      echo "Вы не прошли авторизацию";
      echo "<form action=oko_main.php method=post> 
      login<input name=login type=text><br>
      password<input name=psw type=password><br>
      <input type=submit value='LOG IN'>
      </form>";
      }
    }

}
// если логина с паролем нет или они пустые, то предлагаем форму для логина с паролем
else
{
      echo "<form action=oko_main.php method=post> 
      login<input name=login type=text><br>
      password<input name=psw type=password><br>
      <input type=submit value='LOG IN'>
      </form>";
}
?>

проблема в том, что если я ввожу верные логин и пароль, то у меня выдается сообщение NO RESULT и все... больше ничего нет. Если эту же страницу обновить, то нормально пишется значение valid_user
Такое ощущение, что в первый раз он не видит, что сессия создана и в ней зарегистрировано значение...
Кто может указать на ошибку - буду очень признательна
...
Рейтинг: 0 / 0
(PHP) сесси - почему-то не работает после первого захода
    #33462637
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напишите var_dump($_SESSION) сразу после session_start(); и будет гораздо понятней, почему так происходит.
...
Рейтинг: 0 / 0
(PHP) сесси - почему-то не работает после первого захода
    #33462702
Olyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
угу, получается, что не пишется в массив $_SESSION переменная, то что я и предполагала
а почему не пишется? ведь сессионный файл создается в нем все есть...
...
Рейтинг: 0 / 0
(PHP) сесси - почему-то не работает после первого захода
    #33463955
Savage_Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению не вижу всего кода на странице, но исходя из вышеперечисленного могу посоветовать следующее:
1. session_start() лучше ставить всегда в самом начале скрипта до выполнения каких-либо действий, иначе если до вызова этой функции браузер отсылает какие-либо даные на сервер, то далее session_start() не возымеет никакого действия, поскольку данные на сервер уже будут посланы (сессия не запуститься) - судя по действию скрипта такое происходит и сессия реально стартует только при повторной перезагрузке

2. session_start() лучше ставить в начале выполнения любого скрипта - не проблема если эта функция будет повторяться даже если сессия уже стартанула - в таком случае сервер проверит, если сессия существует - запускаться она не будет (только нужно быть осторожным, чтобы избежать проблемы, описанной в п.1. - особенно если скрипты подключаются в ыже выполняемый).

Может немножко сумбурно объяснил, главное - session_start() - ставь в самом начале (в данном случае oko_main.php) а уж потом регистрируй столько переменных, сколько тебе захочется :)


-- мы едем, едем, едем.... ---
...
Рейтинг: 0 / 0
(PHP) сесси - почему-то не работает после первого захода
    #33464015
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор главное - session_start() - ставь в самом начале
Это не главное. Главное - понять, как работают сессии. Понять и вызывать session_start() там, где это нужно, а не устраивать демографические взрывы сессий.

P.S. Ответьете себе на вопрос: "Зачем нужно вызывать сессию тому, кому она не нужна?"
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) сесси - почему-то не работает после первого захода
    #33464060
Savage_Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Человек только учится ими пользоваться
Для того чтобы грамотно использовать сессии - нужно соответственно и грамотно строить скрипт, чтобы не возникало ситуаций, которые я описал выше.
Все мы начинало с малого, а опыт приходит со временем.
-- мы едем, едем, едем.... ---
...
Рейтинг: 0 / 0
(PHP) сесси - почему-то не работает после первого захода
    #33467211
Olyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за отклики и советы.
Моя проблема была в логике - подправила, пока все работает :)

С Новым Годом!
...
Рейтинг: 0 / 0
(PHP) сесси - почему-то не работает после первого захода
    #33473307
kutsanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эта проблема не твоя а ХОСТЕРОВ.
у меня такой же глюк был...
ну и есть пока.... сейчас решаю переход на новый Хостинг.
love.nskport.ru - глючит
tmp.harbinsib.ru - не глючит
хотя код абсолютно одинаковый.
...
Рейтинг: 0 / 0
(PHP) сесси - почему-то не работает после первого захода
    #33473418
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
kutsanovЭта проблема не твоя а ХОСТЕРОВ.До чего народ пошёл "умный". Разберитесь вначале, как вообще сессии работают, а потом валите на хостеров.
PHP FAQ: Сессии. Подробное описание работы и объяснение механизма.
И не надо косить на хостеров, если сессии настроить не смогли нужным ВАМ образом - хостер не может под каждого клиента подстраиваться, тем более, когда клиент свою проблему может решить самостоятельной настройкой.
...
Рейтинг: 0 / 0
(PHP) сесси - почему-то не работает после первого захода
    #33496393
kutsanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да я достаточно знаю о сессиях
я тебе говорю
щас хостинг сменил
код оставил преждний
все работает
на старом не работал
вообще у USERS.ru много чего глючит - не советую с ними работать.
.....
...
Рейтинг: 0 / 0
(PHP) сесси - почему-то не работает после первого захода
    #33496469
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
kutsanovда я достаточно знаю о сессияхКак то вот это вот утверждение не сочитается со следующимщас хостинг сменил
код оставил преждний
все работает
на старом не работалЕсли бы вы достаточно знали о сессиях - вы бы разобрались в причинах и озвучили бы их. А "сменил хостинг" - это не разобрался в причинах, это засунул голову в песок.
...
Рейтинг: 0 / 0
(PHP) сесси - почему-то не работает после первого захода
    #33496470
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
*соч и таетсясовсем безграмотным стал :(
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) сесси - почему-то не работает после первого захода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]