Я пытаюсь изучить PHP и MySQL, и я хотел создать страницу входа в систему, которая будет проверять информацию в базе данных и позволит пользователю пройти, если информация верна.

У меня есть следующий код PHP:

    if(isset($_POST['submit'])) {
        $username = $_POST['username'];
        $password = $_POST['password'];

        $sql = "SELECT * FROM users WHERE username ='".$username."' AND password='".$password."' LIMIT 1";
        $res = mysqli_query($sql);
        if(mysqli_num_rows($res) == 1 ) {
            echo "You have successfully logged in.";
        } else {
            echo "Invalid login information."; 
        }
    } else {
        echo "Not working.";
    }

В моем основном файле есть 2 включения. Один - это соединение, а другой - это файл php. В том же файле (основном файле) у меня есть форма с 3 полями ввода: имя пользователя, пароль и тип отправки.

Проблема в том, что когда я включаю указанный выше файл php, страница отображается пустой, и я ничего не получаю обратно, даже строку «Не работает». Это почему? Что не так с моим синтаксисом?

ОБНОВЛЕНИЕ:

Мой основной код файла:

<?php

    include 'includes/connection.php';
    include 'includes/login.php';

?>


<html>
<head>
    <title>Login</title>
    <link rel="stylesheet" href="css/login_page.css">
</head>
<body>
    <div class="flex">
        <div class="container">
            <h3>Login to the site...</h3>
            <p>The awesome site we created!</p>
            <form method="post" action="login.php">
                <input type="text" name="username" placeholder="Username">
                <input type="password" name="password" placeholder="Password"><br /><br />
                <input type="submit" name="submit" class="btn-submit" value="Login">
            </form>
        </div>
    </div>
</body>
</html>

Подключение к файлу PHP:

<?php

$server = "localhost";
$user = "Flopet17";
$pass = "1234";
$db = "listing";


$conn = new mysqli($server, $user, $pass);
mysqli_select_db($db);


if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connection succeed";
?> 
0
Florin Pop 3 Ноя 2014 в 20:43

4 ответа

Лучший ответ
<?php

$server = "localhost";
$user = "Flopet17";
$pass = "1234";
$db = "listing";


//$conn = new mysqli($server, $user, $pass);
//mysql_select_db($db);//Invalid with my sql
$conn = new mysqli($server, $user, $pass,$db);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connection succeed";
?> 

Удалить атрибут действия из формы. Действие будет на той же странице. Если вам нужно создать действие на другой странице, тогда в него должно быть включено соединение с базой данных.

В разделе запроса:

 if(isset($_POST['submit'])) {
        $username = $_POST['username'];
        $password = $_POST['password'];

        $sql = "SELECT * FROM users WHERE username ='".$username."' AND password='".$password."' LIMIT 1";
       // $res = mysqli_query($sql);
        $res = $conn->query($sql);
        if($conn->num_rows($res) == 1 ) {
            echo "You have successfully logged in.";
        } else {
            echo "Invalid login information."; 
        }
    } else {
        echo "Not working.";
    }
0
Amit Garg 3 Ноя 2014 в 18:02

Для строки нужна точка с запятой

echo "Invalid login information.";

< EM> Совет

Также обратите внимание на mysqli и подготовить операторы для соединений с базой данных и построить операторы save sql.

1
Barry 3 Ноя 2014 в 18:01

Вы запрашиваете переменную $res, в то время как вы должны запрашивать значение $sql
Измените следующий код на:

$sql = "SELECT * FROM users WHERE username ='".$username."' AND password='".$password."' LIMIT 1";
$res = mysql_query($sql);

Кроме того, у вас отсутствует точка с запятой, как сказал @Barry в своем ответе

0
Ali 3 Ноя 2014 в 17:50

У вас есть отчеты об ошибках? это покажет любые ошибки или уведомления, эхо имени пользователя сообщения даст вам проверку, что форма публикуется нормально

$connect = mysql_pconnect($hostname, $username, $password) or
trigger_error(mysql_error(),E_USER_ERROR);

mysql_select_db($database, $connect;
$query_Recordset1 = "SELECT * FROM users WHERE users.username=$username ORDER BY
user.username LIMIT 1";
//
$Recordset1 = mysql_query($query_Recordset1, $connect) or die();
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$password_check=$row_Recordset1['password'];
if ($password_check==$password){echo"log in ok":}else{ what to do if fail

Это очень небезопасно, однако посмотрите на http: // www .wikihow.com / Create-a-Secure-Login-Script-in-PHP-and-MySQL в качестве примера.

0
dave 3 Ноя 2014 в 18:19