对不起,我的英语语言,我是一名法国学生。 我会尝试进行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']))” ..
请迅速帮助我! 如果需要,请问我更多问题
答案 0 :(得分:0)
<form>
<h2>Connexion</h2>
我认为您忘记了表单定义中的method="post" action="login.php"
。
并且您不应将extract
用于无法控制的数据。如果$_POST
中有一些您不等待的数据,则可以覆盖已经定义的变量。一个简单的例子:
$_POST = [
'success' => true
];
$success = false;
extract($_POST);
var_dump($success); // true