PHP & BDD

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 : PHP & BDD

Re: PHP & BDD

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

Re: PHP & BDD

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

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

par sadeq » 26 déc. 2010, 19:50

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)
}

?>

PHP & BDD

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

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);

?>