IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Connexion sans login ni pass


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut Connexion sans login ni pass
    Je viens de tester mon script de login, il marche pour les login/mdp corrects et bloque bien les non-corrects.

    Mais par malheur, quand je clique sur bouton de connexion sans avoir rempli le champ login ni mot de passe, calà me connecte...

    Mon form HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <html>
    <head>
    <title>login.html</title>
    </head>
    <body>
    <p><u><h1>Connexion</h1></u></p>
    <FORM action="controlelogin.php" method="post"><br>
    Login :
    <input type = "text" name="login"><br><br>
    Mot de passe :
    <input type = "text" name="mdp"><br><br>
     
    <input type="submit" name="connexion" value="Connexion">
    </form>
    </body>
    </html>
    Mon script PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    //Déclaration des paramètres de connexion
    $serveur="localhost";
    $bd="test1";
    $utilisateur ="root";
    $motdepasse="";
     
    //Connexion au serveur
    $connex = mysql_connect($serveur, $utilisateur, $motdepasse) or die ("erreur de connexion au serveur");
    mysql_select_db($bd) or die ("erreur de connexion à la base de données");
     
    //Requête de récupération nom / mot de passe	
    $req="SELECT nom, pass FROM table1
    	  WHERE nom='". $_POST['login'] ."' AND pass='". $_POST['mdp']."'";
     
    $resultat=mysql_query($req) or die ("erreur ". $req);
    $ligne=mysql_fetch_array($resultat);
     
    	$login = $ligne['nom'];
    	$mdp = $ligne['pass'];
     
    //Test
    if ($login==$_POST['login']&&$mdp==$_POST['mdp'])
    	{
    	session_start();
    	session_register("login");
    	session_register("mot");
     
    	header('location: afficher.php');
    	{echo "Vous êtes bien connecté(e)";}
    	}
    else
    {echo "Login ou mot de passe non valide";}
    ?>
    Mon 2nd script à la connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    session_start();
     
    if(!session_is_registered(login))
     
    	echo "Vous ne pouvez pas accéder à cette page sans autorisation!";
     
    else
    {
    	echo "Vous êtes connecté(e). $login <br>";
    	echo "<a href='logout.php'>Fermer la session</a><br>";
    }
    ?>
     
    <html>
    <head>
      <title>Connexion</title>
    </head>
    </body>
    </html>
    Et mon script de logout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    session_start();
    session_unset();
    session_destroy();
    ?>
     
    <html>
    <head>
      <title>Connexion</title>
    </head>
    Vous êtes déconnecté.
    <a href="login.html">Retour à la page de connexion</a>
    </body>
    </html>
    Je pensais rajouter un argument dans mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if ($login==$_POST['login']&&$mdp==$_POST['mdp'])
    	{
    	session_start();
    	session_register("login");
    	session_register("mot");
     
    	header('location: afficher.php');
    	{echo "Vous êtes bien connecté(e)";}
    	}
    else
    {echo "Login ou mot de passe non valide";}
    ?>
    Du genre "If (&login==' ' or &mdp==' ') {echo "erreur"}
    Mais celà ne marche pas.

    Quelqu'un pourrait-il m'éclairer ?

  2. #2
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    C'est dans ton script php qu'il faut faire une tite modif.

    Remplace le par sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
    //Déclaration des paramètres de connexion
    $serveur="localhost";
    $bd="test1";
    $utilisateur ="root";
    $motdepasse="";
     
    //Connexion au serveur
    $connex = mysql_connect($serveur, $utilisateur, $motdepasse) or die ("erreur de connexion au serveur");
    mysql_select_db($bd) or die ("erreur de connexion à la base de données");
     
    //Requête de récupération nom / mot de passe
    $req="SELECT nom, pass FROM table1
    WHERE nom='". $_POST['login'] ."' AND pass='". $_POST['mdp']."'";
     
    $resultat=mysql_query($req) or die ("erreur ". $req);
    $ligne=mysql_fetch_array($resultat);
     
    $login = $ligne['nom'];
    $mdp = $ligne['pass'];
     
    //Test
    if(isset($_POST['login'])&&isset($_POST['mdp']))
    {
    if ($login==$_POST['login']&&$mdp==$_POST['mdp'])
    {
    session_start();
    session_register("login");
    session_register("mot");
     
    header('location: afficher.php');
    {echo "Vous êtes bien connecté(e)";}
    }
    else
    {echo "Login ou mot de passe non valide";}
    }
    ?>
    Mais faut savoir que tu t'es bien compliqué la vie pour trés peu je trouve

  3. #3
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut
    Malgré le isset, le click sur le bouton de connexion avec les champs vierges m'envoie à la page afficher.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    session_start();
     
    if(!session_is_registered(login))
     
    	echo "Vous ne pouvez pas accéder à cette page sans autorisation!";
     
    else
    {
    	echo "Coucou $login <br>";
    	echo "<a href='logout.php'>Fermer la session</a><br>";
    }
    ?>
     
    <html>
    <head>
      <title>Création d'un Service</title>
    </head>
    <body alink="#000099" bgcolor="#a4ba76" link="#000099"
     text="#5e1d08" vlink="#990099">
     
     
    </body>
    </html>
    Je pense que c'est de là que vient le problème.

  4. #4
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut
    En fait j'ai réussi a contourner le problème, en faisant un test avec un SI si le login est différent ou le mot de passe est différent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
    //Déclaration des paramètres de connexion
    $serveur="localhost";
    $bd="test1";
    $utilisateur ="root";
    $motdepasse="";
     
    //Connexion au serveur
    $connex = mysql_connect($serveur, $utilisateur, $motdepasse) or die ("erreur de connexion au serveur");
    mysql_select_db($bd) or die ("erreur de connexion à la base de données");
     
    //Requête de récupération nom / mot de passe
    $req="SELECT nom, pass FROM table1
    WHERE nom='". $_POST['login'] ."' AND pass='". $_POST['mdp']."'";
     
    $resultat=mysql_query($req) or die ("erreur ". $req);
    $ligne=mysql_fetch_array($resultat);
     
    $login = $ligne['nom'];
    $mdp = $ligne['pass'];
     
    //Test
    if ($login!==$_POST['login']&&$mdp!==$_POST['mdp'])
    {
    session_unset();
    {echo "Login ou mot de passe non valide";}}
    else 
    if ($login!==$_POST['login']&&$mdp!==$_POST['mdp'])
    {
    session_start();}
    {echo "Valide!";}
    ?>

  5. #5
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    Ptite erreur de syntaxe j'avais pas vu mais remplace ton php par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
    //Déclaration des paramètres de connexion
    $serveur="localhost";
    $bd="test1";
    $utilisateur ="root";
    $motdepasse="";
     
    //Connexion au serveur
    $connex = mysql_connect($serveur, $utilisateur, $motdepasse) or die ("erreur de connexion au serveur");
    mysql_select_db($bd) or die ("erreur de connexion à la base de données");
     
    //Requête de récupération nom / mot de passe
    $req="SELECT nom, pass FROM table1
    WHERE nom='". $_POST['login'] ."' AND pass='". $_POST['mdp']."'";
     
    $resultat=mysql_query($req) or die ("erreur ". $req);
    $ligne=mysql_fetch_array($resultat);
     
    $login = $ligne['nom'];
    $mdp = $ligne['pass'];
     
    //Test
    if($_POST['login'] != "" && $_POST['login'] != "")
    {
        if ($login==$_POST['login'] && $mdp==$_POST['mdp'])
        {
            session_start();
            session_register("login");
            session_register("mot");
     
            header("Location: afficher.php");
            echo "Vous êtes bien connecté(e)";
        }else{
            echo "Login ou mot de passe non valide";
        }
    }else{
        echo "Veuillez saisir votre login et mot de passe";
    }
    ?>

  6. #6
    Membre confirmé Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Par défaut
    Oh merci Gaara-Manga, c'est parfait, ça marche bien mieux

  7. #7
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    J'ai vite fait eu ltemps d'optimiser ton script.
    Sa devrait mieux lfaire comme sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
    //Déclaration des paramètres de connexion
    $serveur="localhost";
    $bd="test1";
    $utilisateur ="root";
    $motdepasse="";
     
    //Connexion au serveur
    $connex = mysql_connect($serveur, $utilisateur, $motdepasse) or die ("erreur de connexion au serveur");
    mysql_select_db($bd) or die ("erreur de connexion à la base de données");
     
    //Requête de récupération nom / mot de passe
    $req="SELECT nom, pass FROM table1 WHERE nom='". $_POST['login'] ."' AND pass='". $_POST['mdp']."'";
    $resultat=mysql_query($req) or die ("erreur ". $req);
     
    //Test
    if($_POST['login'] != "" && $_POST['login'] != "")
    {
        if (mysql_num_rows($resultat) > 0)
        {
            session_start();
            session_register("login");
            session_register("mot");
     
            header("Location: afficher.php");
            echo "Vous êtes bien connecté(e)";
        }else{
            echo "Login ou mot de passe non valide";
        }
    }else{
        echo "Veuillez saisir votre login et mot de passe";
    }
    ?>
    Pas besoin de mettre tout les enregistrements dans un tableau juste pour vérifier qu'il y a un enregistrement^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Oracle] Connexion sans mot de passe
    Par HRS dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/04/2014, 14h29
  2. [MySQL] Connexion sans login
    Par anthony78340 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 04/01/2012, 14h21
  3. Connexion sans mot de passe malgré existence de celui-ci
    Par guigz31 dans le forum Administration
    Réponses: 4
    Dernier message: 16/07/2009, 18h05
  4. connexion sans login ni mot de passe
    Par g0up1l dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 31/05/2007, 20h29
  5. récupérer login connexion et mot de passe
    Par zut94 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/01/2006, 15h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo