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

$_SESSION......

  • Booster

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

    Spritz 17 апреля 2010 г. 9:49

    Доброго времени суток. Появился такой вопрос. Почему когда создается сессия и переменная $_SESSION['login'] она где-то исчезаетю По ходу дела пока существует на всех страницах сессия, то переменная $_SESSION['login'] должна влюбом случае существовать?

    index.php

    <?php
    if((!isset($_SESSION['Login'])))// && (!isset($_SESSION['Name'])))
    {
    print<<<HERE
    <a href="register.php" style="text-decoration:none; color: black;">Register</a>
    <form action="is_auth_ok.php" method="post">
    <table>
    <tr>
    <td>
    Login
    </td>
    <td>
    <input type="text" name="login"/>
    </td>
    </tr>
    <tr>
    <td>
    Password
    </td>
    <td>
    <input type="password" name="password" />
    </td>
    </tr>
    <tr>
    <td>
    <input type="submit" name="sub_mit" value="Log In"/>
    </td>
    </tr>
    </table>
    </form>
    HERE;
    }
    function click()
    {
    unset($_SESSION['Login']);
    //session_destroy();
    }
    if (isset($_SESSION['Login']))
    {
    echo $_SESSION['Login'];
    $_SESSION['name'] = $_SESSION['Login'];
    echo "<br/>";
    echo "<a href='news.php'>News</a>";
    echo "<br/><a href='index.php' onclick='".click()."' style='text-decoration:none; color: black;'>Выход</a>";
    }
    ?>

    is_auth_ok.php

    <?php
    session_start();
    include("modules/database.php");
    if (isset($_POST['sub_mit']))
    {
    if(isset($_POST['login']))
    {
    $login = $_POST['login'];
    }
    if(isset($_POST['password']))
    {
    $password = md5($_POST['password']);
    }
    $result = mysql_query("SELECT * FROM users WHERE user_login='$login'",$db);
    $myrow = mysql_fetch_array($result);


    if ($password==$myrow['user_password'])
    {
    $_SESSION['Login']=$myrow['user_login'];
    }
    }
    header('Location: index.php');
    ?>

    news.php

    <?php
    $_SESSION['name'] = $_SESSION['name'];
    if (isset($_SESSION['name']/*$_COOKIE['name']*/))
    {
    echo "Authorization granted for ".$_SESSION['name']/*$_COOKIE['name']*/;
    }
    else
    {
    die("Authorization denied. <a href='index.php'>Index</a>");
    }
    ?>


    Короче почему получается на страницу news.php вывести $_SESSION['Login'] через переприсваивание $_SESSION['name'] = $_SESSION['Login'] ?? и почему когда нажимаешь на ссылку index.php сессия вообще уничтожается чтоли? даже на ней $_SESSION['Login'] пропадает.

    Почему так происходит? session_destroy() нигде не вызывался
  • AlexB

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

    Spritz 17 апреля 2010 г. 9:53, спустя 4 минуты 12 секунд

    session_start нет в index.php
  • Booster

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

    Spritz 17 апреля 2010 г. 9:58, спустя 5 минут 25 секунд

    завтыкал просто вверху когда страницы добавил отдельно:
    index.php


    <?php
    session_start();
    include("modules/database.php");
    //setcookie("name",$_SESSION['Login'],0,"/");
    ?>

    news.php
    <?php
    session_start();
    ?>
  • Ewg777

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 17 апреля 2010 г. 11:26, спустя 1 час 27 минут 55 секунд

    А я знаю. Дебажте!
    Спустя 31 сек.
    echo "<br/><a href='index.php' onclick='".click()."' style='text-decoration:none; color: black;'>Выход</a>";
    Вы представляете, что оно делает?
  • Booster

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

    Spritz 17 апреля 2010 г. 12:07, спустя 41 минуту 6 секунд

    оно вызывает уничтожение переменной $_SESSION['login'] при нажатии на линк, пока не нажимаешь оно не уничтожает..
    а вот почему на линк другой на другой странице она уже уничтожена (( почему…вот вопрос
  • NRG

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

    Spritz 17 апреля 2010 г. 12:20, спустя 12 минут 44 секунды

    Booster, вы считаете что ф-ия click()(пехепешная) вызывается по событию онклик(джаваскриптовому) ????
  • Ewg777

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 17 апреля 2010 г. 12:21, спустя 41 секунду


    оно вызывает уничтожение переменной $_SESSION['login'] при нажатии на линк, пока не нажимаешь оно не уничтожает..
    а вот почему на линк другой на другой странице она уже уничтожена (( почему…вот вопрос
    Учите теорию. Конкретно строки, функции, взаимодействие onclick и PHP.
  • Booster

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

    Spritz 17 апреля 2010 г. 12:35, спустя 13 минут 54 секунды

    правда я завтыкал пхп на стороне сервака обрабатывается может из-за этого ошибку и кидает
    а как допустим удалить сессию по нажатию на линк?
  • phpdude

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

    Spritz 17 апреля 2010 г. 12:36, спустя 1 минуту 45 секунд

    поржал
    Сапожник без сапог
  • Booster

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

    Spritz 17 апреля 2010 г. 12:41, спустя 4 минуты 21 секунду


    ЗЫ. На счет onclick дет увидел на каком-то сайте и себе попробовал не правильно посчитал что поделаешь?
    Спустя 97 сек.
    получается что уничтожить сессию можно лишь на другой странице доступ к которой есть у авторизированного пользователя?
  • phpdude

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

    Spritz 17 апреля 2010 г. 12:41, спустя 25 секунд

    поделать - можно дои почитать, жаль что пословицу - "незная броду, не суйся в воду"
    Сапожник без сапог
  • Booster

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

    Spritz 17 апреля 2010 г. 12:43, спустя 1 минуту 41 секунду

    я тут помочь просил а ну глумится тип ты такой же как и я был, так что встал и вышел
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 17 апреля 2010 г. 12:45, спустя 2 минуты 31 секунду

    Booster, а тут все глумятся. PS Можешь аякс заюзать.
  • Booster

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

    Spritz 17 апреля 2010 г. 12:48, спустя 2 минуты 29 секунд

    а я понял, видел дет на форуме тут, писали что это галимый форум, все ясн валим…
  • NRG

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

    Spritz 17 апреля 2010 г. 12:51, спустя 3 минуты 1 секунду

    Booster, чем тебе помочь после вот таких вот вопросов :
    а как допустим удалить сессию по нажатию на линк?

    ??

    тебе как минимум надо прочитать книгу по пхп от корки до корки
    Спустя 89 сек.

    все ясн валим…
    ясно ? вали.
    возвращайся после того как прочтешь книгу по пхп

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