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 :

[PHP-JS] Probleme sur connexion


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Points : 80
    Points
    80
    Par défaut [PHP-JS] Probleme sur connexion
    Bonjour,
    j'ai un petit site web sur lequel on doit se connecter avec un login et un pass
    Avec javascript je test si les champs sont bien remplis si ce n'est pas le cas je balance une alerte. Mais si javascript est desactivé et que l'utilisateur ne renre rien dans ces champs alors il accede directement a la page "menu admin". Je ne comprend pas trop je teste pourtant en php si les champs sont ides mais cela n'a pas l'air de marcher.
    Voici le code :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    //Démarrage de la session
    session_start();
    if ($_POST['pseudo'] = "") 
    {
    	header("location: acceuil_connexion.php");
    }
    //Si la variable $_SESSION['logged'] n'existe pas, on la créée.
    if (!isset($_SESSION['logged'])) $_SESSION['logged'] = false;
    //On oublie pas d'inclure le fichier contenant les identifiants mysql.
    require("config.inc.php");
    		//Connexion à mysql.
      	 	mysql_connect($host,$username,$password);
      	 	mysql_select_db($bdd_name);
    		//La requête qui compte le nombre de pseudos
       		$sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$_POST['pseudo']."'");
    		//La on regarde que le nombre est différent que zéro
           	if (mysql_num_rows($sql)> 0)
       		{
          			//Sélection des informations.
          			$sql_info = mysql_query("SELECT id,pseudo, mot_passe, Admin FROM membres WHERE pseudo='".$_POST['pseudo']."'");
         		 	$donnees_info = mysql_fetch_array($sql_info);
    				//Si le mot de passe est le même.
          			if ($donnees_info['mot_passe'] == $_POST['mot_passe'])
          			{
    						//On modifie la variable qui nous indique que le membre est connecté.
                					$_SESSION['logged'] = true;
    						//On créé les variables contenant des informations sur le membre.
                					$_SESSION['id'] = $donnees_info['id'];
                					$_SESSION['pseudo'] = $donnees_info['pseudo'];
    								$_SESSION['Admin'] = $donnees_info['Admin'];
    								mysql_close();
    						if($_SESSION['Admin'] == 0)
    						{
    							header("location: admin_acceuil.php");
    						}
    						else
    						{
                				header("location: membres_acceuil.php");
    						}
    				}
          			else
        	  		{
    					$message ="Veuillez entrer un mot de passe valide";
             			header("location: acceuil_connexion.php?Message=$message");
          			}
       		}
       		else
       		{
          			$message ="Veuillez entrer un pseudo valide";
    				header("location: acceuil_connexion.php?Message=$message");
       		}
    ?>

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    J'ai pas trop regardé en détails car il faudrait que tu nous montres aussi ce que tu as dans ta base. Ou au moins faire un test pour savoir ce que contient donnees_infos quand tu ne mets ni login ni mot de passe.
    ceci dit, quelques remarques:

    1 - Celà ne sert à rien de vérifier le nombre d'utilisateurs qui ont ce pseudo. A la limite c'est intéressant au moment ou quelqu'un crée un compte pour ne pas qu'il soit en double.

    2 - Ensuite, Faut que tu fasses des tests pour savoir si ta requete n'a pas d'erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql_info = mysql_query("SELECT id,pseudo, mot_passe, Admin FROM membres WHERE pseudo='".$_POST['pseudo']."'");
    if ($sql_info){
    $donnees_info = mysql_fetch_array($sql_info);}
    C'est une habitude à prendre. De même après un select tu peux libérer la mémoire en faisant un mysql_free_result.

    3 - Enfin, tester la validité des champs en javascript est insuffisant. En effet, il est facile comme tu l'as dit, de contourner ceci en désactivant le js ou en passant les variables en dehors de ton formulaire. C'est pour celà qu'en php tu pourrais faire un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['pseudo'])
    pour tester que ta variable exsite et peut être un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (strlen($_POST['pseudo']>0) )
    Pour voir si ta variable n'est pas vide.

    Voila pour le moment.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Points : 80
    Points
    80
    Par défaut
    j'ai "nettoyé" mon code et voici ce que cela donne :
    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
    40
    41
    42
    43
    44
    45
    46
    <?php
    //Démarrage de la session
    session_start();
    if (isset($_POST['pseudo']))
    {
    	header("location: acceuil_connexion.php");
    }
    if (strlen($_POST['pseudo']>0) )
    {
    	header("location: acceuil_connexion.php");
    }
    //Si la variable $_SESSION['logged'] n'existe pas, on la créée.
    if (!isset($_SESSION['logged'])) $_SESSION['logged'] = false;
    //On oublie pas d'inclure le fichier contenant les identifiants mysql.
    require("config.inc.php");
    //Connexion à mysql.
    mysql_connect($host,$username,$password);
    mysql_select_db($bdd_name);
    //Sélection des informations.
    $sql_info = mysql_query("SELECT id,pseudo, mot_passe, Admin FROM membres WHERE pseudo='".$_POST['pseudo']."'");
    $donnees_info = mysql_fetch_array($sql_info);
    //Si le mot de passe est le même.
    if ($donnees_info['mot_passe'] == $_POST['mot_passe'])
    {
    	//On modifie la variable qui nous indique que le membre est connecté.
        $_SESSION['logged'] = true;
    	//On créé les variables contenant des informations sur le membre.
        $_SESSION['id'] = $donnees_info['id'];
        $_SESSION['pseudo'] = $donnees_info['pseudo'];
    	$_SESSION['Admin'] = $donnees_info['Admin'];
    	mysql_close();
    	if($_SESSION['Admin'] == 0)
    	{
    		header("location: admin_acceuil.php");
    	}
    	else
    	{
               header("location: membres_acceuil.php");
    	}
    }
    else
    {
    	$message ="Veuillez entrer un mot de passe valide";
        header("location: acceuil_connexion.php?Message=$message");
    }
    ?>
    Le probleme c'est que meme en ne rentrant rien dans les champs du formulaire je ne suis toujours pas redirigé vers la page de connexion.
    Je n'y comprend rien normalement avec les tests du debut cela devrait etre pourtant bon non?

  4. #4
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    tu as quoi comme redirection, erreur, etc ??

    et stp tu pourrais renommer tes pages avec accueil, desole, mais ca me faisait mal aux yeux

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Points : 80
    Points
    80
    Par défaut
    pas d'erreur je suis juste redirigé vers la page admin_acceuil.php

  6. #6
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    donc ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	if($_SESSION['Admin'] == 0)
    marche.

    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $donnees_info['Admin'];
    renvoie 0.

    tu as verifie ca ??

Discussions similaires

  1. [PHP-JS] Probleme sur la validation w3c Strict
    Par Magicdemon dans le forum Langage
    Réponses: 4
    Dernier message: 05/09/2008, 16h06
  2. PHP-MySQL : probleme de connexion
    Par rockingstone dans le forum Outils
    Réponses: 9
    Dernier message: 03/07/2006, 13h33
  3. [Framework] [PHP.MVC] Probleme de forward sur .tpl
    Par the_edge dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/03/2006, 15h23
  4. [ODBC] Probleme sur un SELECTED de SELECT avec PHP
    Par G.D.O dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 27/03/2006, 15h44
  5. Problème de connexion sur tomcat
    Par asetti dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 29/10/2005, 09h38

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