|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Bonjour à tous,
Je suis en train de faire une petite application web qui référence les livres d'une bibliothèque privée. J'ai donc créé une base de données ("bibliotheque") qui contient une table ("livres") avec tous les champs nécessaires. Et évidemment ma page web est un formulaire avec tous ces champs pour entrer les données. Jusque-là pas de souci. L'ennui, c'est que mon script PHP qui contient la commande SQL d'insertion automatique des données dans la table via le formulaire ne fonctionne pas (rien ne s'enregistre). Pourtant je n'ai pas de retour de "parse error". Je ne vois donc vraiment pas où peut se situer l'erreur. Je vous soumets donc mon code, si quelqu'un pouvait me dire ce qui ne va pas : Script PHP : Code :
Code :
Un très grand merci pour votre aide. |
||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Développeur Sharepoint/Biztalk Inscription : octobre 2008 Messages : 500 ![]() |
Idée comme ça,
Tu inséres des caractères spéciaux, par exemple dans "resumé" ? Moi je passerais un coup de html_entities ou utf8_decode quand tu récupéres tes $_POST et éviter tout soucis de caractères spéciaux. |
|
|
00
|
|
|
#3 | ||
|
Membre habitué
![]() Léo LRÉtudiant Inscription : juin 2011 Messages : 81 ![]() |
Code :
Code :
$insertion='INSERT INTO livres(titre,auteur,editeur,genre,autre_genre,resume) VALUES ("'.$titre.'","'.$auteur.'","'.$editeur.'","'.$genre.'","'.$autre_genre.'","'.$resume.'")'; |
||
|
|
00
|
|
|
#4 | ||
|
Membre éprouvé
![]() Étudiant Inscription : avril 2011 Messages : 317 ![]() |
Bonjour,
Tu as une erreur au niveau de ta requête : tu fais une insertion sur 6 champs et tu précise 7 valeurs (même si la première est vide). Vu que ton id est en auto-increment, pas besoin de lui donner une valeur. Essaye ceci : Code :
De plus, tu peux rajouter : Code :
mysql_query($insertion) or die(mysql_error()); |
||
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() |
L'erreur peur venir à mon avis des slashes...
Quote auparavant tes variables : |
|
|
01
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Merci pour vos réponses. J'ai suivi vos conseils et modifié ma requête, et ça marche.
@bob633 : oui j'ai des caractères spéciaux dans mon textarea et dans mes champs texte. Donc maintenant mes données s'enregistrent dans la table, mais les caractères accentués ne sont pas pris en compte (hiéroglyphes). J'ai pas bien compris ce que tu me dis de mettre dans mon script pour faire reconnaître les caractères spéciaux (je débute en php). D'autre part, j'ai créé ma base de données avec l'enregistrement par défaut (utf8_general_ci), est-ce que ça vient de ça ? Et auquel cas quel enregistrement faut-il mettre ? Merci d'avance pour vos réponses. |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Développeur Sharepoint/Biztalk Inscription : octobre 2008 Messages : 500 ![]() |
Doc pour html_entities et pour ut8_decode
Après il se peut qu'il convertisse déjà tes caractéres en HTML, ça dépend ce que tu appelles "caractères bizzare", ils sont vraiment bizzares ou du genre é ou autre ? Si tu utilises seulement html_entities ça ira. En fait lorsqu'il va récupérer ton $_POST, il va automatiquement convertir les caractéres spéciaux en HTML
|
|
|
00
|
|
|
#8 | |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Citation:
Oui, ils étaient bizarres: tous les "é" par exemple étaient rendus par "é" dans ma base de données. Mais en fait ça venait bien de l'interclassement. J'ai mis l'encodage de mes fichiers html en ISO-8859-1, et changé l'interclassement par défaut de ma base de données pour le LATIN1_SWEDISH_CI, ET ÇA MARCHE IMPECCABLE. Donc pas besoin de se compliquer la vie avec un script. Je poste ma solution, au cas où ça pourrait servir à quelqu'un. Merci encore d'avoir essayé de m'aider. A +. |
|
|
|
00
|
|
|
#9 | |
|
Membre éclairé
![]() Développeur Sharepoint/Biztalk Inscription : octobre 2008 Messages : 500 ![]() |
Citation:
![]() Passe tout en UTF-8, ça t'évitera vraiment des mauvaises surprises par la suite ![]() Et tu sais, ma solution c'est pas un script .. juste une fonction déjà toute faite à rajouter à ton code : $var = $_POST['var2'] serait juste remplacer par $var = html_entities($_POST['var2'],param1, param2) |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com