За последние 24 часа нас посетили 20277 программистов и 1080 роботов. Сейчас ищут 803 программиста ...

В чем проблема? Все время выводит Server Error #2

Тема в разделе "Решения, алгоритмы", создана пользователем Finn, 21 май 2019.

  1. Finn

    Finn Новичок

    С нами с:
    21 май 2019
    Сообщения:
    5
    Симпатии:
    0
    <?php
    $db = mysqli_connect("localhost" , "root" , "" , "reg") or die ("DataBase Error");
    ?>
    <!DOCTYPE html>
    <html lang="ru">
    <head>
    <title>Instagram</title>
    <meta charset="utf-8">
    <style type="text/css">
    </style>
    </head>
    <body>
    <?php
    if(!isset($_POST['send'])){
    ?>
    <div class="container">
    <form action="register.php" method="post">
    <input type="text" name="login" placeholder="Put ur login">
    <input type="password" name="password" placeholder="Put ur password">
    <input type="submit" name="send" value="Registration">
    </form>
    <?php
    }
    if (isset($_POST['send']) && !empty($_POST['login']) && !empty($_POST['password'])){
    $queryL = "SELECT id FROM reg WHERE login = '".$_POST['login']."'";
    $resL = mysqli_query($db , $queryL) or die ("Server Error #1");
    if(mysqli_num_rows($resL)>0){
    echo "This login already used!";
    }
    else{
    $query = "INSERT INTO reg (login, password) VALUES ('".$_POST['login']."', sha1('".$_POST['password']."'))";
    }
    mysqli_query($db, $query) or die ("Server Error #2");
    echo("Reg is success!");
    }
    else{
    echo "Reg is fail, try again!";
    }
    mysqli_close($db);
    ?>
    </div>
    </body>
    </html>
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    Mysql думаю не в курсе функции sha1
     
  3. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    нет, там дело в условии, я же вроде отвечал уже:
    PHP:
    1. <?php
    2. $db = mysqli_connect("localhost" , "root" , "" , "reg") or die ("DataBase Error");
    3. ?>
    4. <!DOCTYPE html>
    5. <html lang="ru">
    6. <head>
    7. <title>Instagram</title>
    8. <meta charset="utf-8">
    9. <style type="text/css">
    10. </style>
    11. </head>
    12. <body>
    13. <?php
    14. if(!isset($_POST['send'])){
    15. ?>
    16. <div class="container">
    17. <form action="register.php" method="post">
    18. <input type="text" name="login" placeholder="Put ur login">
    19. <input type="password" name="password" placeholder="Put ur password">
    20. <input type="submit" name="send" value="Registration">
    21. </form>
    22. <?php
    23. }
    24. if (isset($_POST['send']) && !empty($_POST['login']) && !empty($_POST['password'])){
    25.    $queryL = "SELECT id FROM reg WHERE login = '".$_POST['login']."'";
    26.    $resL = mysqli_query($db , $queryL) or die ("Server Error #1");
    27.    if(mysqli_num_rows($resL)>0){
    28.     echo "This login already used!";
    29.    }
    30.    else{
    31.       $query = "INSERT INTO reg (login, password) VALUES ('".$_POST['login']."', sha1('".$_POST['password']."'))";
    32.      mysqli_query($db, $query) or die ("Server Error #2");
    33.      echo("Reg is success!");
    34.    }
    35. }
    36. else{
    37.     echo "Reg is fail, try again!";
    38. }
    39. ?>
    40. </div>
    41. </body>
    42. </html>
    предполагаю что sha1 существует из за этой ссылки
    https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_sha1

    если нет то надо вынести отдельно
     
  4. Finn

    Finn Новичок

    С нами с:
    21 май 2019
    Сообщения:
    5
    Симпатии:
    0
    Не, ну я вот даже убрал sha1 полностью, все равно так же проблема...
     
  5. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @Finn, замените or die() более информативным сообщением об ошибке.
    Например: mysqli_error_list()
     
  6. Finn

    Finn Новичок

    С нами с:
    21 май 2019
    Сообщения:
    5
    Симпатии:
    0
    Благодарю, но я не думаю, что ошибка в этом... Она просто выводит ту строчку, где сказано: Server Error #2
    --- Добавлено ---
    Убрал SHA1 все равно не работает...
     
  7. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    перед запросом сделайте echo $query;
    и посмотрите что там за запрос - нам покажите
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Вы перенесли
    Код (Text):
    1. mysqli_query($db, $query) or die ("Server Error #2");
    2. echo("Reg is success!");
    в блок с $query=...?

    И про SQL-инъекции почитайте.
    --- Добавлено ---
    И нормально разделите обработку GET- и POST-запросов, заканчивайте обработку POST-запроса редиректом, запросы к БД делайте до начала вывода контента. В таком виде делать предварительный SELECT особого смысла нет. Делайте сразу INSERT и см. на результат (если будет ошибка дублирующегося ключа, значит занято).
    --- Добавлено ---
    P.S. Какого... вы запостили ЭТО в данном разделе. В разделе для новичков самое место.