Perte de certains envois de formulaire à la base de données
14 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
- CrazyCow007
- WRInaute occasionnel

- Messages: 182
- Inscription: Dim Déc 28, 2003 17:07
Perte de certains envois de formulaire à la base de données
Bonjour,
J'ai mis en place un système permettant aux visiteurs de mon site de poster des réactions (sur le film Casino Royale), qui ensuite apparaissent dans ma console d'admin pour être validées ou supprimées.
Le problème que j'ai déjà remarqué est que certains messages lorsqu'ils sont validés n'apparaissent pas dans la base de données. Pourtant le script n'affiche aucune erreur PHP.
J'ai essayé beaucoup de possibilités différentes mais rien n'y fait c'est très étrange (ça ne vient ni de la longueur ni de caractères spéciaux)
Je vous met une portion du code qui ajoute les données du formulaire à la BDD (4 informations au total : date, auteur, commentaire et note).
Vous remarquerez que j'ai mis beaucoup de sécurités pour formater le texte entré par l'utilisateur. Il est possible que le problème vienne de là.
Annexe :
Merci d'avance pour vos idées !
J'ai mis en place un système permettant aux visiteurs de mon site de poster des réactions (sur le film Casino Royale), qui ensuite apparaissent dans ma console d'admin pour être validées ou supprimées.
Le problème que j'ai déjà remarqué est que certains messages lorsqu'ils sont validés n'apparaissent pas dans la base de données. Pourtant le script n'affiche aucune erreur PHP.
J'ai essayé beaucoup de possibilités différentes mais rien n'y fait c'est très étrange (ça ne vient ni de la longueur ni de caractères spéciaux)
Je vous met une portion du code qui ajoute les données du formulaire à la BDD (4 informations au total : date, auteur, commentaire et note).
- Code: Tout sélectionner
$auteur = htmlspecialchars($auteur, ENT_QUOTES);
$auteur = spec_chars($auteur);
$commentaire = trim($commentaire);
$commentaire = htmlspecialchars($commentaire);
$commentaire = nl2br($commentaire);
$commentaire = spec_chars($commentaire);
$commentaire = str_replace("Â","",$commentaire);
$date = date('j M Y \à G:i');
$date = spec_chars($date);
db_connect();
$sql = "INSERT INTO $dbtable (ok, auteur, commentaire, note, date) VALUES ('0', '$auteur', '$commentaire', '$note', '$date')";
mysql_query ($sql);
Vous remarquerez que j'ai mis beaucoup de sécurités pour formater le texte entré par l'utilisateur. Il est possible que le problème vienne de là.
Annexe :
- Code: Tout sélectionner
function spec_chars($chaine) {
for ($i = 161; $i < 255; $i++)
$chaine = ereg_replace(chr($i), "&#$i;", $chaine);
return $chaine;
}
Merci d'avance pour vos idées !
- CrazyCow007
- WRInaute occasionnel

- Messages: 182
- Inscription: Dim Déc 28, 2003 17:07
J'ai compris qu'il était inutile lorsque magic_quotes_gpc était sur on, ce qui est le cas sur mon serveur chez OVH. D'ailleurs j'avais essayé de le faire mais ça me rajoute juste des \ supplémentaires. Par défaut addslashes est ajouté à chaque enregistrement dans la base 
la solution, c'est d'enregistrer dans un fichier la variable $sql quand mysql_query ($sql); renvoie une erreur.
Et ensuite, de faire le test de cette insertion avec phpmyadmin.
car j'ai eu ce problème chez OVH d'insertion qui ne se faisaient pas et en ajoutant addslashes ça a remarché
Et ensuite, de faire le test de cette insertion avec phpmyadmin.
car j'ai eu ce problème chez OVH d'insertion qui ne se faisaient pas et en ajoutant addslashes ça a remarché
- CrazyCow007
- WRInaute occasionnel

- Messages: 182
- Inscription: Dim Déc 28, 2003 17:07
Ok je vais essayer ça. Merci ! 
- CrazyCow007
- WRInaute occasionnel

