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

Форум PHP

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

 

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

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

тема: Вход по сессии только для авторизованных пользователей.
 
 автор: WinT   (01.09.2006 в 22:55)
 
 

Вот решил форум на сессии переделать, сразу же возникла проблема. Вот примерно главная страница форума:
 <?php
session_start
();
//тут выводятся топики форумов, поэтому пропускаю
$query mysql_query("SELECT * FROM users WHERE login='".$_SESSION['login']."' AND pass='".$_SESSION['pass']."'");
$arr mysql_fetch_array($query);
if(isset(
$login$pass) and $_SESSION['login'] == $arr['login'] and $_SESSION['pass'] == $arr['pass']) {
echo 
'<a href="destroy.php">Выход</a><br>'; } else { echo '<a href="in.php">Вход</a><br> <a href="reg.php">Регистрация</a><br>'; }
?> 

Проблема в том, что если юзер не зарегистрирован, то файл сессии все равно создается и все ссылки преобретают "нехороший" вид. Как можно это исправить или я чего-то недоперепонял :))

   
 
 автор: WinT   (01.09.2006 в 23:14)
 
   для: WinT   (01.09.2006 в 22:55)
 

Блин торможу...
уже разобрался.

   
 
 автор: WinT   (01.09.2006 в 23:43)
 
   для: WinT   (01.09.2006 в 23:14)
 

Хотя нет-не разобрался...

   
 
 автор: CrazyAngel   (02.09.2006 в 00:46)   письмо автору
 
   для: WinT   (01.09.2006 в 23:43)
 

Помоему надо так

<?php
session_start
();
//тут выводятся топики форумов, поэтому пропускаю
if($query mysql_query("SELECT * FROM users WHERE login='".$_SESSION['login']."' AND pass='".$_SESSION['pass']."'")) {
    
$arr mysql_fetch_array($query);
    echo 
'<a href="destroy.php">Выход</a><br>';
    } 
else { 
    echo 
'<a href="in.php">Вход</a><br> <a href="reg.php">Регистрация</a><br>'
    }
?> 

   
 
 автор: WinT   (02.09.2006 в 14:52)
 
   для: CrazyAngel   (02.09.2006 в 00:46)
 

Не, все равно создается пустой файл сессии.

   
 
 автор: RV   (02.09.2006 в 14:58)   письмо автору
 
   для: CrazyAngel   (02.09.2006 в 00:46)
 


if($query = mysql_query("SELECT * FROM users WHERE login='".$_SESSION['login']."' AND pass='".$_SESSION['pass']."'")) { 

mysql_query всегда возвращает TRUE если запрос был выполнен успешно. вне зависимости от результата ноль или сколько то рядов.

   
 
 автор: Тёма   (02.09.2006 в 16:26)   письмо автору
 
   для: WinT   (01.09.2006 в 23:43)
 

Сначала нужно из формы авторизации получить логин и пароль, обратится к базе данных и сверить есть ли такой пользователь там. И если есть, то тогда присваивать переменной $_SESSION['user'] логин пользователя. А на каждой страничке проверять существует ли переменнвя сесии $_SESSION['user'] и не пуста ли она

   
Rambler's Top100
вверх

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