Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> почему проподает сессия 
V
    Опции темы
supervladislav
Дата 7.6.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



скажите почему сессия пропадает ,при переходе на другую страницу 

Код

<?php
Error_Reporting(E_ALL);
ini_set('display_errors','On');
$ms="";
$adm="";

if(!empty($_POST['login']) and !empty($_POST['pass']) && $_SERVER['REQUEST_METHOD']=='POST'){
$name=mysql_escape_string(trim($_POST['login']));
$pass=mysql_escape_string(trim($_POST['pass']));

$per1=$db->sql_query("SELECT * FROM users WHERE login='$name' and pass='$pass'");
if($db->sql_numrows($per1)>0){

while($d1=$db->sql_fetchrow($per1)){
$adm.=$d1['adm'];
}
if($adm==2)
{
//session_register("name","pass","adm");
session_start();
$_SESSION["name"]=$name;
$_SESSION["pass"]=$pass;
$_SESSION["adm"]=2;
}
else{
//session_register("name","pass");
session_start();
$_SESSION["name"]=$name;
$_SESSION["pass"]=$pass;
//header("location:index.php");
}

}else{$ms.="вы неправильно ввели логин или пароль";}
}else{$ms.="Вы неввели логин и пароль";}



?>




Вот так я проверяю сессию 
Код

if(!empty($_SESSION["name"])) and !empty($_SESSION["pass"] and $_SESSION["adm"]==2)




PM MAIL   Вверх
mogul82
Дата 7.6.2009, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: -1
Всего: -5



session_start(); // запихни в начало файлов где работаешь с сессиями

Добавлено через 1 минуту и 46 секунд
Цитата(supervladislav @  7.6.2009,  17:27 Найти цитируемый пост)
$_SESSION["name"]


пиши одинарные кавычки

Добавлено через 4 минуты и 53 секунды
!empty($_SESSION["pass"]

Тож меня смущает.



Цитата(supervladislav @  7.6.2009,  17:27 Найти цитируемый пост)
if($adm==2)



А теперь глазеки вверх поднимаем
PM MAIL   Вверх
SneG0K
Дата 7.6.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(supervladislav @  7.6.2009,  16:27 Найти цитируемый пост)
if(!empty($_SESSION["name"])) and !empty($_SESSION["pass"] and $_SESSION["adm"]==2)

Наверно надо завязывать с молоком, ибо я никогда не могу написать такой перл. 
supervladislav, скажите, а если у вас в сессии будет хранить 50 параметров? Выберите один опорный параметр и проверяйте его.
Цитата(mogul82 @  7.6.2009,  16:53 Найти цитируемый пост)
session_start(); // запихни в начало файлов где работаешь с сессиями

 smile 
PM WWW Skype   Вверх
supervladislav
Дата 7.6.2009, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



поменял на вот так вот ))сесиия создаётся ,ну в каталоге сотведствующий файл есть ))в массиве print_r($_SESSION) пусто выросла капуста 
на этой же странице стоит
<? if(!empty($_SESSION['adm']))

весь ниже написанный модуль в самомм верху страницы подключается через include


Прошу сильно не смеяться вот так исправил ,данные в массиве появились,но как проверять  информацию $_SESSION

Код

<?php
session_start();
include('mysql.php');
$ms="";
$adm="";
if(!empty($_POST['login']) and !empty($_POST['pass']) && $_SERVER['REQUEST_METHOD']=='POST'){
$name=mysql_escape_string(trim($_POST['login']));
$pass=mysql_escape_string(trim($_POST['pass']));

$per1=$db->sql_query("SELECT * FROM users WHERE login='$name' and pass='$pass'");
if($db->sql_numrows($per1)==1){

while($d1=$db->sql_fetchrow($per1)){
$adm.=$d1['adm'];
}
if($adm==2)
{
//session_register("name","pass","adm");

$_SESSION['name']=$name;
$_SESSION['pass']=$pass;
$_SESSION['adm']=2;
}
else{
//session_register("name","pass");

$_SESSION['name']=$name;
$_SESSION['pass']=$pass;
//header("location:index.php");
}
header("location:index.php");
exit();

}else{$ms.="вы неправильно ввели логин или пароль";}
}else{$ms.="Вы неввели логин и пароль";}




?>




Это сообщение отредактировал(а) supervladislav - 7.6.2009, 18:33
PM MAIL   Вверх
mogul82
Дата 7.6.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: -1
Всего: -5



