如果(isset($ _ POST [ '登录']))

问题描述 投票:0回答:1

抱歉我的英语,我是一名法国学生。我会尝试做一个PHP登录,它不起作用..登录工作完美,我使用相同的代码,所以这很奇怪。

让我看看我的login.php:

    <?php

    if(isset($_POST['login'])) {

        extract($_POST);

        echo "Connexion réussie";

        if(!empty($lpassword) && !empty($lpseudo)) {

            $q = $db->prepare("SELECT * FROM users WHERE pseudo = :pseudo");
            $q->execute(['pseudo' => $lpseudo]);
            $result = $q->fetch();

            if($result == true) {
                $hashpassword = $result['password'];
                if(password_verify($lpassword, $hashpassword)) {
                    echo "Le mdp est bon, connexion en cours";




                } else {
                    echo "Le mot de passe est incorrect";
                }




            } else {
                echo "Le compte portant l'email " . $lmail . "n'existe pas";
            }

        } else {
            echo "Les champs ne sont pas remplis !";
        }

    } else {
        echo "Marche pas";
    }


?>

和我的页面形式:

<?php session_start(); ?>
<!DOCTYPE html>
<html>

<meta charset="utf-8">
<link rel="stylesheet" href="connexion_style.css" />

<title>To-Ornament - Connexion / Inscription</title>

<body>

    <?php 

    include 'includes/database.php';
    global $db;

    ?>

    <section>



        <form method="post" action="connexion.php">
            <h2>Inscription</h2>

            <label for="pseudo">Pseudo</label> <br>
            <input type="text" name="pseudo" id="pseudo" size="50" maxlength="20" />
            <br>
            <label for="pass">Mot de passe</label> <br>
            <input type="password" name="password" id="password" size="50"/>
            <br>
            <label for="conf_pass">Confirmation du mot de passe</label> <br>
            <input type="password" name="cpassword" id="cpassword" size="50"/>
            <br>
            <label for="email">Adresse mail</label> <br>
            <input type="email" name="email" id="email" size="50"/>
            <br> <br>
            <a href=""><input class="Inscription" type="submit" value="S'inscrire" name="formsend" id="formsend"></a>
        </form>

    <?php include 'includes/signin.php'; ?>

        <p id="barre"></p>

        <form>
          <h2>Connexion</h2>

          <label for="pseudo">Pseudo</label> <br>
            <input type="text" name="lpseudo" id="lpseudo" maxlength="20" size="50"/>
            <br>
          <label for="pass">Mot de passe</label> <br>
          <input type="password" name="lpassword" id="lpassword" size="50"/>
           <br> <br>
          <a href=""><input class="Connexion" type="submit" name="login" value="Connexion" id="login"></a>
        </form>

    <?php include 'includes/login.php'; ?>

    </section>

</body>

</html>

我不明白如何使用signin.php但不能使用login.php,因为name = login是正确的dans我的“if(isset($ _ POST ['login']))”

请快点帮我!如果您需要,请向我提出更多问题

php login isset
1个回答
0
投票
<form>
          <h2>Connexion</h2>

我想你忘记了表格定义中的method="post" action="login.php"

而且你不应该使用extract来获取你无法控制的数据。如果$_POST中有一些您没有等待的数据,它可以覆盖您已经定义的变量。一个简单的例子:

$_POST = [
    'success' => true    
];

$success = false;

extract($_POST);
var_dump($success); // true
© www.soinside.com 2019 - 2024. All rights reserved.