Authentification PHP

Sephirus Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   -  
avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   -
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. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  2. Sephirus Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   3
     
    Merci !!! Je test çà de suite !
    0
  3. Sephirus Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   3
     
    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
  4. graffx Messages postés 120 Date d'inscription   Statut Contributeur Dernière intervention   2 031
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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