За последние 24 часа нас посетил 22801 программист и 1053 робота. Сейчас ищут 736 программистов ...

Не логинится юзер...

Тема в разделе "Сделайте за меня", создана пользователем bysja, 8 июн 2018.

Метки:
  1. bysja

    bysja Новичок

    С нами с:
    7 июн 2018
    Сообщения:
    11
    Симпатии:
    0
    У меня проблема с одной-единственной страничкой РНР. Сама страничка заключается в том, чтобы залогинить юзера по 1 полю. Юзеры есть обычные, а есть админы. В базе хранятся 2 админа - Myskovets и 777. Помогите разобраться, почему хедер не шлётся после успеха (или почему это неправильные пароли). Вот код всей странички вместе с НТМL:
    PHP:
    1. <?php
    2. if (isset($_POST['tel'])) {
    3.     $connection = new mysqli('localhost', 'root', '', 'economia') or die;
    4.     $query = 'select id, admin from USER where pass="' . $_POST['tel'] . '";';
    5.     $row = $connection->query($query) or die;
    6.     if ($row) {
    7.         $row = $row->fetch_assoc() or die;
    8.         $_SESSION['auth'] = 1;
    9.         $_SESSION['admin'] = intval($row['admin']);
    10.         header('Location: /katalog.php');
    11.     } else echo '<h3 style="color: red;">Неправильний пароль.</h3>';
    12. }
    13. else ?>
    14. <!DOCTYPE html>
    15. <html>
    16. <head>
    17.     <meta charset="UTF-8">
    18.     <link href='https://fonts.googleapis.com/css?family=Cuprum|Russo+One|PT+Sans&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
    19.     <link rel="stylesheet" type="text/css" href="../styles/main.css">
    20.     <title>Economia | Авторизація</title>
    21. </head>
    22. <body>
    23.     <?{?>
    24.     <header>
    25.         <div class="wraper">
    26.             <div id="logo">
    27.                 <h1><a href="../index.php">ЕКОНОМ . І . Я </a></h1>
    28.             </div>
    29.             <menu>
    30.                 <li><a href="../index.php"><i class="fa fa-home"></i>На головну</a></li>
    31.                 <li><a href="../infa.php"><i class="fa fa-info-circle"></i>Інформація</a></li>
    32.                 <li><a href="../katalog.php"><i class="fa fa-folder-open-o"></i>Каталог</a></li>
    33.                 <li><a class="main-item" href="javascript:void(0);"><i class="fa fa-envelope-o"></i>Зв'язок із нами</a>
    34.                     <ul class="soc-menu">
    35.                         <li><a href="#">Ми Вконтакті</a></li>
    36.                         <li><a href="#">Ми у facebook</a></li>
    37.                     </ul>
    38.                 </li>
    39.             </menu>
    40.         </div>
    41.     </header>
    42.     <div id="otstyp-a"></div> <!-- height:100px -->
    43.  
    44.     <div class="wraper">
    45.         <div>
    46.             <h2>Авторизація</h2>
    47.             <div class="auth">
    48.             <p>
    49.             Введіть у поле пароль, який ви вказували
    50.             в повідомленні про оплату, для того, щоб почати користуватись каталогом
    51.             </p>
    52.             <form method='POST' action = 'auth.php'>
    53.                 <input type='text' name='tel'>
    54.                 <input type='submit' value='Підключитись...'>
    55.             </form>
    56.             <p>
    57.             В цілях безпеки номер необхідно буде вводити при кожному вході в каталог
    58.             </p>
    59.             </div><!-- /auth -->
    60.            
    61.         </div>  
    62.     </div>
    63.     <?}?>
    64. </body>
    65. </html>
     
  2. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    225
    Симпатии:
    17
    ob_start убери
     
  3. bysja

    bysja Новичок

    С нами с:
    7 июн 2018
    Сообщения:
    11
    Симпатии:
    0
    не помогло... еще идеи?
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    двойные кавычки на апострофы в запросе попробуйте поменять
     
  5. bysja

    bysja Новичок

    С нами с:
    7 июн 2018
    Сообщения:
    11
    Симпатии:
    0
    тоже нет... и данные пишутся в сессию, к базе коннектится, находит там таблицу... а в каталог все равно не заходит.
    Страница каталога:
    PHP:
    1. <?php
    2. if ($_SESSION['auth']<>1)
    3. {
    4.     header("Location: /auth/auth.php");
    5.     exit;
    6. }
    7. if (!isset($_GET['page']))
    8.     {
    9.         $page = 'akcia';
    10.     }
    11. else
    12.     {
    13.         $page = addslashes(strip_tags(trim($_GET['page'])));
    14.     }
    15. ?>
    16. <!DOCTYPE html>
    17. <html lang="en">
    18. <head>
    19.     <meta charset="UTF-8">
    20.     <link href='https://fonts.googleapis.com/css?family=Cuprum|Russo+One|PT+Sans&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
    21.     <link rel="stylesheet" type="text/css" href="styles/main.css">
    22.     <meta name="keywords" content="Економія, СП, Вигідно, Якість" />
    23.     <meta name="author" content="hobbyart" />
    24.     <meta name="description" content="Сайт вигідних пропозицій" />
    25.     <title>
    26.         Economia | Каталог  
    27.     </title>
    28. </head>
    29. <body>
    30. <!-- <header>
    31.    
    32.     <div class="wraper">
    33.         <div id="logo">
    34.             <h1><a href="index.php">ЕКОНОМ . І . Я </a></h1>
    35.         </div>
    36.         <menu>
    37.             <li><a href="index.php"><i class="fa fa-home"></i>На головну</a></li>
    38.             <li><a href="infa.php"><i class="fa fa-info-circle"></i>Інформація</a></li>
    39.             <li><a href="katalog.php"><i class="fa fa-folder-open-o"></i>Каталог</a></li>
    40.             <li><a class="main-item" href="javascript:void(0);"><i class="fa fa-envelope-o"></i>Зв'язок із нами</a>
    41.                 <ul class="soc-menu">
    42.                     <li><a href="#">Ми Вконтакті</a></li>
    43.                     <li><a href="#">Ми у facebook</a></li>
    44.                 </ul>
    45.             </li>
    46.         </menu>
    47.     </div>
    48. </header> -->
    49. <?php include 'parts/menu.php'; ?>
    50. <div class="katalog-menu">
    51.     <div class="wraper">
    52.         <li><a href="/katalog.php?page=akcia"><i class="fa fa-gift" aria-hidden="true"></i> Акції</a><div class="alt">Календар знижок, акції</div></li>
    53.         <li><a href="/katalog.php?page=4ol_odag">Чоловічий розділ</a><div class="alt">Чоловічий одяг та взуття</div></li>
    54.         <li><a href="/katalog.php?page=wom_odag">Жіночий розділ</a><div class="alt">Жіночий одяг та взуття</div></li>
    55.         <li><a href="/katalog.php?page=child_odag">Дитячий розділ</a><div class="alt">Дитячий одяг та взуття</div></li>
    56.         <li>|</li>
    57.         <li><a href="/katalog.php?page=kanctovaru">Канцтовари</a><div class="alt">Канцтовари, шкільне приладдя</div></li>
    58.         <li><a href="/katalog.php?page=bags_belts">Аксесуари</a><div class="alt">Сумки, годинники, пояси, біжутерія</div></li>
    59.         <li><a href="/katalog.php?page=kosmetic">Косметика</a><div class="alt">Косметика, парфуми</div></li>
    60.         <li><a href="/katalog.php?page=underwear">Білизна</a><div class="alt">Спідня білизна</div></li>
    61.            
    62.     </div>
    63. </div>
    64.     <div id="otstyp-a"></div> <!-- height:100px -->
    65.     <div class="wraper">
    66.        
    67.         <?php include ('katalog/'.$page.'.php');?>
    68.         <div class="clearfix"></div><!-- /clearfix -->
    69.     </div>  
    70.         <?php include ('parts/footer.php');?>
    71.  
    72.        
    73. </body>
    74. </html>
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Вы попутали успешный результат запроса с успешной выборкой строки.
    --- Добавлено ---
    Не надо так делать, чтобы «не делать мозги» себе и окружающим:
    PHP:
    1. $row = $row->
    --- Добавлено ---
    ...хотя у fetch_assoc и присутствует or die.
     
  7. kentkent7

    kentkent7 Новичок

    С нами с:
    30 июн 2017
    Сообщения:
    72
    Симпатии:
    5
    Код (Text):
    1. $dbh = new PDO('mysql: host=127.0.0.1; dbname=root', 'root', '');
    2.  
    3. function userVerify($login, $dbh){
    4.      $sth = $dbh->prepare('SELECT `pass` FROM `users` WHERE `admin`= :login');
    5.      if($sth->execute([':login' => $login])){
    6.            return $sth->fetchAll()[0]['pass'];
    7.      } else {
    8.            return false;
    9.      }
    10.  
    11. }
    12.  
    13. // Для DB
    14.  
    15. password_hash(1234, PASSWORD_DEFAULT);
    16.  
    17. // Проверка, легкая, но лучше чем была
    18.  
    19. if(password_verify(1234, userVerify('ololo', $dbh))){
    20.       $_SESSION['status'] = 'admin';
    21. } else {
    22.       die('Пошел от сюда Либовский');
    23. }
    24.  
    25. // Для страниц
    26.  
    27. if($_SESSION['status'] !== 'admin'){
    28.        die('Пошел от сюда Либовский');
    29. }
    Это не грандиозная проверка, но с твоими задачами справится.
    Тебе даже база данных тут не нужна.
     
  8. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    225
    Симпатии:
    17
    могу попробовать исправить скрипт, если он ещё не исправлен, подключившись к вашему пк через тимвьюер
     
  9. bysja

    bysja Новичок

    С нами с:
    7 июн 2018
    Сообщения:
    11
    Симпатии:
    0
    спасибо, попробую. P. S. а куда код вставить?
     
    #9 bysja, 17 июн 2018
    Последнее редактирование: 17 июн 2018
  10. Amirjopn

    Amirjopn Новичок

    С нами с:
    19 июн 2018
    Сообщения:
    5
    Симпатии:
    0
    "select id, admin FROM user WHERE pass = '$_POST['tel']"
    попробуй вот этот запрос
     
  11. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    И здесь в конце что то странное с ' ты это специально делаешь?)
     
  12. Amirjopn

    Amirjopn Новичок

    С нами с:
    19 июн 2018
    Сообщения:
    5
    Симпатии:
    0
    я не понял васб
    возможно вы имеете в виду POST['tel'] для таблицы pass
     
  13. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Нет я имею ввиду кавычки.
     
  14. bysja

    bysja Новичок

    С нами с:
    7 июн 2018
    Сообщения:
    11
    Симпатии:
    0
    нет, всё пробовал. не помогает ничего...