Probleme SQL-PHP
Bonjour, j'ai quelques petits problèmes dernièrement sur free en php et sql. J'ai testé préalablement le tout à l'aide easyphp qui ne me rapporte aucun problème. Voici mon code et les problemes:
CODE 1:
$sql2= "INSERT INTO jeux (login) VALUES ('$lognew')";
$query2 = mysql_query ($sql2);
mysql_free_result ($query2);
mysql_close();
PROBLEME 1:
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/9/7/ffjogg/bdd/inscription.php on line 102
CODE 2 :
header('Location: gestion_items.php?do=beg');
PROBLEME 2 :
Warning: Cannot modify header information - headers already sent by (output started at /var/www/free.fr/9/7/ffjogg/bdd/inscription.php:101) in /var/www/free.fr/9/7/ffjogg/bdd/inscription.php on line 104
Pour le code 1, que ce soit chez free ou sous easyphp, tu devrais avoir une erreur.
Voici une correction :
<?php
// la il faut mettre les quotes au bon endroit
$sql2= 'INSERT INTO jeux (login) VALUES ("'.$lognew.'")';
// toujours faire des mysql_error pour voir les erreurs retournés par MySQL, si il y en a
$query2 = mysql_query ($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
mysql_free_result ($query2);
mysql_close();
?>
Pour le code 2, tu dois surement faire un echo ou afficher de l'html avant ton header (je le rappelle, on ne doit jamais faire le moindre echo ou afficher de l'html avant de faire un header).
Merci. Mais je ne suis pas sur de voir mon erreur pour le code 1, c'est jsute ca: ("'.$lognew.'") ?
Merci
Pour mysql_free_result() deja ca marche pas avec les requetes de type insert .. + d'infos dans le manuel.
Ensuite euh j'ai pas regardé , deux sec...
zebdinou pour les intimes / Blog : http://www.zebden.fr
so :
Pour le code 2, tu dois surement faire un echo ou afficher de l'html avant ton header (je le rappelle, on ne doit jamais faire le moindre echo ou afficher de l'html avant de faire un header).
Pas mieux ^^
zebdinou pour les intimes / Blog : http://www.zebden.fr
Ah oui MDR :)
zebden a raison, pas de mysql_free_result sur les insert, update, delete.
Sinon oui l'erreur venait des quotes.
Nope puisque la requete est delimitée par des guillemets et la chaine par des quotes et comme les vars sont interprétes dans une chaine entre guillemets ( Vous me suivez ? moi je me suis deja perdu ) bref ca devait passer comme ecrit la premiere fois mais c'est mieux de faire comme glob t'as dis..
zebdinou pour les intimes / Blog : http://www.zebden.fr
Crotte, encore une fois, zebden a raison.
SAUF ! SAUF le cas ou la chaine de caractere contient un ', et la, toute la chaine ne rentre pas dans la base.
Remarque, avec ma technique, ca revient au meme puisque si un " se trouve dans la chaine, elle sera aussi coupée.
Bon, j'vais me coucher, en ce moment, j'arrete pas de faire des sites oueb, et ca me nique le cerveau...
PS : pour eviter ce coupage de chaine, addslahses avant l'insertion dans la base, et stripslashes à l'affichage.
[Message modifié le 06/10/2004 à 17:54 par LA GLOBULE]
et si ya magic_quote ?
Une biere ? :D
zebdinou pour les intimes / Blog : http://www.zebden.fr
<?php
function MyAddSlashes($chaine ) {
return (get_magic_quotes_gpc() == 1 ? $chaine : addslashes($chaine));
}
function MyStripSlashes($chaine) {
return(get_magic_quotes_gpc() == 1 ? stripslashes($chaine) : $chaine);
}
?>
Nan mais :)