Page 1 sur 1

PHP & BDD

Posté : 26 déc. 2010, 18:59
par besoin d'un coup de pouce pour une requête SQL
Bonjour,

Je suis un vrai débutant en PHP et j'ai besoin d'aide.

Je souhaite récupérer dans une base SQL "élèves" les infos correspondantes à la personne qui s'est identifier.

j'ai fait quelques essais avec 'WHERE' sans succès.
pourriez vous SVP me donner une solution.

voici le code que j'utilise:

<?php require_once('connexion.php'); ?>

<?php
session_start(); // On relaye la session
if (session_is_registered("authentification")){ 


}

else {
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}

//$nom = $_SESSION['nom'];

?>

<?php  // selection dans la base eleves

mysql_select_db($database_dbprotect, $bdd);

$query_users = "SELECT * FROM eleves WHERE  "; //  selection dans bdd

$users = mysql_query($query_users, $bdd) or die(mysql_error());
$row_users = mysql_fetch_assoc($users);

?>


Re: PHP & BDD

Posté : 26 déc. 2010, 19:50
par sadeq
Bonjour, d'abord remettons un peu d'ordre dans l'algorithme:
1. si l'utilisateur est déjà authentifié, alors on exécute la requête par rapport à son identifiant
2. Sinon, on affiche une page d'erreur

Voici la réorganisation du code :
<?php 
session_start(); // On relaye la session (cette instruction doit être placée avant tout ECHO)
if (session_is_registered("authentification") && isset($_SESSION['nom'])){ // test si une session existe et si le champ nom existe dans cette session
   // sélection dans la base élèves
   require_once('connexion.php');
   $nom = $_SESSION['nom'];
   mysql_select_db($database_dbprotect, $bdd);
   $query_users = "SELECT * FROM eleves WHERE  nom = '" . $nom . "'"; //  sélection dans la bdd
   query($query_users, $bdd) or die(mysql_error());
   if ($row_users = mysql_fetch_assoc($users)){
         // ici, écrire le code qui traite les données récupérées de la bdd
         echo "Données élève trouvées";
   }
}
else {
   header("Location: index.php?erreur=intru"); // redirection en cas d'échec
    exit(); // ayez l'habitude d'arrêter l'exécution après un header de type Location (redirecteur d'URL)
}

?>

Re: PHP & BDD

Posté : 30 déc. 2010, 12:41
par CMBP_Xavier
Bonjour,

je suppose qu'il faut remplacer query par mysql_query ?

Dans un deuxième temps, penser à traiter $nom (addslashes ou mieux mysql_real_escape_string) pour réduire le risque d'injection sql (ou de plantage simple de la requête si on a Scarlett O'Hara dans sa classe).

Attention aux magic_quotes, qui peuvent (ou non) être activées...et sont de toutes façons destinées à disparaître prochainement.

je sais qu'on est au niveau 'débutant', mais autant prendre les bonnes habitudes directement...

Finalement, tant qu'à débuter, il pourrait être pertinent d'utiliser l'extension mysqli (qui sera probablement celle qui subsistera au final). Il n'y a pas de grandes différences pour une première approche, mais mysqli propose plus de possibilités pour la suite.

Bien cordialement,

Xavier

Re: PHP & BDD

Posté : 30 déc. 2010, 12:50
par telnes