За последние 24 часа нас посетили 18729 программистов и 1591 робот. Сейчас ищут 1809 программистов ...

ТРАБЛШУТ НУЖЕН ОРЛИНЫЙ ГЛАЗ

Тема в разделе "Сделайте за меня", создана пользователем XAS, 15 дек 2015.

  1. XAS

    XAS Новичок

    С нами с:
    15 дек 2015
    Сообщения:
    1
    Симпатии:
    0
    Всем привет! Ваш покорный слуга - студент кафедры ОИТ.
    Столкнулся с задачей на зачет - форма регистрации на php, код имеется, рабочий. Проблема в том , что из массива сессии не достается Email и username. Кто может быстро посмотреть?
    Код (PHP):
    1. <?php include "base.php"; ?>
    2. <!DOCTYPE HTML>
    3.  
    4. <html>
    5. <head>
    6.     <meta charset="utf-8">
    7.     <title>Регистрация</title>
    8.     <link rel="stylesheet" href="style.css">
    9. </head>
    10. <body>
    11.  
    12.     <div id="main">
    13.  <?php
    14.     if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username']))  //проверка, не зареган ли ползеватль
    15. {  
    16.     
    17. ?>  
    18.      <h1>раздел для зарегестрированых юзеров</h1>
    19.  
    20.      
    21.      <p>Привет, <b><?=$_SESSION['Username']?></b>. Твоя почта - <b><?=$_SESSION['EmailAddress']?></b>.</p>  
    22. <p>[url="logout.php"]Выход[/url]</p>    
    23. <?php  
    24. }    
    25. elseif(!empty($_POST['username']) && !empty($_POST['password'])) //проверка, зарегистрировался и отправил ли свои данные юзер
    26. {  //$_POST это массив пхп который хранит логины и пароли
    27.    
    28.     $username = mysql_real_escape_string($_POST['username']);  //функция очищения ввода данных
    29.   $password = md5(mysql_real_escape_string($_POST['password'])); //   ШИФРОВАНИЕ ПАРОЛЯ!!11 (‡▼益▼)  
    30.  
    31.  
    32. //CАМАЯ БЕЯЧАЯ ДИЧЬ
    33.  $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'");  
    34.  //достаем все из таблицы юзеров,на соответсвие логин-пароль
    35.     if(mysql_num_rows($checklogin) == 1)  
    36.     {  
    37.      $row = mysql_fetch_array($checklogin);//Возвращает массив с обработанным рядом результата запроса, или FALSE, если рядов больше нет.
    38.   
    39.             $email = $row['EmailAddress'];  
    40.       $_SESSION['Username'] = $username;  //http://php.ru/manual/reserved.variables.session.html
    41.    $_SESSION['EmailAddress'] = $email;  
    42.           $_SESSION['LoggedIn'] = 1;  
    43.  
    44.        echo "<h1>Получилось!</h1>";  
    45.         echo "<p>Сейчас вы будете перенаправлены в закрытый раздел.</p>";  
    46.       echo "<meta http-equiv='refresh' content='2;index.php'>";//обновление страницы , с пройденой авторизацией  
    47.     }  
    48.     else  
    49.     {  
    50.         echo "<h1>Ошибка</h1>";  
    51.      echo "<p>Аккаунт не найден <a href=\"index.php\">попробовать ещё раз</a>.</p>";  
    52.     } 
    53. }  
    54. else  
    55. {  
    56.     
    57.     ?>   
    58.    <h1>Авторизация</h1>  
    59.  
    60.    <p>Здравствйте! Если у вас нет аккаунта, то [url="register.php"]зарегистрируйтесь[/url].</p>  
    61.  
    62.     <form method="post" action="index.php" name="loginform" id="loginform">  
    63.     <fieldset>  
    64.         <label for="username">Логин:</label><input type="text" name="username" id="username"><br>  
    65.         <label for="password">Пароль:</label><input type="password" name="password" id="password"><br>  
    66.         <input type="submit" name="login" id="login" value="Войти">  
    67.     </fieldset>  
    68.     </form>  
    69.  
    70.    <?php  
    71. }  ?>
    72.     </div>
    73.  
    74.     
    75.     
    76.     </body>
    77. </html>
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а де старт сессии?
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Что там?

    mysql_* устарела и убрана из PHP7, используй PDO, mysqli_*

    Хеширование, а не шифрование

    XSS если $_SESSION['Username'] будет содержать html, javascript код

    Тут нужно быть осторожнее, чтобы не выстрелить себе в ногу, обычно после перенаправления нужно прервать выполнение программы через exit например
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Это не авторизация. Это аутентификация.