За последние 24 часа нас посетили 22385 программистов и 1140 роботов. Сейчас ищут 687 программистов ...

Вопрос по Сессиям

Тема в разделе "Вопросы от блондинок", создана пользователем Игорь_Vasinsky, 18 янв 2009.

  1. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Привет. Это снов я. У меня опять больная идея. Вообщем 3 вопроса:

    1. Как проверить пустое ли поле a форме до момента отправки (на javascr то if form.name=""), а на PHP аналог найти не могу,

    2. Всё это вот к чему, решил испробовать: авторизация по знач сессии т.е. если переменые в сессии зарегины то переход, если переменные пустые - то запрет

    3. И покажите на примере как задать длительность сессии.

    У меня как всегда чумовые идейки.

    да, ещё у меня почему-то не получилось передать ip через сессию через $REMOTE_ADDR;


    Хотелось бы услышать ваше предложеня по этим конкреиным вопросам, а потом уж...
     
  2. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    купить норм книжку и всё будет хорошо
    а то
    сразу видно что афтор не в теме
     
  3. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Да как раз хотелось бы увидеть код................
     
  4. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Слышь умелые... Вы ещё смайлов нарисовали бы до жоп.... И лады. А афтор дествительно не в теме. А то хюл... ему тут делать. Всех благ.

    а то с книжкой тому цитата

     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Хотел помочь, но тут увидел:
    Раз и навсегда желание пропало помогать.
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    http://phpfaq.ru/na_tanke

    ЗЫ. на том сайте много интересных статей.
     
  7. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    ТЫ ж мне помог в тот раз и я те до сих пор благодарен. А мое сообшение было адресовано другим господам, которые начали угорать в прямом эфире. Это уже проехали, нормально потом поговорили и усё путём. Я сюда за помощью пришёл,а меня высмеювают.


    Вы хоть поняли над чем смеялись, я то до сих пор в пролёте.

    А суть такая:

    Есть форма регистрации (sms биллинг (поле для пароля)+мои добавки полей ввода в форме), где передаются n-переменных, (меня интересует логин - для приветствия ), при каждой регистрации - все данные формы - сохраняются (+ведётся учёт кол-ва регистраций).

    пример http://vasinsky.com/join.php

    Пароль действует 72 часа. Скрипт проверки пароля происходит на стороне стороннего сервера, к которому доступа я не имею.

    Смысл идеи таков: т.к. пароль валиден 3 дня -> след-но пользователь и будет им пользоваться 3 дня, при этом у него возникает необходимость каждый раз регится, а след-но и кол-во регистраций становится мнимым - я не хочу использовать авторизацию пользователя (просто не хочу лишний раз напрягать посетителя).

    Читал, знаю что

    1. нужно использовать сессии для узнавания посетителя при его перемешении по разделам (каждая страница разделов, снова предлогает ввести пароль - так уж работает партнёрск. скрипт биллинга)

    2. использовать cookies для узнования пользователя при повторном заходе на сайт


    Необходимо

    после первой регистрации - узнавать пользователя - молча по ip (в течении 72 часо) и не предлогать ему заново авторизироваться, при этои учесть что нужно встретить его по имени и то что пароль валиден 72 часа, т.е. по истечении данного периода - не узновать посетителя предномеренно.

    Если пользователь с другого ip - его проблемы

    Не ужеле не интересно?
     
  8. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Как проверить пустое ли поле a форме до момента отправки (на javascr то if form.name=""), а на PHP аналог найти не могу,

    здесь я решил во время сессии (после регистрации) - передовать имя, т.к. базы как таковой нет - поэтому хотел просто проверять значение переменной - если есть то вперёд, - если нет то форма регистрации.
     
  9. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    lol а кода то и нету !
     
  10. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Так...я смотрю у вас всё пренципиально

    Начало такое

    Работает вот так


    Регистрируем

    <?php
    session_start();
    $sms=$key;
    $username=$name;
    $ip=$_SERVER['REMOTE_ADDR'];
    session_register("sms");
    session_register("username");
    session_register("ip");
    ?>


    Встречаем юзера

    'Здрасти, '.$_SESSION['username'].',пароль:'.$_SESSION['sms'].' ip:'.$_SESSION['ip'].


    Теперь я так понимаю - юзеров будет не один - нужно как то присвоить какой-то номер чтоли, у каждого юзверя - своя ссесия, или ни чё делать не надо?
     
  11. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    пока ответов не надо....я в процессе. Если что спрошу сам.
     
  12. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    php - серверный язык, как вы хотите проверить на сервере, заполнено ли поле или нет? только AJAX. Где ваш здравый смысл? И почему вас JS не устраивает?
     
  13. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Ну во первых - проверить пустое поле как я поня очень просто - if ($name_pole == "") - т.е. значение из формы небыло передано, но сейчас я от этого отказался. Всмысле - алгоритм работает должен был выглядеть так:

    юзер заполняет форму ->
    жмёт отправить ->
    проходит проверка пароля (скрипт на удалённом сервере) ->
    пароль верен ->
    переходит на страницу, где стартует сессия (в ней регистрируются некие поля формы) ->
    -Юзер начинает бродить по сайту (каждая станица оного защищена тем замым скриптом для проверки пароля - т.е. на каждой новой странице - даже если пользователь ввел пароль - этот глупый скрипт просил снова и снова ввести его)

    Я хотел сделать так

    После первой регистрации - все данные пользователя зарегины в сессии , и если он переходил на новую страницу, то сначала работал мой скрипт - который сначала проверял зарегина ли переменная (скажем 'имя')- если зарегина - то я обходил тот скрипт валидности пароля - если переменная не зарегина - то я выводил форму регистрации.


    Сейчас же я хочу использовать cookie - с продолжительностью жизни 3 дня (т.к. пароль валиден тоже 3 дня.)

    Скорее всего придётся выдёргивать ip юзера - заносить в базу и каждый раз проверять - если ip есть и cookie живы - то я приветствую юзера по имени и не показываю ему форму регистрации.
     
  14. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    Игорь_Vasinsky
    ваш вопрос был
    PHP:
    1. if ($name_pole == "")
    плохо. лучше:
    PHP:
    1. if(empty($variable))
    [/php]
     
  15. ATI

    ATI Активный пользователь

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
    Это вредно..

    PHP:
    1.  
    2. <?php
    3. if (empty($name_pole))
    4. {
    5. // тарам пампам
    6. }
    7.  
     
  16. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    дадада где то я видел, но забыл..... спасиб. пригодиться. Раз уж ты на связи скажи - когда я задаю сессию - мне необходимо для неё имя и индефикатор ?
     
  17. ATI

    ATI Активный пользователь

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
    Если собрались работать с сессиями, настоятельно рекомендую, прочитать о них.
    http://phpfaq.ru/session#main
     
  18. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Вот блин раньше всё работало так:

    Код (Text):
    1. <?php
    2. session_start();
    3. $sms=$key;
    4. $username=$name;
    5. $ip=$_SERVER['REMOTE_ADDR'];
    6. session_register("sms");
    7. session_register("username");
    8. session_register("ip");
    9. ?>

    Встречаем юзера

    Код (Text):
    1. 'Здрасти, '.$_SESSION['username'].',пароль:'.$_SESSION['sms'].' ip:'.$_SESSION['ip'].
    теперь я узнаю толь ко ip, а астальное пишет Undefined variable
     
  19. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    К слову для безопасности это со всем не приемлимо.
    Если переменные $key; и $name; переменные с формы - тогда это уж со всем опасно.
     
  20. ATI

    ATI Активный пользователь

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
  21. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    как я понял стандартное время жизни 24 минуты. Но почему она снова не старует?
     
  22. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    register global = off
    Отключен передача переменных только через суперглобальные массивы типа
    $sms=$_REQUEST['key'];
    А ещё лучше узнать какой метод используется в форме.
     
  23. unicross

    unicross Активный пользователь

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    С сессией-то все в порядке. А вот переменные в сессии не имеют значений!!! $_GET или $_POST используйте...
     
  24. ATI

    ATI Активный пользователь

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
    Автор, пойми, так и будут возникать вопросы каждые 5 минут.
     
  25. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Тогда напиши пожалуста код такой

    если сессия мертва - запускаем - если жива...