- Messages: 182
- Inscription: Dim Déc 28, 2003 17:07
De l'insertion. Tout le reste (fonction update) marche sans problème.
Je pense qu'il doit y avoir une situation ou l'insertion ne peut pas se faire, mais j'ai pourtant essayé toutes les possibilités avec les " et les ' mais à chaque fois ça marche. C'est assez étrange en fait...
Donc j'ai mis en place un code qui m'envoit par mail s'il y a une erreur SQL toutes les infos de l'erreur et le contenu du formulaire... Faudrait-il encore que ça génère une erreur...
Je pense qu'il doit y avoir une situation ou l'insertion ne peut pas se faire, mais j'ai pourtant essayé toutes les possibilités avec les " et les ' mais à chaque fois ça marche. C'est assez étrange en fait...
Donc j'ai mis en place un code qui m'envoit par mail s'il y a une erreur SQL toutes les infos de l'erreur et le contenu du formulaire... Faudrait-il encore que ça génère une erreur...
- CrazyCow007
- WRInaute occasionnel

- Messages: 182
- Inscription: Dim Déc 28, 2003 17:07
$sql :
INSERT INTO reactions (ok, auteur, commentaire, note, date) VALUES ('0', 'PseudoDeTest', 'Hello world !', '8', '19 Nov 2006 à 17:09')
Dans la BDD :
id - int(5) - auto_increment
ok - tinyint(1)
auteur - varchar(40)
date - varchar(40)
commentaire - text
note - int(2)
INSERT INTO reactions (ok, auteur, commentaire, note, date) VALUES ('0', 'PseudoDeTest', 'Hello world !', '8', '19 Nov 2006 à 17:09')
Dans la BDD :
id - int(5) - auto_increment
ok - tinyint(1)
auteur - varchar(40)
date - varchar(40)
commentaire - text
note - int(2)
ok là dessus, d'après les infos données, tout va bien, il doit y avoir autre chose. As tu essayé un echo mysql_error(); juste après la requête pour vérifier ?
Après expériences, je ne saurai que trop préférer la syntaxe INSERT INTO table SET champs1='valeur1', champs2='valeur2', etc.
Après expériences, je ne saurai que trop préférer la syntaxe INSERT INTO table SET champs1='valeur1', champs2='valeur2', etc.
- CrazyCow007
- WRInaute occasionnel

- Messages: 182
- Inscription: Dim Déc 28, 2003 17:07
J'ai essayé echo mysql_error(); mais ça ne m'affiche rien et l'ajout dans la base se fait comme il faut. Même avec tous les caractères spéciaux possibles.
Moi je me rappelle quand j'ai eu ce problème aussi, qu'aucune erreur mysql n'était affichée. Donc je ne pense pas que j'en saurais plus avec le système d'alerte par mail...
Moi je me rappelle quand j'ai eu ce problème aussi, qu'aucune erreur mysql n'était affichée. Donc je ne pense pas que j'en saurais plus avec le système d'alerte par mail...
- CrazyCow007
- WRInaute occasionnel

- Messages: 182
- Inscription: Dim Déc 28, 2003 17:07
Je pense que je vais laisser comme ça. Peut-être que c'était un problème interne chez l'hébergeur... Espérons que ça ne se reproduise plus...
- CrazyCow007
- WRInaute occasionnel

- Messages: 182
- Inscription: Dim Déc 28, 2003 17:07
Oui effectivement j'ai rajouté les mêmes vérifications pour l'auteur que pour le commentaire. Et pour le moment j'ai déjà validé une vingtaine de réactions sans avoir reçu de mail d'erreur. Donc ça à l'air de tenir la route maintenant...
14 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Parts de marché des moteurs aux USA (Février 2008)
- Importer tout son blog dans Google Base
- Deux nouveaux blogs officiels : Google Talk et Google Base
- Nouvelle version de GoogleStats : v1.1
- Microsoft Fremont : contre Google Base et eBay ?
- L'algorithme de Google en résumé (mars 2003)
- Classement Xiti/1ère Position des outils de recherche en France - Août 2002
- Google Automat = Google Base + AdWords
- Développer un outil avec la Google API
- Consulter l'enneigement des stations de ski des Alpes dans Google Earth
- importation de données dans base de données
- Base de données de Google Base
- Plantage serveur et perte de donnees
- Passer Google Analytics en SSL : perte de données ?
- base de donnees
- Question base de données
- Taille base de données
- Vendre base de données ?
- 1&1 et base de données
- Robot et base de données
- hebergement et base de données
- Artichow et base de données
- Base de données de prénoms
- Transfert base de données
- consommation base de données
Consultez la description détaillée des produits ou services de Google suivants : Google Base, Google Automat
- Google Suggest
Cet outil vous permet d'obtenir une liste de 10 mots ou expressions suggérés par Google sur la base d'un mot que vous fournissez.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum