Authentification PHP

Bonjour,

Je voudrai faire un script d'authentification.

Le tout pas compliqué car par de BDD il y a qu'un seul USER (admin).

Ma page s'appelle admin.php

Ce que je voudrai faire c'est un page dynamique, si c'est OK il m'affiche la page et son contenu d'administration, si c'est pas bon, qu'il mette un mesasge d'erreur (déjà fait avec le JS) et qu'il renvoie sur la page de login.

Faut-il faire deux pages ou je peux faire qu'une seule page dynamique ?

Voici mon code :

<div id='login'>

<form action="admin.php" method="post">
<label>Login:</label><br />
<input type="text" size="15" name="login"><br />

<br />

<label>Mot de passe:</label><br />
<input type="password" size="15" name="mdp"><br />
<br />

<input type="submit" value="log" id="login">

</form>

</div>

?>

<?php

extract ($_POST);
if ($login!='admin')

echo "

<script language=javascript>
alert('Bad Login')

</script>";

else if ($mdp!='adminelan')

echo "

<script language=javascript>
alert('Bad Password')

</script>";

?>

Je vous remercie d'avance ;)

5 réponses

  1. Mon code fonctionne correctement, je l'ai même testé avant.
    Voici le problème :
    Notice: Undefined index: connected in C:\wamp\www\ELAN\admin.php on line 39
    C'est assez bien expliqué : la variable $_SESSION['connected'] n'est pas définie.
    Je pense que ça pourrait provenir du <?php session_start(); ?> qui tu n'aurais pas mis.

    J'ai oublié : tu ne peux rien mettre avant mon script parce que la fonction header qui fait une redirection ne fonctionnera plus. Mets donc tout le code de ta page si l'administrateur est connecté à la place de "Autorisé" (DTD compris) et celui de toute la page avec le formulaire à la place du formulaire que j'ai mis.
    0
    1. Contributeur
      if($_SESSION['user'] === true) { ?>
      $post_user = trim($_POST['user']);
      $post_password = trim($_POST['password']);

      met "user" a la place de "connected", ta fonction trim() n' est pas declarée avant.
      0
      1. Hum problème pour

        Notice: Undefined index: connected in C:\wamp\www\ELAN\admin.php on line 39

        Notice: Undefined index: user in C:\wamp\www\ELAN\admin.php on line 42

        Notice: Undefined index: password in C:\wamp\www\ELAN\admin.php on line 43

        if($_SESSION['connected'] === true) { ?>
        $post_user = trim($_POST['user']);
        $post_password = trim($_POST['password']);

        Je ne vois pas trop ce qu'il faut que je rajoute ...
        0
        1. Merci !!! Je test çà de suite !
          0
          1. Voici un script de base à mettre sur toutes tes pages.
            D'abord, ajoutes cette ligne avant tout caractère (avant le DTD, sans aucun espace avant <?php) :
            <?php session_start(); ?>
            <!DOCTYPE html ...


            Ensuite, dans ton contenu :
            <?php
            $user = 'admin';
            $password = 'adminelan';
            
            if($_SESSION['connected'] === true) { ?>
            Autorisé
            <?php } else {
                $post_user = trim($_POST['user']);
                $post_password = trim($_POST['password']);
                if(empty($post_user) || empty($post_password)) {
                    ?>
            <form method="post" action="">
                <p>
                    <label>Login</label>
                    <input type="text" name="user" />
                </p>
                <p>
                    <label>Password</label>
                    <input type="text" name="password" />
                </p>
                <p>
                    <input type="submit" name="Login" />
                </p>
            </form>
                    <?php
                } else {
                    if($post_user == $user && $post_password == $password) {
                        $_SESSION['connected'] = true;
                        header('Location: '.$_SERVER["REQUEST_URI"]);
                    } else {
                        echo 'Mauvaise combinaison';
                    }
                }
            } ?>
            1