Authentification PHP

Fermé
Sephirus Messages postés 95 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 25 avril 2013 - 8 oct. 2009 à 17:32
avion-f16 Messages postés 19240 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 février 2024 - 9 oct. 2009 à 17:12
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 ;)
A voir également:

5 réponses

avion-f16 Messages postés 19240 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 février 2024 4 494
8 oct. 2009 à 17:55
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
Sephirus Messages postés 95 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 25 avril 2013 3
9 oct. 2009 à 10:41
Merci !!! Je test çà de suite !
0
Sephirus Messages postés 95 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 25 avril 2013 3
9 oct. 2009 à 10:50
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
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 973
9 oct. 2009 à 11:26
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19240 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 février 2024 4 494
9 oct. 2009 à 17:12
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