если(isset($_POST['логин']))

Извините за мой английский, я французский студент. Я бы попытался выполнить вход в 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, потому что имя = логин правильно, кроме моего " if(isset($_POST['login'])) " тоже ..

Пожалуйста, помогите мне быстро! Задайте мне больше вопросов, если вам нужно


person Lucas Martin    schedule 13.03.2019    source источник
comment
I would try to do a PHP login and it doesn't work какой результат вы получаете?   -  person kuh-chan    schedule 13.03.2019
comment
кстати - НЕ используйте extract на $_POST   -  person kuh-chan    schedule 13.03.2019
comment
Я не получаю выход.   -  person Lucas Martin    schedule 13.03.2019
comment
И я следил за ютубером, у которого был такой же код, но он работал, и он использовал экстракт ($_POST). Должен ли я действительно изменить это?   -  person Lucas Martin    schedule 13.03.2019
comment
в журнале ошибок есть сообщения?   -  person kuh-chan    schedule 13.03.2019
comment
нет, в журнале ошибок нет сообщения   -  person Lucas Martin    schedule 13.03.2019
comment
Нет в Sublime Text и нет на странице сайта   -  person Lucas Martin    schedule 13.03.2019
comment
Ставлю эхо и появляется только эхо Marche pas   -  person Lucas Martin    schedule 13.03.2019


Ответы (1)


<form>
          <h2>Connexion</h2>

Я думаю, вы забыли method="post" action="login.php" в определении формы.

И вы не должны использовать extract для данных, которые вы не можете контролировать. Если в $_POST есть какие-то данные, которых вы не ждете, они могут переопределить ваши уже определенные переменные. Простой пример:

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

$success = false;

extract($_POST);
var_dump($success); // true
person kuh-chan    schedule 13.03.2019
comment
Ого да это оно! Я поставил его для входа, но я забыл его для входа в систему. Спасибо большое, я немного туплю ^^' - person Lucas Martin; 13.03.2019
comment
не волнуйся. Я не знаю, как часто я часами искал такие ошибки. - person kuh-chan; 13.03.2019