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

Форум PHP

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

 

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

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

тема: Проверить авторизирован пользователь или нет!
 
 автор: xpom   (23.09.2011 в 22:27)   письмо автору
 
 

Подскажите, пожалуйста, как лучше проверить авторизирован пользователь (т.е. если авторизирован выводить имя, а если нет, форму вводу логина и пароля) или нет, если используется сессия?

  Ответить  
 
 автор: cheops   (23.09.2011 в 22:38)   письмо автору
 
   для: xpom   (23.09.2011 в 22:27)
 

Если при авторизации заполняется какой-то элемент массива $_SESSION, то проще всего проверить инициализирован ли он при помощи конструкции isset()
<?php
  
if(isset($_SESSION['id'])) echo "Авторизован";
?>

  Ответить  
 
 автор: xpom   (26.09.2011 в 17:42)   письмо автору
 
   для: cheops   (23.09.2011 в 22:38)
 

a id сессии он при каждой аторизации разный? Ввел пользователь имя и пароль..и стали другие? Или первый аз создается и хранится в базе?
А то я не знаком сильно с ним!

  Ответить  
 
 автор: cheops   (26.09.2011 в 21:33)   письмо автору
 
   для: xpom   (26.09.2011 в 17:42)
 

SID сессии каждый раз разный, а вот значение $_SESSION['id'] может быть каким пожелаете, в том числе с id, который хранится в базе данных или просто 1. При успешной авторизации, вы присваиваете значение этой переменной самостоятельно
<?php
  session_start
();
  ...
  
// Тут авторизация
  
...
  
$_SESSION['id'] = $user['id_user'];
  ...
?>

  Ответить  
 
 автор: xpom   (26.09.2011 в 22:00)   письмо автору
 
   для: cheops   (26.09.2011 в 21:33)
 

SID разный даже когда пользователь перейдет на другую страницу авторизированным?

  Ответить  
 
 автор: cheops   (26.09.2011 в 22:02)   письмо автору
 
   для: xpom   (26.09.2011 в 22:00)
 

Нет, в рамках сессии SID - один и тот же, именно по нему сервер определяет, что эта сессия принадлежит текущему пользователю. Время действия SID на каждом сервере различное - где-то до тех пор пока не будет выключен браузер, где-то 14 минут, где-то 30. Но на время сессии этот номер принадлежит только одному пользователю.

  Ответить  
 
 автор: xpom   (26.09.2011 в 22:20)   письмо автору
 
   для: cheops   (26.09.2011 в 22:02)
 

а можно SID менять при каждом действии в рамках сессии? Назначать новый

  Ответить  
 
 автор: cheops   (26.09.2011 в 23:15)   письмо автору
 
   для: xpom   (26.09.2011 в 22:20)
 

Да, это тоже возможно (при помощи функции session_id()).

  Ответить  
 
 автор: torxxx   (26.09.2011 в 08:24)   письмо автору
 
   для: xpom   (23.09.2011 в 22:27)
 

Не взыщи за неказистость, но вот мой код:


<?php

    $name 
$_POST['name'];
    
$pass $_POST['pass'];

    
    if 
        (
            
$name == '' or $pass == ''
        
)
            {
            unset(
$name$pass);
            }

    if 
        (
        !isset (
$name) or !isset($pass)
        )
            {
            echo 
'Заполните все поля авторизации';
            exit();
            }
    else 
        {
            
            include 
'../database/db_connect.php';
            
$result mysql_query ("SELECT * FROM user WHERE name='$name' AND pass=md5('$pass')"$db);
            
                if (
$result)
                    {
                        
session_start();
                        
$myrow mysql_fetch_array ($result);
                        if (
$myrow)
                        {
                        echo 
$myrow['name'].'<br>';
                        echo 
'<a href="/index.php" target="_self">На главную</a>';

                        }
                        else 
                        {
                        echo 
"Братюнь ты ошибся при вводе пароля или чудишь тута?<br>Ненадо тут мутить шаравары, самовары!!!";    
                        }
                    }
                else 
                    {
                    echo 
"не работает!!!";
                    }
            
        }
?>

  Ответить  
 
 автор: Гость   (26.09.2011 в 08:53)   письмо автору
 
   для: torxxx   (26.09.2011 в 08:24)
 

У вас в скрипте пример классической sql иньекции.

http://ru.wikipedia.org/wiki/Внедрение_SQL-кода

  Ответить  
 
 автор: torxxx   (27.09.2011 в 17:41)   письмо автору
 
   для: Гость   (26.09.2011 в 08:53)
 

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

  Ответить  
 
 автор: xpom   (27.09.2011 в 21:06)   письмо автору
 
   для: torxxx   (27.09.2011 в 17:41)
 

не не..и безопасность на высшем уровне оставить...че я и спрашивал, из-за безопасности!

  Ответить  
Rambler's Top100
вверх

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