Ой её. Я те все написал смотри $adm, if, и свои проверки.
PM MAIL   Вверх
supervladislav
Дата 7.6.2009, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



А скажите почему неработает вот эта строка $_SERVER['REQUEST_METHOD']=='POST'

mogul82, а чем тебя смышает вот это !empty($_SESSION['pass']
PM MAIL   Вверх
mogul82
Дата 7.6.2009, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: -1
Всего: -5



ААААААААААААААА

Код


<?php
session_start();

Error_Reporting(E_ALL);
ini_set('display_errors','On');
$ms="";
$adm="2";

if(!empty($_POST['login']) and !empty($_POST['pass']) && $_SERVER['REQUEST_METHOD']=='POST'){
$name=mysql_escape_string(trim($_POST['login']));
$pass=mysql_escape_string(trim($_POST['pass']));

$per1=$db->sql_query("SELECT * FROM users WHERE login='$name' and pass='$pass'");
if($db->sql_numrows($per1)>0){

while($d1=$db->sql_fetchrow($per1)){
$adm.=$d1['adm'];
}
if($adm==2)
{
//session_register("name","pass","adm");

$_SESSION['name']=$name;
$_SESSION['pass']=$pass;
$_SESSION['adm']=2;
}
else{
//session_register("name","pass");

$_SESSION['name']=$name;
$_SESSION['pass']=$pass;
//header("location:index.php");
}

}else{$ms.="вы неправильно ввели логин или пароль";}
}else{$ms.="Вы неввели логин и пароль";}



?>



Пробуй.
PM MAIL   Вверх
supervladislav
Дата 7.6.2009, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



Код

<? if($_SESSION["adm"])

вот так работает но при переходе на другую страницу всё пропадает 

PM MAIL   Вверх
mogul82
Дата 7.6.2009, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: -1
Всего: -5



НУ значит наме и пасс пустые.
PM MAIL   Вверх
supervladislav
Дата 7.6.2009, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



спасибо работает ))но разрежте меня в чём раздница ))
и почему $_SERVER['REQUEST_METHOD']=='POST'   вот это несрабатывает 
у меня файл подключается 

Это сообщение отредактировал(а) supervladislav - 7.6.2009, 18:55
PM MAIL   Вверх
mogul82
Дата 7.6.2009, 18:56 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: -1
Всего: -5



По буквам сканируй. Я все уже написал.

Добавлено через 30 секунд
И отметь тему как решенную и прибавь репутацию мене.
PM MAIL   Вверх
SneG0K
  Дата 7.6.2009, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Код

while($d1=$db->sql_fetchrow($per1)){
$adm.=$d1['adm'];
}

Мне нравится этот участок кода, особенно когда дальше 
Код

if($adm==2)


Товарищь Сталин, что вы курите? (с)
PM WWW Skype   Вверх
supervladislav
Дата 7.6.2009, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



исключительно нашенскую выращенную на наших полях ))))
но в чём тут такого страшного ?
Код

if($adm==2)

PM MAIL   Вверх
bars80080
Дата 7.6.2009, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(supervladislav @  7.6.2009,  17:27 Найти цитируемый пост)
if(!empty($_SESSION["name"])) and !empty($_SESSION["pass"] and $_SESSION["adm"]==2)

скобки посчитать никто не догадался?

Добавлено через 45 секунд
Цитата(supervladislav @  7.6.2009,  19:02 Найти цитируемый пост)
но в чём тут такого страшного ?

страшно, что вначале вы её конкатенируете как строку, а затем сравниваете как число
PM MAIL WWW   Вверх
SneG0K
Дата 7.6.2009, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата

while($d1=$db->sql_fetchrow($per1)){
$adm.=$d1['adm'];
}


bars80080, тут скобки уже не помогут...
PM WWW Skype   Вверх
supervladislav
Дата 7.6.2009, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



Я осознал свой косяггг

Добавлено через 5 минут и 39 секунд
а скажите  можно ли использовать вместо header("location:index.php");
чтонить другое чтобы обновить данные на странице

Добавлено через 10 минут и 20 секунд
спасибо
PM MAIL   Вверх
mogul82
Дата 7.6.2009, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: -1
Всего: -5



Цитата(supervladislav @  7.6.2009,  19:13 Найти цитируемый пост)
а скажите  можно ли использовать вместо header("location:index.php");


echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=adm.php?com_mod=add_raz'>";

CONTENT - задержка в секундах
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1074 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.