pb de variable et d'insert

Répondre
squaw
le 16/01/2007 à 16:03
squaw
Bonjour, debutant en php et étant sur la version 4.3.10, je rencontre un pb et j'avoue ne pas savoir où chercher car pas de message d'erreur;

je ne met volontairement pas de code dans ce premier message mais vous explique brievement.

j'ai ma base avec 2 tables, 1 user (espace soumit à login) et une autre domaines(appartenant au user avec une foule d'infos)

mon soucis est que tout va bien lorsque le user rempli le form pour ajouter un domaine, cependant lors de la validation (j'ai essayé post et get) soit je recupere tres bien en echo les variable avec extract $_Post mais l'insert table ne fonctionne pas et je n'ai pas de message d'erreur, soit je n'utilise pas l'extract et j'ai des erreurs (var indefini etc ) mais l'insert est pris en compte (l'id est crée) mais le reste de la ligne est vide.

d'ou pensez-vous que cela puisse provenir d'apres vous?

merci d'avance pour votre aide:)
LA GLOBULE
le 17/01/2007 à 08:01
LA GLOBULE
Je pense que tu n'escape pas tes données avant de les insérer en base de données.

Exemple :

$sql = "INSERT INTO blu ('champ1', 'champ2') VALUES ('".$_POST['toto']."', '".$_POST['titi']."')";

Ceci n'est pas bon, car si $_POST['toto'] ou $_POST['titi'] contiennent une ', ta requete SQL est fuckée, car elle devient :

INSERT INTO blu ('champ1', 'champ2') VALUES ('blublu ' toto', 'blu ' titi')"

Vois comment mysql se paume au niveau des '.

Bref, escape les données en faisant :

$sql = "INSERT INTO blu ('champ1', 'champ2') VALUES ('".mysql_escape_string($_POST['toto'])."', '".mysql_escape_string($_POST['titi'])."')";

PS : Pour avoir les messages d'erreurs SQL, mets des or die (mysql_error) sur tes mysql_query. Fais aussi des echo $sql, ca aide pour voir les requetes foireuses. Ah oui aussi, extract n'est pas une "bonne solution" : debrouille toi plutot pour faire en sorte que ta requete se lance si et seulement si ton $_POST existe.
squaw
le 17/01/2007 à 13:07
squaw
Ok je vais procéder autrement, merci pour les infos :)
bonne journée à tous;
squaw
le 18/01/2007 à 14:33
squaw
Je confirme que ca marche avec "mysql_escape_string" alors que sans ca n'allait pas.

Encore merci pour votre message (tres bien expliqué d'ailleur);

Excellente journée à vous:)
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours