Protéger une requete PDO

Petit nouveau ! | 4 Messages

31 mai 2013, 13:01

Bonjour,

Je voulais savoir comment je peux protèger une requête du style :

$add_data=$connexion->prepare("INSERT INTO matable (id,nom,prenom,adresse) VALUES ('','$nom','$prenom','$adresse')");

Merci

Eléphant du PHP | 56 Messages

31 mai 2013, 13:38

Salut,
$Valid = true;
$nom = '????????';
$prenom = '????????';
$adresse = '????????';
// test des données dans les variables.
if(strlen($nom) < 5){
$Valid = false;
}
// etc...

if($Valid){
$add_data=$connexion->prepare("INSERT INTO matable (id,nom,prenom,adresse) VALUES (:id, :nom, :prenom, :adresse)");
$add_data->execute(array(
'id'=>'',
'nom'=>$nom,
'prenom'=>$prenom,
'adresse'=>$adresse
)); 
}

Petit nouveau ! | 4 Messages

31 mai 2013, 14:18

Merci J-oxi de ta réponse.

Je suis allé un peu vite aussi dans ma question, par protection j'entends aussi contre tout ce qui est injection sql.
Ta solution le permet il ?

Mammouth du PHP | 619 Messages

31 mai 2013, 14:21

Bonjour,

regarde pour utiliser la fonction
mysql_real_escape_string()

Petit nouveau ! | 4 Messages

31 mai 2013, 14:33

il semblerait que mysql_real_escape_string ne fonction pas sur PDO je regarde du côté PDO::quote voir si ça convient

Merci

Mammouth du PHP | 619 Messages

31 mai 2013, 14:37

Ok désolé je n'utilise pas cette class mysql sinon voila un petit lien

http://www.siteduzero.com/forum/sujet/p ... -sql-54498

Petit nouveau ! | 4 Messages

31 mai 2013, 14:45

Merci pour le lien

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

31 mai 2013, 19:37

@ghost5922 : l'extension mysql est déprécié il est préférable d'utiliser mysqli ;) et la fonction indiquée ne s'utilise que si une connexion est ouverte (avec mysql_connect).

@slopes : utilise la méthode quote de PDOla requête préparée ne se justifie pas ;)


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 619 Messages

01 juin 2013, 08:59

Bonjour,

@Moogli quand je dis mysql je parle d'une class pour se connecte a mysql pas de la methode, pour le second point merci pour l'infos faut dire que c'est inclus dans ma class mysql :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 juin 2013, 13:56

ha une dao perso :)

nikel tu pourras d'autant plus facilement l'extension utilisée pour te connecté :)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 96 Messages

01 juin 2013, 16:25

Tu peux mettre ça en haut de ta page:
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}

Mammouth du PHP | 619 Messages

01 juin 2013, 17:19

Tu peux mettre ça en haut de ta page:
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}

cela protège la page pas les injections a la bdd