За последние 24 часа нас посетили 20559 программистов и 1086 роботов. Сейчас ищут 690 программистов ...

Форма регистрации-логина и ее взаимодействие с SQL

Тема в разделе "PHP для новичков", создана пользователем VasVV, 25 июл 2019.

  1. VasVV

    VasVV Новичок

    С нами с:
    25 июл 2019
    Сообщения:
    3
    Симпатии:
    0
    Добрый вечер.
    Сейчас делаю простенький сайт для обучения - http://nativecheck.epizy.com/ и на нем - форму логина-регистрации. Написал скрипт
    PHP:
    1. <?php
    2. $username = $_POST['username'];
    3. $password = $_POST['password'];
    4.  
    5. if ( !empty($username) || !empty($password) ) {
    6.    $host =  'sql303.epizy.com';
    7.    $dbUsername = 'USERNAME';
    8.    $dbPassword = 'PASSWORD';
    9.    $dbname = "epiz_24228201_Logins";
    10.  
    11.    $con = new mysqli($host, $dbUsername, $dbPassword, $dbname);
    12.  
    13.    if (mysqli_connect_error()) {
    14.          die('Connect Error('. mysqli_connect_errno(). ')'. mysqli_connect_error());
    15.    }
    16.    else {
    17.    $SELECT = 'SELECT username From register Where username = ? Limit 1';
    18.    $INSERT = 'INSERT Into register (username, password) values (?, ?)';
    19.  
    20.    $stmt = $con->prepare($SELECT);
    21.    $stmt->bind_param( 's' , $username);
    22.    $stmt->execute();
    23.    $stmt->bind_result($username);
    24.    $stmt->store_result();
    25.    $rnum = $stmt->num_rows;
    26.  
    27.    if ($rnum==0) {
    28.       $stmt->close();
    29.  
    30.       $stmt = $con->prepare($INSERT);
    31.       $stmt->bind_param('ss', $username, $password);
    32.       $stmt->execute();
    33.       echo "New record added";
    34.    }
    35.    else {
    36.       echo "This username has already been taken. Please choose another one";
    37.  
    38.    }
    39.    $stmt->close();
    40.    $con->close();
    41.  
    42.    }
    43. }
    44. else {
    45.      echo "Fill all fields please";
    46.      die();
    47. }
    48. ?>
    Но он не работает, выдавая ошибку:
    Fatal error: Uncaught Error: Call to a member function bind_param() on bool in /home/vol14_5/epizy.com/epiz_24228201/htdocs/action_page.php:21 Stack trace: #0 {main} thrown in /home/vol14_5/epizy.com/epiz_24228201/htdocs/action_page.php on line 21

    Как исправить ошибку и сделать так, чтобы скрипт работал, занося логин-пасс в базу данных?
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    Что-то в запросе не сработало.Проверьте имена маблиц, полей.
     
  3. VasVV

    VasVV Новичок

    С нами с:
    25 июл 2019
    Сообщения:
    3
    Симпатии:
    0
    Проверил, вроде все ок...
     
  4. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    поставь после строки 20
    PHP:
    1. die(var_export($con->error, 1));
    И нарисуй сюда, что выведет
     
    VasVV нравится это.
  5. VasVV

    VasVV Новичок

    С нами с:
    25 июл 2019
    Сообщения:
    3
    Симпатии:
    0
    Table 'epiz_24228201_Logins.register' doesn't exist
    Похоже, понял свою ошибку. Сейчас проверю.
    UPD - все получилось, спасибо большое за помощь!