PHP Сессии

Тема в разделе "PHP", создана пользователем Дэн, 4 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Дэн

    Дэн Постоялец

    Регистр.:
    3 май 2008
    Сообщения:
    63
    Симпатии:
    8
    Привет всем, я вот учу php и для развития пишу мини cms с MySql
    Пишу не для продажи а так для себя, чтоб научится програмировать, и мне много моментов не понятно еще, вот например сессии, в гугле один копи паст, толкового ниче нет, а учебников внятных для начинающих я не находил (, Прошу разьяснить как правильно использовати сесии, и пояснить как их можно использовать для залогивания, и разлогивания, или дайте ссылочки на внятные ресурсы для новичков! За рание спасибо всем ;)
     
  2. lena berkova

    lena berkova

    Регистр.:
    14 янв 2009
    Сообщения:
    441
    Симпатии:
    19
    Сессии предназначены для хранения сведений о пользователях при переходах между несколькими страницами.

    пример
    <?
    session_start();
    $_SESSION['user'] = "куку";
    echo 'Привет, '.$_SESSION['user']."<br>";
    ?>

    если на любой странице можно вызвать код
    Код:
    echo 'Привет, '.$_SESSION['user']."<br>";
     
  3. OverFade

    OverFade Создатель

    Регистр.:
    4 авг 2009
    Сообщения:
    15
    Симпатии:
    2
    Суровые кодеры признают только официальный мануал: http://php.net/manual/en/book.session.php

    А так если вкратце и после основ, сессии на высокопосещаемых сайтах достаточно сильно грузят сервер. Лично я стараюсь информацию в сессии хранить как можно реже, если это возможно конечно (например, для гостей вообще сессии не создавать).
    Данные, которые не нужно защищать от пользователя лучше хранить в куки.
    И если на сайте при вызове любой страницы идет коннект к БД, то лучше сессии в БД хранить а не на диске...
    Ну как-то так))
     
  4. Дэн

    Дэн Постоялец

    Регистр.:
    3 май 2008
    Сообщения:
    63
    Симпатии:
    8
    Все бы хорошо было если бы я по английски понимал тогда бы я и почитал стандартный мануал, может где есть нормальный перевод его с примерами кодов? чтоб вникнуть в смысл, а то я новичек как бы, ведь на примерах работы все лучше понимается :)
     
  5. OverFade

    OverFade Создатель

    Регистр.:
    4 авг 2009
    Сообщения:
    15
    Симпатии:
    2
    Вот вроде нормальный: http://manual.pohape.ru/

    Добавлено через 1 минуту
    Но все равно советую научиться пользоваться английской версией мануала.
    Это не так сложно как кажется. Нужны только базовые знания английского.
    Просто в русском мануале тонны ошибок и неточностей, из-за которых потом можно часами выискивать баг (на себе проверено).
     
    Дэн нравится это.
  6. Дэн

    Дэн Постоялец

    Регистр.:
    3 май 2008
    Сообщения:
    63
    Симпатии:
    8
    Вот нашел кусок кода с сессиясми, вроде работает:
    PHP:
     <?php
     
    // URL скрипта
     
    $url 'http://localhost/test/session.php';
     
    // Время жизни кукиша
     
    $duration 1200;
      
     
    // Список пользователей и паролей
     
    $members = array(
       
    'Vladson'=>'123456'
     
    );
      
     
    session_start();
     if ( isset(
    $_POST['login']) && isset($_POST['username']) && isset($_POST['password']) ) {
       
    $username get_magic_quotes_gpc() ? stripslashes($_POST['username']) : $_POST['username'];
       
    $password get_magic_quotes_gpc() ? stripslashes($_POST['password']) : $_POST['password'];
       if ( 
    array_key_exists($username$members) && $members[$username] === $password ) {
           
    $_SESSION['username'] = $username;
           
    $_SESSION['password'] = $password;
       }
       
    header('Location: ' $url);
       exit;
     } elseif ( isset(
    $_POST['logout']) ) {
       unset(
    $_SESSION['username']);
       unset(
    $_SESSION['password']);
       
    header('Location: ' $url);
       exit;
     }
      
     
    $registred_user false;
     if ( isset(
    $_SESSION['username']) && isset($_SESSION['password']) ) {
       
    $username get_magic_quotes_gpc() ? stripslashes($_SESSION['username']) : $_SESSION['username'];
       
    $password get_magic_quotes_gpc() ? stripslashes($_SESSION['password']) : $_SESSION['password'];
       if ( 
    array_key_exists($username$members) && $members[$username] === $password ) {
           
    $registred_user $username;
       }
     }
      
     
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
     <!--
       С уважением Vladson.
       http://dkflbk.nm.ru/
       E-Mail:dkflbk@nm.ru
     -->
     <html>
       <head>
         <title>test</title>
         <meta http-equiv="content-type" content="text/html; charset=windows-1251">
       </head>
       <body>
         <form action="<?=$url?>" method="post">
           <p>
     <?if(!$registred_user):?>
             Username:
             <br>
             <input type="text" name="username" value="Vladson">
             <br>
             Password:
             <br>
             <input type="password" name="password" value="123456">
             <br>
             <input type="hidden" name="login" value="true">
             <input type="submit" value="Login">
     <?endif?>
     <?if($registred_user):?>
             <input type="hidden" name="logout" value="true">
             <input type="submit" value="Logout">
     <?endif?>
           </p>
         </form>
       </body>
     </html>
    Только вот мало понятно что к чему, кто может разьясните по точнее, буду очень благодарен
     
  7. OverFade

    OverFade Создатель

    Регистр.:
    4 авг 2009
    Сообщения:
    15
    Симпатии:
    2
    Ну это очередной говнокодец.
    Не советую на такое смотреть... Лучше самому все потихоньку писать с нуля и так учиться... А не пытаться понять чужой гавнокод, имхо.

    Для простейшей авторизации нужно просто уметь обращаться с куками и сессиями. Не более.
    Есть кука авторизированного юзера - стартуем сессию и проверяем авторизацию.
    Нет куки - гость. Даже сессию стартовать не обязательно.
    Выход - удаление сессии и куки.
    Вход - создание куки и запись данных в сессию.

    Но это опять же, просто пример.
     
  8. Дэн

    Дэн Постоялец

    Регистр.:
    3 май 2008
    Сообщения:
    63
    Симпатии:
    8
    Хороший совет, только вот я не знаю как правильно строить, ну всеравно спасибо буду искать инфу
     
  9. IgorA100

    IgorA100 Постоялец

    Регистр.:
    3 янв 2009
    Сообщения:
    62
    Симпатии:
    31
    Вот на русском про сессии ;)
    http://www.php.su/articles/?cat=examples&page=070
     
    Дэн нравится это.
  10. kioto

    kioto Писатель

    Регистр.:
    24 июл 2009
    Сообщения:
    4
    Симпатии:
    1
    Попробуйте почитать на spavkaweb.ru. Я, в свое время, с этих справочников начинал. Про сессии написано доступно и достаточно подробно.
     
    Дэн нравится это.
Статус темы:
Закрыта.