2015-06-27 2 views
0

Я пытаюсь создать простой php-логин, который, если правильно ввести имя пользователя и пароль, появляется сообщение «вошел в систему». Я следил за видео youtube, чтобы сделать это как im довольно новый для php и не знаю точно, что он делает, но я продолжаю получать код ошибки.my ниже. в коде html/php, где происходят ошибки, но я не знаю, к чему это нужно изменить.Как создать регистрационную форму php с помощью mySQL

<?php 

class DatabaseManager 
    { 
     private $servername = "localhost"; 
     private $username = "root"; 
     private $password = ""; 
     private $dbname = "sokodatabase"; 
     public $dbc; 

     function __construct() { 
      $this->dbc = mysqli_connect($this->servername, $this->username, $this->password, $this->dbname); 
     } 

     function __destruct() { 
      mysqli_close($this->dbc); 
     } 
?> 

HTML/PHP код ...

  <?php 
       require_once('../sokodatabase.php'); 

       if(isset($_POST['submit'])){ 
        $username = $_POST['username']; 
        $password = $_POST['password']; 
        $query = "SELECT * FROM Users WHERE username='".$username."' AND password='".$password."'"; 
        $sql = mysqli_query($select) or die(mysql_error()); //<--ERROR 

        if(mysql_num_rows($sql) == 1){//<--ERROR 
         echo "you logged in"; 
         exit(); 
        } 
        else{ 
         echo "incorrect"; 
         exit(); 
        } 
       } 
      ?> 

      <h3>Sign in</h3> 
      <form method="post" action="home.php"> 
      <input type="text" placeholder="Username" class="txtBox" name="username"/></br> 
      <input type="text" placeholder="Password" class="txtBox" name="password"/></br></br>     
      <input type="submit" value="login" class="btn" name="submit"/> 
      </form> 
+0

Вы можете показать нам ошибку? – sitilge

+0

Примечание: Неопределенная переменная: выберите в H: \ webdev3 \ www \ Sokoban \ home.php в строке 46 Предупреждение: mysqli_query() ожидает как минимум 2 параметра, 1 задано в H: \ webdev3 \ www \ Sokoban \ home. php в строке 46 – Phill

ответ

2
$sql = mysqli_query($select) or die(mysql_error()); 
  • Вы не подключения к БД в запросе, который параметр соединения должен быть первым параметром ,

Тогда mysql_error() следует читать как mysqli_error() при передаче соединения db в качестве параметра.

Тогда это mysql_num_rows что другая функция mysql_, которая не смешивается с mysqli_ - он должен добавленный i добавил к нему mysqli_num_rows

Ссылки:

+0

, если я изменю его, чтобы подключиться к этой базе данных следующим образом: mysqli_query ($ manager-> dbc, $ query) или die (mysqli_error()); будет ли это работать? – Phill

+0

@ Дайте ему вихрь ;-) не забудьте также передать соединение db с 'mysqli_error()'. Тем не менее, я действительно сосать с классами. Итак, кто-нибудь может отредактировать этот пост, это вики сообщества. –

+0

@Phill Я не знаю, откуда происходит '$ manager'. Возможно, вы захотите попробовать '$ this-> dbc'. Опять же, классы не мои сильные стороны. Я знаю, что вам понадобится что-то вроде «new DatabaseManager ...» –

Смежные вопросы