probleme de login

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de login

par Nigdown » 07 août 2005, 18:04

Merci de votre aide

par albat » 07 août 2005, 14:38

Tu risques d'avoir des erreurs causées par le fait que utilises des lettres capitales
dans les noms de tes champs et de tes variables (Pseudo au lieu de pseudo).

Passe tout en bas de casse (minuscules), tu supprimeras ces risques d'erreurs... ;)

par Nigdown » 07 août 2005, 13:34

Voiçi a présent mon code.
Seulement il dois manqué une partie pour verifier le login et mot de pass a présent...
<?php
require("Config.php");
/* Récupération des données du formulaire d'identification: */
$pseudo = isset($_POST['pseudo']) ? $_POST['pseudo'] : "";
$password = isset($_POST['password']) ? $_POST['password'] : "";

// Connection a la base de donnée.
$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link)

{
    echo "Connexion impossible à la base de données <b>". $sql_bdd ."</b> sur le serveur <b>". $sql_server ."</b><br>".
    "Vérifiez les paramètres du fichier config.php";
    exit;
}

//vérification
$sql = "SELECT Password FROM membre WHERE Pseudo='". $Pseudo."'";
$requete=mysql_db_query($sql_bdd,$sql,$db_link) or die(mysql_error());
Pour l érreur:

Code : Tout sélectionner

Notice: Undefined variable: Pseudo in c:\documents and settings\nigdown\mes documents\gallantaria\site générale\teste\membre\identification.php on line 18
Tjs la même :s

par albat » 07 août 2005, 13:23

$sql = "select Pseudo, Password from membre where Pseudo='". $Pseudo ."' and Password='". $Password ."'";
1. Quelle est l'utilité d'inclure dans le SELECT un champ dont tu as déjà la valeur ?
2. Pour des raisons de sécurité, il est préférable de procéder en 2 temps pour valider le couple login/password.
Donc...
$sql = "SELECT Password FROM membre WHERE Pseudo='". $Pseudo."'";

par Cyrano » 07 août 2005, 13:16

je pense que y a pas besoin de plus..
Je crois bien que si: quel est le nouveau message d'erreur ?

par Nigdown » 07 août 2005, 12:33

Merci a présent c est plus a la ligne 9 mais 18.. surement avec l ajoute des autre ligne :P
$sql = "select Pseudo,Password from membre where Pseudo='". $Pseudo ."' and Password='". $Password ."'";
Voilà la ligne d érreur.

Voiçi ma table Mysql

Code : Tout sélectionner

CREATE TABLE membre ( id_membre int(10), idnew varchar(20), Pseudo varchar(20), Email varchar(50), Password varchar(32), Password_confirm varchar(32), jj varchar(10), mm varchar(10), aaaa varchar(10), ICQ varchar(50), AIM varchar(50), MSN varchar(50), YIM varchar(50), WEBSITE varchar(200), LOCATION varchar(200), INTERESTS varchar(150), SIGNATURE varchar(255), INSCRIT varchar(20) )
et si vous le voulez aussi mon formulaire de Login.
<table width="32%" border="0" align="center">
  <tr>
    <td align="center" valign="top"><form action="identification.php" method='post'>
      <table align="center" border="0">
        <tr>
          <td>Login :</td>
          <td><input type="text" name="Pseudo" maxlength="250">
          </td>
        </tr>
        <tr>
          <td>Password</td>
          <td><input type="Password"name="Password" maxlength="10">
          </td>
        </tr>
        <tr>
          <td colspan="2" align="center"><input name="submit" type="submit" value="Identification">
          </td>
        </tr>
      </table>
    Enregistrer vous

    </form></td>
  </tr>
</table>


je pense que y a pas besoin de plus..

par Cyrano » 07 août 2005, 12:04

lol, comme tu vois, albat confirme quelques corrections que j'avais faites aussi : pas de "@" en préfixe d'une fonction, et une concaténation correctement faite entre chaînes de caractères et varibles PHP :D

par albat » 07 août 2005, 12:02

Cyrano, pousse-toi. C'est moi qui réponds au monsieur... :evil:

Mais pourquoi il tape ses réponses toujours plus vite que moi ? C'est frustrant à la fin... :langue:

par albat » 07 août 2005, 12:00

Dans un premier temps, je te propose déjà quelques retouches...
require("config.php"); // noms de fichiers en bas-de-casse

// Connection a la base de données.
$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);  // vire le @
if (!$db_link)
   { echo "Connexion impossible à la base de données <b>".$sql_bdd."</b> sur le serveur <b>".$sql_server."</b>.<br>"; // sors les variables des chaînes de caractères à afficher
     echo "Vérifiez les paramètres du fichier config.php";
     exit;
   }

//vérification 
$requete = "SELECT password FROM membre WHERE pseudo='".$pseudo."'";
$resultat = mysql_query(requete) or die(mysql_error()); // mysql_query() au lieu de mysql_db_query()
1. Quel est le nom du champ dans ta table MEMBRE : passe ou password ?

2. Pour éviter les failles liées à l'injection SQL, mieux vaut simplifier la requête comme proposée ci-dessus.
Tu testes ensuite si le password trouvé dans la base pour le pseudo saisi correspond bien au password saisi.

par Cyrano » 07 août 2005, 11:59

Ok, je suppose que les variables $pseudo et $password sont sensées provenir d'un formulaire. Le problème c'est que tu ne les récupères nulle part. Il faudrait commencer par là et écrire du code propre aussi :
<?php
require("Config.php");
/* Récupération des données du formulaire d'identification: */
$pseudo = isset($_POST['pseudo']) ? $_POST['pseudo'] : "";
$password = isset($_POST['password']) ? $_POST['password'] : "";

// Connection a la base de donnée.
$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link)

{
    echo "Connexion impossible à la base de données <b>". $sql_bdd ."</b> sur le serveur <b>". $sql_server ."</b><br>".
    "Vérifiez les paramètres du fichier config.php"; 
    exit;
}

//vérification
$sql = "select pseudo,password from membre where Pseudo='". $pseudo ."' and passe='". $password ."'";
$requete=mysql_db_query($sql_bdd,$sql,$db_link) or die(mysql_error());

par Nigdown » 07 août 2005, 11:51

Oui biensure.
<?
require("Config.php");

// Copnnection a la base de donnée.
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier config.php"; exit;}

//vérification 
$requete=mysql_db_query($sql_bdd,"select pseudo,password from membre where Pseudo=\"$pseudo\" and passe=\"$password\"",$db_link) or die(mysql_error());

par Cyrano » 07 août 2005, 11:38

Ok, et le code qui correspond à ça, on peut le voir aussi pour détecter où est l'erreur ? (les lignes mentionnées + les lignes qui précèdent)

probleme de login

par Nigdown » 07 août 2005, 11:37

Bonjour
Voilà je fais un espace membre pour mes visiteur seulement voilà...
J ai des méssages d érreur lorsque j essaie de me loger...

Les voici

Code : Tout sélectionner

Notice: Undefined variable: pseudo in c:\documents and settings\nigdown\mes documents\gallantaria\site générale\teste\membre\identification.php on line 9 Notice: Undefined variable: password in c:\documents and settings\nigdown\mes documents\gallantaria\site générale\teste\membre\identification.php on line 9