PHP простой SQL поиск для входа - PullRequest
0 голосов
/ 02 июля 2018

У меня были некоторые проблемы с этим кодом, я видел некоторые руководства и пришел к этому. Я только начал php несколько дней назад. Как именно вы выполняете поиск в базе данных, затем сравниваете вводимые пользователем данные с именем пользователя и паролем в базе данных? $ sqlQuery Я оставил его пустым для поиска SQL, и, возможно, кто-то может объяснить, что вы называете символом «->» в цикле?

Мне уже удалось понять и выполнить регистрацию, но учебники никогда не объясняют, что происходит, и просто пишут. Спасибо.

<?php
    include 'db.php';
    include 'info.php';

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

        $sqlQuery = '';
        $result = mysqli_query($connection,$sqlQuery);

        if($result->num_rows > 0){
            session_start();
            echo 'welcome';
        }else{
            echo 'failed';
        }

    }


?>


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Log In</title>
</head>
<body>
    <form action="login.php">
        Username: <input type="text" name="username">
        Username: <input type="password" name="password">

        <input type = "submit" value = " Submit "/><br />
    </form>
</body>
</html>

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Вход в PHP PDO с сеансом - это безопасно

index.php, общее сообщение.php, logout.php, сайт life.php (эта страница для сеанса и требуется ее размещение на других страницах)

База данных: enter image description here

connection.php

<?php 
$dsn = "mysql:host=localhost;dbname=mg";
$username = "root";
$password = "";
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

try{
$conn = new PDO($dsn,$username,$password,$options);
} catch (PDOException $e){
echo "Error!".$e->getMessage();
}

?>

index.php:

<?php
session_start();
if(isset($_SESSION['user'])){
header("location: general message.php");
}
require "connection.php";

if(isset($_POST['login'])){
$user = $_POST['username'];
$pass = md5($_POST['password']);
$messeg = "";

if(empty($user) || empty($pass)) {
    $messeg = "Username/Password con't be empty";
} else {
    $sql = "SELECT username, password FROM users WHERE username=? AND 
  password=? ";
    $query = $conn->prepare($sql);
    $query->execute(array($user,$pass));

    if($query->rowCount() >= 1) {
        $_SESSION['user'] = $user;
        $_SESSION['time_start_login'] = time();
        header("location: general message.php");
    } else {
        $messeg = "Username/Password is wrong";
    }
}
}

?>

Сайт life.php (и я добавлю его на другие страницы по требованию "site life.php")

//The lives of session is one hour 60*60=3600 

<?php

    session_start();

    if(isset($_SESSION['user'])){
    if((time() - $_SESSION['time_start_login']) > 3600){
        header("location: logout.php");
    } else {
        $_SESSION['time_start_login'] = time();
    }
    } else {
    header("location: logout.php");
    }
     ?>

logout.php

<?php
session_start();
session_destroy();
header("location: index.php");
?>

Общее message.php Я поместил это в заголовок (чтобы обновлять каждый час):

// 60*60=3600 one hour

<meta http-equiv="Refresh" content="3600" >

<?php 
require ('site life.php');
?>
0 голосов
/ 02 июля 2018

-> является оператором объекта. так что вы можете получить доступ к атрибуту num_rows из $result.

Это наивный пример (уязвимый для SQL-инъекций), чтобы дать вам представление, он работает.

<?php
    include 'db.php';
    include 'info.php';

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

        $sqlQuery = "SELECT * FROM user WHERE username = '$username' and password = '$password'";
        $result = mysqli_query($connection,$sqlQuery);

        if($result->num_rows > 0){
            session_start();
            echo 'welcome';
        }else{
            echo 'failed';
        }
    }
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Log In</title>
</head>
<body>
    <form action="login.php">
        Username: <input type="text" name="username">
        Username: <input type="password" name="password">

        <input type = "submit" value = " Submit "/><br />
    </form>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...