Page 1 sur 1

Comportement de PDO incompréhensible

Posté : 22 nov. 2011, 22:20
par Red_Man
<?php
$civilite = 	htmlspecialchars($_POST["civilite"]);											
$nom = 			htmlspecialchars($_POST["nom"]);
$prenom = 		htmlspecialchars($_POST["prenom"]);
$societe = 		htmlspecialchars($_POST["societe"]);
$adresse = 		htmlspecialchars($_POST["adresse"]);
$codepostal = 	htmlspecialchars($_POST["codepostal"]);
$ville = 		htmlspecialchars($_POST["ville"]);												
$email = 		htmlspecialchars($_POST["email"]);													
$telephone = 	htmlspecialchars($_POST["telephone"]);												
$fax = 			htmlspecialchars($_POST["fax"]);												
$objet = 		htmlspecialchars($_POST["objet"]);
$demande =		htmlspecialchars($_POST["demande"]);
$ip = $_POST["ip"];
//
$cnx = new PDO("mysql:host=localhost;dbname=db","root","12");
$query = $cnx->query("SELECT MAX(ID) AS id FROM visiteur");
$max_id = $query->fetch();
if($max_id["id"] == "")
{
	$max_id = 1;
}
else
{
	$max_id = (int)($max_id["id"]);
	$max_id = $max_id + 1;
}
$query->closeCursor();
try
{
	$insertion_visiteur = $cnx->prepare("INSERT INTO visiteur(ID,civilite,nom,prenom,societe,adresse,codepostal,ville,email,telephone,fax,IP) VALUES($max_id,$_POST[civilite],$_POST[nom],$_POST[prenom],$_POST[societe],$_POST[adresse],$_POST[codepostal],$_POST[ville],$_POST[email],$_POST[telephone],$_POST[fax],$_POST[ip])++");	
	$insertion_visiteur->execute();
	//$insertion_visiteur = $cnx->prepare("INSERT INTO visiteur(ID,civilite,nom,prenom,societe,adresse,codepostal,ville,email,telephone,fax,IP) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ");	
	//$insertion_visiteur->execute(array($max_id,$civilite,$nom,$prenom,$societe,$adresse,$codepostal,$ville,$email,$telephone,$fax,$ip));
	//$insertion_demande = $cnx->prepare("INSERT INTO demande(ID_visiteur,objet,demande,Date_Demande) VALUES(?,?,?,NOW())");	
	//$insertion_demande->execute(array($max_id,$objet,$demande));
	
echo "Nombre d'insertion ".$insertion_visiteur->rowCount();//." ".$insertion_demande->rowCount().utf8_encode(" Donées enregistrer avec succées !");
}
catch(exception $e)
{
	echo "Erreur : ".$e->getMessage();
}
?>

Aidez-moi s'il vous plait et Merci

Re: Comportement de PDO incompréhensible

Posté : 22 nov. 2011, 22:23
par Red_Man
Le problème c'est que la requête est totalement juste mais au niveau niveau des tables je trouve aucune information

Re: Comportement de PDO incompréhensible

Posté : 22 nov. 2011, 22:54
par xTG
$insertion_visiteur = $cnx->prepare("INSERT INTO visiteur(ID,civilite,nom,prenom,societe,adresse,codepostal,ville,email,telephone,fax,IP) VALUES($max_id,$_POST[civilite],$_POST[nom],$_POST[prenom],$_POST[societe],$_POST[adresse],$_POST[codepostal],$_POST[ville],$_POST[email],$_POST[telephone],$_POST[fax],$_POST[ip])++");
C'est une belle horreur ta requête. ^^

Aucune utilité du prepare si c'est pour tout injecter en bloc dedans...
J'ai aussi un doute sur ton incrémentation de variable à la fin... Car ce serait une incrémentation SQL et je suis pas sûr qu'on puisse faire ça comme ça.

Requêtes préparées : http://php.net/manual/fr/pdo.prepared-statements.php

Re: Comportement de PDO incompréhensible

Posté : 23 nov. 2011, 03:12
par Red_Man
Eh oui, une requête de merddde :tir2:

Enfin j'ai réussi a trouvé la solution... j'ai changé le fichier ini de MySQL, j'ai pris Myhuge.ini

Maintenant tout marche nickel, merci à toi xTG et à forum.phpfrance

Re: Comportement de PDO incompréhensible

Posté : 23 nov. 2011, 11:13
par stealth35
t'as pas faire, de htmlentites à ce niveau

Re: Comportement de PDO incompréhensible

Posté : 23 nov. 2011, 11:44
par Red_Man
Dans mes premiers essais, j'ai testé avec htmlentities... pas de changement remarquables
Merci a vous tous

Re: Comportement de PDO incompréhensible

Posté : 23 nov. 2011, 11:47
par stealth35
ta requête n'est pas sécurisé non plus, c'est pas dutout comme ça qu'on utilise les requêtes préparées, je t'invite a lire la doc

Re: Comportement de PDO incompréhensible

Posté : 23 nov. 2011, 18:12
par Red_Man
D'après le cours du site du zero, j'ai appris a utilisé les rêquetes de cette façon

Re: Comportement de PDO incompréhensible

Posté : 23 nov. 2011, 19:34
par stealth35
D'après le cours du site du zero, j'ai appris a utilisé les rêquetes de cette façon
c'est probable mais ça empêchement pas que ça soit complétement faux, t'as le lien vers le tuto ?

Re: Comportement de PDO incompréhensible

Posté : 24 nov. 2011, 12:28
par Red_Man
voici le lien http://www.siteduzero.com/tutoriel-3-14 ... -chat.html tu trouveras la syntaxe dans la partie de correction du TP

Re: Comportement de PDO incompréhensible

Posté : 24 nov. 2011, 12:48
par xTG
Bah justement tu ne sais pas lire...
La seule requête préparée de la correction est correctement sécurisée et n'a rien à voir avec les tiennes :
$req = $bdd->prepare('INSERT INTO minichat (pseudo, message) VALUES(?, ?)');
$req->execute(array($_POST['pseudo'], $_POST['message']));
;)