Développement n...LOGIN

Développement natif PHP de la fonction de connexion backend pour le site d'actualités

Nos cours précédents vous ont présenté toutes les préparations avant de créer la fonction de connexion, d'importer des modèles et de créer des bases de données. Les cours précédents n'ont pas complété ces préparations, la prochaine étape consiste donc pour nous à commencer à créer la fonction de connexion !

Nous devons d'abord créer un fichier login.php. Ce fichier peut être utilisé pour rédiger le jugement et la vérification de la page de connexion. Vous pouvez également écrire ensemble la partie html de la connexion et le fichier php du jugement de vérification de connexion. parce que nous savons tous ce qu’il y a dans le fichier php. Vous pouvez écrire du code HTML ! Mais nous recommandons quand même de les écrire séparément !

Après avoir créé le fichier login.php, la première chose à faire est de se connecter à la base de données, car les vérifications ultérieures doivent être comparées aux données !

Je tiens à préciser ici que si votre page de connexion a un code de vérification, alors session_start() doit être activé au début de chaque page ; sinon, le code de vérification ne peut pas être vérifié ici, donc. J'ai activé session_start ();

Le code est le suivant :

<?php
session_start();
// 连接mysql数据库
$link = mysqli_connect('localhost', 'root', 'root');
if (!$link) {
    echo "connect mysql error!";
    exit();
}
// 选中数据库 news为数据库的名字
$db_selected = mysqli_select_db($link, 'news');
if (!$db_selected) {
    echo "<br>selected db error!";
    exit();
}
// 设置mysql字符集 为 utf8
$link->query("set names utf8");

L'étape suivante consiste à récupérer les données transmises par le formulaire, car nous devons obtenir le nom d'utilisateur et le mot de passe saisis par l'utilisateur dans le formulaire, puis comparez-le avec la base de données. Voyez s'ils sont exactement les mêmes !

<?php
$username = $_POST['username'];//获取用户名
$password = $_POST['password'];//获取密码
$code = $_POST['code'];

Quant à savoir s'il faut transmettre des données par courrier ou par get, cela dépend de l'attribut de méthode dans votre formulaire. Nous avons un article ici !

Les données ont été obtenues, elles doivent ensuite être vérifiées pour voir si les données saisies par l'utilisateur sont complètement cohérentes avec les données de la base de données. Ce n'est qu'ainsi que l'on peut juger si l'utilisateur peut se connecter et utiliser. Instructions SQL à interroger. Le code est le suivant :

<?php
if(!empty($_POST)){
    // 查询数据库中是否存在用户信息
    $sql = "select * from user where username = '{$username}' and password = '{$password}'";
    $result = mysqli_query($link,$sql);
    $user = mysqli_fetch_array($result,MYSQL_ASSOC);}

Requête Après avoir obtenu les données, comparez les deux ensembles de données :

if($user){
    header("Location: index.php");
}else{
    echo "<script>alert('账户或者密码错误!重新填写')</script>";
}

Jusqu'à présent, nous avons vérifié le nom d'utilisateur et le mot de passe, nous avons donc le code de vérification, donc nous devons également vérifier le code de vérification. Ici, j'ai utilisé une catégorie de code de vérification

1738.png

code.zip

est également partagé avec tout le monde ici !

Ensuite, nous devons vérifier le code de vérification. Le code est le suivant :

if(($_SESSION['authcode']) !== ($code)){               //验证码作对比,验证码页面跟输入的验证码对比
    echo "<script>alert('验证码错误!重新填写')</script>";

Explication : $_SESSION['authcode'] voici le code de vérification enregistré dans la classe de code de vérification du code. économie, les résultats sont unanimes et adoptés !

OK ! Notre fonction de connexion est maintenant terminée !

section suivante
<?php session_start(); // 连接mysql数据库 $link = mysqli_connect('localhost', 'root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 选中数据库 news为数据库的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 设置mysql字符集 为 utf8 $link->query("set names utf8"); if(!empty($_POST)){ $username = $_POST['username'];//获取用户名 $password = $_POST['password'];//获取密码 $code = $_POST['code']; // 查询数据库中是否存在用户信息 $sql = "select * from user where username = '{$username}' and password = '{$password}'"; $result = mysqli_query($link,$sql); $user = mysqli_fetch_array($result,MYSQL_ASSOC); if(($_SESSION['authcode']) !== ($code)){ //验证码作对比,验证码页面跟输入的验证码对比 echo "<script>alert('验证码错误!重新填写')</script>"; }elseif($user){ header("Location: index.php"); }else{ echo "<script>alert('账户或者密码错误!重新填写')</script>"; }
soumettreRéinitialiser le code
chapitredidacticiel