if(isset($ _ POST ['login']))

时间:2019-03-13 17:41:05

标签: php login isset

对不起,我的英语语言,我是一名法国学生。 我会尝试进行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是正确的,也与我的“ if(isset($ set _ $ [POST_'login']))” ..

请迅速帮助我! 如果需要,请问我更多问题

1 个答案:

答案 0 :(得分:0)

<form>
          <h2>Connexion</h2>

我认为您忘记了表单定义中的method="post" action="login.php"

并且您不应将extract用于无法控制的数据。如果$_POST中有一些您不等待的数据,则可以覆盖已经定义的变量。一个简单的例子:

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

$success = false;

extract($_POST);
var_dump($success); // true