PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » erreur php ??! » 01-02-2012 13:18:49

Je vien de modifier mon cod en utilisant pdo:

<?php
session_start();


$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=bd_principale', 'root', '', $pdo_options);



$loginOK = false;  // cf Astuce



// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) )
{

  extract($_POST);  // je vous renvoie à la doc de cette fonction

  // On va chercher le mot de passe afférent à ce login
  $sql = "SELECT login, nom, prenom, ville, pwd FROM bd_principale WHERE login = '".addslashes($login)."'";
  $req = $bdd->query($sql) or die(mysql_error().'<br />'.$sql);
 
  // On vérifie que l'utilisateur existe bien
  if ($req->rowCount() > 0)
    {
        $data = $req->fetch();
   
        // On vérifie que son mot de passe est correct
    if ($password == $data['pwd'])
        {
              $loginOK = true;
            }
    }
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
  $_SESSION['login'] = $data['login'];
  $_SESSION['nom'] = $data['nom'];
  $_SESSION['prenom'] = $data['prenom'];
  $_SESSION['ville'] = $data['ville'];
}
else {
  echo 'Une erreur est survenue, veuillez réessayer !';
}
?>


Ca fonctionne egalement.
Comment securiser un peu plus ce code ?

Merci

#2 Re : Forum Général PHP » erreur php ??! » 01-02-2012 13:18:49

J'ai modifier mon code et le nouveau me donne ca. Je vais faire le test avec pdo oui je mettrai le resultat ensuite.

Qu'entend tu par :

En outre, évite ce code de feignasse
Code: php

extract($_POST);  // je vous renvoie à la doc de cette fonction


<?php
session_start();

// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');

// on sélectionne la base
mysql_select_db('bd_principale',$db);


$loginOK = false;  // cf Astuce



// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) )
{

  extract($_POST);  // je vous renvoie à la doc de cette fonction

  // On va chercher le mot de passe afférent à ce login
  $sql = "SELECT login, nom, prenom, ville, pwd FROM bd_principale WHERE login = '".addslashes($login)."'";
  $req = mysql_query($sql) or die(mysql_error().'<br />'.$sql);
 
  // On vérifie que l'utilisateur existe bien
  if (mysql_num_rows($req) > 0)
    {
     $data = mysql_fetch_assoc($req);
   
    // On vérifie que son mot de passe est correct
    if ($password == $data['pwd'])
        {
      $loginOK = true;
            }
    }
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
  $_SESSION['login'] = $data['login'];
  $_SESSION['nom'] = $data['nom'];
  $_SESSION['prenom'] = $data['prenom'];
  $_SESSION['ville'] = $data['ville'];
}
else {
  echo 'Une erreur est survenue, veuillez réessayer !';
}
?>


Merci pour ton bout de code en tout cas ca ma bien aider !!!!

#3 Forum Général PHP » erreur php ??! » 01-02-2012 13:18:49

demonjhon
Réponses : 10

j'ai un problème avec ce script alors qu'apparemment il devrait fonctionner :

<?php

// On démarre la session
session_start();
$loginOK = false;  // cf Astuce


// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {

  extract($_POST);  // je vous renvoie à la doc de cette fonction

  // On va chercher le mot de passe afférent à ce login
  $sql = "SELECT login, pwd FROM user WHERE login = '".addslashes($login)."'";
  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
 
  // On vérifie que l'utilisateur existe bien
  if (mysql_num_rows($req) > 0) {
     $data = mysql_fetch_assoc($req);
   
    // On vérifie que son mot de passe est correct
    if ($password == $data['mdp']) {
      $loginOK = true;
    }
  }
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
  $_SESSION['pseudo'] = $data['pseudo'];
  $_SESSION['age'] = $data['age'];
     $_SESSION['sexe'] = $data['sexe'];
  $_SESSION['ville'] = $data['ville'];
}
else {
  echo 'Une erreur est survenue, veuillez réessayer !';
}


j'obtiens cette erreur :

Erreur SQL :
SELECT login, pwd FROM bd_principale WHERE login = 'dfgsdg'

j'ai un doute sur ma bd :s
je ne comprends également pas où se fait la connexion a ma bd hmm

Je débute en php alors un peu d'indulgence ;p

Pied de page des forums

Propulsé par FluxBB