Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Авторизация
 
 автор: Football   (29.07.2005 в 15:22)   письмо автору
 
 

Снова требуется помощь с сессиями!
Смысл значит такой. Если пользователь вошёл на форум с помощью специальной формы то создаётся Сессия с его именем пользователя.
На главной странице форума в определённом месте проверяется есть ли Сессия, и если есть то пшиет логин,который в Сессии, если нет, то пшиет, что бы пользователь вошёл на форум.
Написал следующий код:
Страница с авторизацией:

@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. Страница с выводом Сессии инклудиться. Незнаю, может и в этом ошибка.

   
 
 автор: Гость   (29.07.2005 в 15:50)   письмо автору
 
   для: Football   (29.07.2005 в 15:22)
 

не понял для чего эта строка:

unset($_SESSION['status_login']);

???
попробуй так

<?
session_start
(); 
if(!
$_SESSION['status_login'])
{
 echo 
"Пожалуйста зарегестрируйтесь или авторизируйтесь";

else
 { 
echo 
$_SESSION['status_login'];
}
?>

   
 
 автор: Football   (29.07.2005 в 19:24)   письмо автору
 
   для: Гость   (29.07.2005 в 15:50)
 

Всё ранво не выходит!

   
 
 автор: cheops   (29.07.2005 в 19:37)   письмо автору
 
   для: Football   (29.07.2005 в 19:24)
 

А у вас cookie в браузере включены?

   
 
 автор: Football   (29.07.2005 в 20:01)   письмо автору
 
   для: cheops   (29.07.2005 в 19:37)
 

Должны, по крайней мере я их не выключал.
Может из-за того что файл инклудиться?

   
 
 автор: method   (29.07.2005 в 20:06)   письмо автору
 
   для: cheops   (29.07.2005 в 19:37)
 

попробуй так:

<?php
session_start
(); 
$login1 trim($_POST['login1']);
$_SESSION['status_login'] = $login1;
?>


PS: на счёт экранизации старта сессии,что
могут возникнуть ошибки при её старте?

   
 
 автор: Гость   (30.07.2005 в 05:05)   письмо автору
 
   для: 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'>";

   
 
 автор: Football   (30.07.2005 в 08:57)   письмо автору
 
   для: Гость   (30.07.2005 в 05:05)
 

Сессия точно регистрируется.
$login1 - из поля ввода логина
Щас пойду попробую метдот Methoda

Нет, всё равно не работает. Вот вообщем, смотрите, прикрепляю форум:

   
 
 автор: Football   (30.07.2005 в 10:49)   письмо автору
 
   для: Football   (30.07.2005 в 08:57)
 

Вот ещё что заметил!
Если сначало зайти в Админ центр, а потом попробовать войти на форум (всё равно под каким зарегестированным пользователем) то всё нормально! Что за фигня!

   
 
 автор: Lenux   (30.07.2005 в 10:58)   письмо автору
 
   для: 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> Если ты имел ввиду, то что создаётся имя сессии, что заместо кучи циферок , будет имя пользователя, то я так думаю, что это реализовать сложно. Во- вторых, будем большая дыра в безопасноти на мой взгляд:)

   
 
 автор: Football   (30.07.2005 в 15:53)   письмо автору
 
   для: Lenux   (30.07.2005 в 10:58)
 

Я не использую БД!

   
 
 автор: method   (30.07.2005 в 18:13)   письмо автору
 
   для: Football   (30.07.2005 в 15:53)
 

вот посмотри, и ещё раз пересмотри свои привычки
ставить такие неканкретные,вернее не правильные условия...

   
 
 автор: method   (31.07.2005 в 02:48)   письмо автору
 
   для: method   (30.07.2005 в 18:13)
 

>Вот ещё что заметил!
>Если сначало зайти в Админ центр, а потом попробовать войти на форум (всё >равно под каким зарегестированным пользователем) то всё нормально! Что за >фигня!

Вот зип на твой вопрос...
Замени в своём форуме папку ADMIN на папку из зипа...

   
 
 автор: Football   (31.07.2005 в 09:34)   письмо автору
 
   для: method   (31.07.2005 в 02:48)
 

Спасибо, снова выручил :)
Пойду посмотрю теперь!

Method
Всё равно не работает! Всё по-прежнему. Если у тебя работает, значит это мой личный баг...

   
 
 автор: method   (31.07.2005 в 23:38)   письмо автору
 
   для: Football   (31.07.2005 в 09:34)
 

что именно? скажи - чем могу помогу,
не смогу - тут дяденьки и поумнее меня есть =)...

   
 
 автор: Football   (01.08.2005 в 09:23)   письмо автору
 
   для: method   (31.07.2005 в 23:38)
 

Всё равно не аторизируется! Хотя код точно правильный...

   
 
 автор: method   (01.08.2005 в 10:24)   письмо автору
 
   для: Football   (01.08.2005 в 09:23)
 

скинь на мыло посмотрю,или здесь выложи(полностью).....

   
 
 автор: Football   (01.08.2005 в 16:21)   письмо автору
 
   для: method   (01.08.2005 в 10:24)
 

Да я уже выкладывал свой форум, тот что вверху. Даже заменяя на твою конструкцию некоторых файлов всё равно не авторизируется!

   
 
 автор: method   (01.08.2005 в 20:50)   письмо автору
 
   для: Football   (01.08.2005 в 16:21)
 

у меня всё отлично работает(исправленое) ,
так что ни знаю, вышлю тебе на мыло не по частям как
здесь выложил, а в одном зипе, если и теперь не зарабртает
то х3...ни знаю чем помочь...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования