ФорумПрограммированиеPHP для идиотов → помогите с $_SESSION

помогите с $_SESSION

  • PATCH1

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 11 января 2011 г. 14:46

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

    enter.php
    //форма для авторизации
    <form action="enter.php" method="post">
    <table>
    <tr>
    <td>Логин:</td>
    <td><input type="text" name="login" /></td>
    </tr>
    <tr>
    <td>Пароль:</td>
    <td><input type="password" name="pass" /></td>
    </tr>
    <tr>
    <td></td>
    <td><input type="submit" value="Войти" /></td>
    </tr>
    </table>
    </form>
    <?php
    include('connect.php');
    //проверка переменых
    if (isset($_POST['login']) && isset($_POST['pass']))
    {

    $login= ($_POST['login']) ;
    $pass= ($_POST['pass']) ;


    //коннект к БД
    $logout = mysql_query("SELECT id FROM user WHERE login='$login' AND password = '$pass' LIMIT 1")or die(mysql_error());

    // если такой пользователь нашелся
    if (mysql_num_rows($logout) == 1)
    {
    // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)

    $row = mysql_fetch_assoc($logout);
    $_SESSION['user_id'] = $row['id'];
    //присваеваем переменую
    $user_id = $_SESSION['user_id'];

    }
    else
    {
    die('Такой логина с паролем не существует');
    }

    }
    // перебрасываем на наш файл чисто для проверки
    ?>
    <html><head>
    <meta http-equiv='refresh' content='0; URL=form.php'>
    </head></html>


    form.php - в этот файл не попадает переменая user_id проверял первоначально через команду echo $user_id; ваще


    <?php session_start();
    include('connect.php'); ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>11</title>
    </head>

    <body>
    <?php
    if (isset($user_id)) //если существует выводим форму
    {
    print ("
    <form action='reconnect_add.php' method='post' name='recconect_add'>
    <label><p class='form_theme' >Тема:</p>
    <p class='form_margin'><input name='theme' type='text' size='40' maxlength='255'></p>
    </label>
    <label><p class='form_text'>Текст:</p>
    <p class='form_margin'>
    <textarea name='text' cols='40' rows='8'> </textarea>
    <input name='nick' type='hidden' value='$nick'>
    <input name='email' type='hidden' value='$email'></p>
    </label>
    <p><input name='button_add' type='submit' value='отправить'></p>
    </form>");
    }
    else // если не существует
    {
    die('Доступ закрыт.');
    }
    ?>
    </body>
    </html>




    помогите народ просидел часа 4 никак непойму где ошибка даже код лишни убрал что бы легче искать было. Пользуюсь кстати пакетом для разработчки denwer может там че отключено.
  • adw0rd

    Сообщения: 22943 Репутация: N Группа: в ухо

    Spritz 11 января 2011 г. 15:07, спустя 21 минуту 17 секунд

    А где вы определяете $user_id в form.php?

    <?php
    if (isset($user_id)) //если существует выводим форму
    {
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • PATCH1

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 11 января 2011 г. 15:11, спустя 4 минуты 7 секунд

    хм) точно ) мы ж не подрубаем файл enter.php к form.php а значит и переменая не передалась. Спасибо) за помощь)
  • PATCH1

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 11 января 2011 г. 15:20, спустя 9 минут 1 секунду

    и еще 1 вопросик к этой же теме почти) перед запросом к бд в файле enter.php я ставлю
    if (!get_magic_quotes_gpc())
    [man]{
    $login= mysql_escape_string($_POST['login']) ;
    $pass= mysql_escape_string($_POST['pass']) ;
    } [/man]
    для экранизации sql запросов , но когда я делаю такую проверку мне выдает назад формочку ввода и снизу надпись
    Такой логина с паролем не существует
    Это значит что функция !get_magic_quotes_gpc() отключена? чтоли
  • PATCH1

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 11 января 2011 г. 22:33, спустя 7 часов 12 минут 49 секунд

    опять та же проблема что и в 1 посту . непойму вчера ток все пахало) мот вчера дет ошибку допустил
    enter.php - сюда переменая передается спокойно
    <?php 
    include('option/connect.php');
    //проверка переменых
    if (isset($_POST['login']) && isset($_POST['pass']))
    {

    $login= $_POST['login'] ;
    $pass= $_POST['pass'] ;


    //коннект к БД
    $logout = mysql_query("SELECT id FROM user WHERE login='$login' AND password = '$pass' LIMIT 1")or die(mysql_error());

    // если такой пользователь нашелся
    if (mysql_num_rows($logout) == 1)
    {
    // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)

    $row = mysql_fetch_assoc($logout);
    $_SESSION['user_id'] = $row['id'];

    echo "<html><head>
    <meta http-equiv='refresh' content='0; URL=form.php'>
    </head></html>";
    }
    else
    {
    die('Такой логина с паролем не существует');
    }

    }
    ?>


    form.php - а сюда не передается все равно что сессия не стартанула. что за полтергейст Оо
    <?php session_start();
    include "option/connect.php"; ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>11</title>
    </head>

    <body>
    <?php
    $user_id = $_SESSION['user_id'];
    if (isset($user_id)) //если существует выводим форму
    {
    print ("
    <form action='reconnect_add.php' method='post' name='reconnect_add'>
    <label><p class='form_theme' >Тема:</p>
    <p class='form_margin'><input name='theme' type='text' size='40' maxlength='255'></p>
    </label>
    <label><p class='form_text'>Текст:</p>
    <p class='form_margin'>
    <textarea name='text' cols='40' rows='8'> </textarea>
    <input name='nick' type='hidden' value='$nick'>
    <input name='email' type='hidden' value='$email'></p>
    </label>
    <p><input name='button_add' type='submit' value='отправить'></p>
    </form>");
    }
    else // если не существует
    {
    die('Доступ закрыт.');
    }
    ?>

    народ помогите плз опятЬ(( немогу плин с этими сессиями
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 января 2011 г. 22:34, спустя 1 минуту 28 секунд

    include "option/connect.php";

    в этом файле

    в смом начале сделай session_start и быстро читать про php.net/sessions
    Сапожник без сапог
  • PATCH1

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 11 января 2011 г. 23:48, спустя 1 час 13 минут 15 секунд

    Спасибо помогло, прочту обязательно.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!