|
|
|
| Снова требуется помощь с сессиями!
Смысл значит такой. Если пользователь вошёл на форум с помощью специальной формы то создаётся Сессия с его именем пользователя.
На главной странице форума в определённом месте проверяется есть ли Сессия, и если есть то пшиет логин,который в Сессии, если нет, то пшиет, что бы пользователь вошёл на форум.
Написал следующий код:
Страница с авторизацией:
@session_start();
$_SESSION['status_login'] = $login1;
print "<META HTTP-EQUIV='Refresh' CONTENT='2; URL=index.php'>";
|
Страница с выводом Сессии:
unset($_SESSION['status_login']);
@session_start();
if(!$_SESSION['status_login']){ echo "Пожалуйста зарегестрируйтесь или авторизируйтесь";}
else {
echo $_SESSION['status_login'];
|
Однако всегда пишет просьбу зарегестироваться. В чём ошибка?
PS. Страница с выводом Сессии инклудиться. Незнаю, может и в этом ошибка. | |
|
|
|
|
|
|
|
для: Football
(29.07.2005 в 15:22)
| | не понял для чего эта строка:
unset($_SESSION['status_login']);
???
попробуй так
<?
session_start();
if(!$_SESSION['status_login'])
{
echo "Пожалуйста зарегестрируйтесь или авторизируйтесь";
}
else
{
echo $_SESSION['status_login'];
}
?>
|
| |
|
|
|
|
|
|
|
для: Гость
(29.07.2005 в 15:50)
| | Всё ранво не выходит! | |
|
|
|
|
|
|
|
для: Football
(29.07.2005 в 19:24)
| | А у вас cookie в браузере включены? | |
|
|
|
|
|
|
|
для: cheops
(29.07.2005 в 19:37)
| | Должны, по крайней мере я их не выключал.
Может из-за того что файл инклудиться? | |
|
|
|
|
|
|
|
для: cheops
(29.07.2005 в 19:37)
| | попробуй так:
<?php
session_start();
$login1 = trim($_POST['login1']);
$_SESSION['status_login'] = $login1;
?>
|
PS: на счёт экранизации старта сессии,что
могут возникнуть ошибки при её старте? | |
|
|
|
|
|
|
|
для: Football
(29.07.2005 в 19:24)
| | а ты уверен что задал значение для $_SESSION['status_login']? может где в когде на одну букву ошибся...
Откуда берется параметр $login1?
@session_start();
$_SESSION['status_login'] = $login1;
print "<META HTTP-EQUIV='Refresh' CONTENT='2; URL=index.php'>";
|
| |
|
|
|
|
|
|
|
для: Гость
(30.07.2005 в 05:05)
| | Сессия точно регистрируется.
$login1 - из поля ввода логина
Щас пойду попробую метдот Methoda
Нет, всё равно не работает. Вот вообщем, смотрите, прикрепляю форум: | |
|
|
|
|
|
|
|
для: Football
(30.07.2005 в 08:57)
| | Вот ещё что заметил!
Если сначало зайти в Админ центр, а потом попробовать войти на форум (всё равно под каким зарегестированным пользователем) то всё нормально! Что за фигня! | |
|
|
|
|
|
|
|
для: Football
(30.07.2005 в 08:57)
| | Вообщем я скачал его, смотреть чего то не охото(настроение фиговое), а так в принципе, то прочитав первый пост, могу сделать вывод:
Сколько раз у тебя session_start(); - в итоге в скрипте получается, она должна указываться только один раз, в самом срипте, а не два, три и т.д. Совет:
- сделай include.php с такого рода переменными и инклюд с переменными, проще будет.
Пишем логин.php:
<?php
$login=$_POST['login'];
$pass=$_POST['pass'];
session_start();
session_name($login);
$_SESSION['login']=$login;
$_SESSION['pass']=$pass;
echo session_name;//Должен вывести $login, на сколько я понимаю:)
?>
|
Впринципе должно работать, только не забудь проверить логин и пароль перед началом сессии
Пишем after.php:
<?php
if(session_name($_SESSION['login'])==$_SESSION['login']){
if($_SESSION['login']==TRUE) {
$sql=mysql_fetch_array(mysql_query('SELECT * FROM table WHERE user_login="'.$_SESSION['login'].'"'));
if(($_SESSION['login']==$sql['login'])&&($_SESSION['pass']==$sql['pass'])) {} else { echo "Хакер?"; exit;}
}
}
?>
|
Как говориться вы используете это на свой страх и риск. Вот кстате тебе и простенький сркипт авторизации:). А у сеья не тестил, ошибки не выявлял и написал за 10 минут(макс.). Вот только точно(сейчас подумал), присваивается имя сессии, через session_name или через session_start:), вроде бы через первое, лан щас посмотрю. session_start() - просто вызывает, а session_name() - обзывает сессию.
А так для того, что бы исп. сессии не обзательно вкл. куки. Т.к. ID её передаётся:
а) через GET
б) через КУКУ
И на счёт этого заботиться PHP, а кстате посмотри н вкл. ли у тебя в PHP.ini session.auto-start - вроде бы так завётся:), значение его думаю понятно.
P>S> Если ты имел ввиду, то что создаётся имя сессии, что заместо кучи циферок , будет имя пользователя, то я так думаю, что это реализовать сложно. Во- вторых, будем большая дыра в безопасноти на мой взгляд:) | |
|
|
|
|
|
|
|
для: Lenux
(30.07.2005 в 10:58)
| | Я не использую БД! | |
|
|
|
|
|
|
|
для: Football
(30.07.2005 в 15:53)
| | вот посмотри, и ещё раз пересмотри свои привычки
ставить такие неканкретные,вернее не правильные условия... | |
|
|
|
|
|
|
|
для: method
(30.07.2005 в 18:13)
| | >Вот ещё что заметил!
>Если сначало зайти в Админ центр, а потом попробовать войти на форум (всё >равно под каким зарегестированным пользователем) то всё нормально! Что за >фигня!
Вот зип на твой вопрос...
Замени в своём форуме папку ADMIN на папку из зипа... | |
|
|
|
|
|
|
|
для: method
(31.07.2005 в 02:48)
| | Спасибо, снова выручил :)
Пойду посмотрю теперь!
Method
Всё равно не работает! Всё по-прежнему. Если у тебя работает, значит это мой личный баг... | |
|
|
|
|
|
|
|
для: Football
(31.07.2005 в 09:34)
| | что именно? скажи - чем могу помогу,
не смогу - тут дяденьки и поумнее меня есть =)... | |
|
|
|
|
|
|
|
для: method
(31.07.2005 в 23:38)
| | Всё равно не аторизируется! Хотя код точно правильный... | |
|
|
|
|
|
|
|
для: Football
(01.08.2005 в 09:23)
| | скинь на мыло посмотрю,или здесь выложи(полностью)..... | |
|
|
|
|
|
|
|
для: method
(01.08.2005 в 10:24)
| | Да я уже выкладывал свой форум, тот что вверху. Даже заменяя на твою конструкцию некоторых файлов всё равно не авторизируется! | |
|
|
|
|
|
|
|
для: Football
(01.08.2005 в 16:21)
| | у меня всё отлично работает(исправленое) ,
так что ни знаю, вышлю тебе на мыло не по частям как
здесь выложил, а в одном зипе, если и теперь не зарабртает
то х3...ни знаю чем помочь... | |
|
|
|