За последние 24 часа нас посетил 59091 программист и 1811 роботов. Сейчас ищет 951 программист ...

глобальная переменная $_POST

Тема в разделе "PHP для новичков", создана пользователем dembi, 29 авг 2008.

  1. dembi

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

    С нами с:
    21 июл 2008
    Сообщения:
    78
    Симпатии:
    0
    Добрый день, Всем!

    Делаю сайт для статистики.

    Есть титульная страница index.php с формой для авторизации. В зависимости, какой юзер и пароль, будут выбираться различные данные.
    После того как вводишь логин и пароль попадаешь на вторую таблицу main.php.
    На этой странице есть меню управление (Вывести информацию за сегодня, Вести информацию за вчерашний день, Вывести информацию за период).
    Меню это обычная ссылка на другой файл. Если я открываю другой файл к примеру yesterday.php, нажимав на ссылку «Вести за вчерашний день», то первым делом подключаюсь к БД.

    После чего делаю присваивание $user значение глобальной переменной $_POST['user'], то же самое делаю для пароля.
    if (isset($_POST['user'])) {$user = $_POST['user'];}
    if (isset($_POST['pass'])) {$pass = $_POST['pass'];}

    после этого пытаюсь выбрать оператора с учетом логина и пассворд.

    $login = mysql_query ("SELECT operator_id FROM logins where login='$user' and password='$pass'",$db);
    $myrow4 = mysql_fetch_array ($login);
    $oper = $myrow4['operator_id'];

    Все хорошо, когда я сразу же после авторизации попадаю на главную страницу main.php, я вижу количество сообщений за сегодня.

    Но если я пытаюсь зайти уже на страницу yesterday.php, то получаю уже вот такую ошибку :

    Notice: Undefined variable: user in C:\TEMP\PHP\statistic\today.php on line 12

    Notice: Undefined variable: pass in C:\TEMP\PHP\statistic\today.php on line 12

    Где 12 строка это:
    $login = mysql_query ("SELECT operator_id FROM logins where login='$user' and password='$pass'",$db);

    Почему он не запоминает значение переменных $user и $pass. Где я допускаю ошибку? На что мне обратить внимание, что можно решить эту проблему?
    Как я понимаю, почему-то значение суперглобальной переменной не сохраняется, когда я перехожу уже на третью страницу, как значение это переменной можно сохранять?

    Заранее Всем спасибо!
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  3. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    хранить в сессиях.

    Но при каждом вызове страницы дёргать БД для проверки — глупо. Один раз при авторизации проверь пользователя, заведи какой-нибудь флаг в сессии (его id, например) и проверяй уже его.
     
  4. dembi

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

    С нами с:
    21 июл 2008
    Сообщения:
    78
    Симпатии:
    0
    Спасибо, при включение сессий все работает

    Но дело в том, что я на основание логина и пасорда дальше из БД выбираю себе клиента, для которого эта статистика должна выводится. То есть в каждом запросе, я указываю, что только для этого клиента.