Problème d'enregistrement de concaténation - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Problème d'enregistrement de concaténation (/showthread.php?tid=7375) Pages :
1
2
|
Problème d'enregistrement de concaténation - Harald - 21-05-2015 Bonjour à tous, Je suis dépasser complètement depuis maintenant deux jours ... Je cherche a concaténer deux variables et l'enregistrée. Rien d'insurmontable me direz-vous. Oui mais le soucis est qu'après la concaténation qui fonctionne parfaitement, je ne peux enregistrer une chaine de plus de 30 caractères... Hors si je met du texte a en faire péter une biographie dans la première des deux variables ca passe. Voici mon code : Code : if($voler != 1){ $message est enregistrer dans un champ longtext mais ca n'aide pas. Je ne comprend pas, sauriez-vous m'aider? Merci ! RE: Problème d'enregistrement de concaténation - Xenos - 21-05-2015 Salut, VALUES('$pseudo', '$message', '$id_chat', '$type','$joueurchuchoter') : injection SQL. Tu as surement des apostrophes dans ta variable. Utilise des requêtes préparées (en 30 secondes, tu dois trouver ça sur google | php.net | open classroom). RE: Problème d'enregistrement de concaténation - Harald - 21-05-2015 J'ai des requêtes préparée partout mais quand je travail au brouillon je fais ce genre de choses affreuses . J'ai déjà placer des requêtes préparées et elles n'ont rien changer a mon problèmes et je l'ai donc mise de coter tant que je brouillonne Mais merci du conseil, j'ignorais que cela pouvait induire des injections sql je le faisais par habitude ! RE: Problème d'enregistrement de concaténation - Ter Rowan - 22-05-2015 je pense aussi comme Xenos dans tous les cas donne nous des exemples en plus du code : cas qui marche : texte, texte à ajouter cas qui ne marche pas : texte, texte à ajouter, message d'erreur RE: Problème d'enregistrement de concaténation - Xenos - 22-05-2015 Note aussi qu'il existe, en MySQL, une longueur maximale de requête (max_allowed_packet. Je ne sais pas si les requêtes préparées permettent de la contourner. RE: Problème d'enregistrement de concaténation - Harald - 22-05-2015 Voici ce que mon code ici d'origine me renvoie quand je tente de "voler" un autre joueur : La chaine ajoutée est trop longue donc cela ne s'enregistre pas. Vous voyez ce texte car c'est ce qui me renvient de var_dump pour pouvoir voir si tout passe bien. (la dernière ligne)
Cependant, si je rate, la chaine est plus courte. Il n'ajouter que le terme "rater" et la cela passe parfaitement...
je viens de mettre une requête préparée :
Code PHP :
Ca n'a rien changer au problème que je rencontre... Je viens de placer trois var_dump pour voir d'ou vient le problème : Code PHP :
Cela me retourne : RE: Problème d'enregistrement de concaténation - Ter Rowan - 22-05-2015 est ce que tu peux refaire le test, mais au lieu de "rater", tu écris "raté" outre la correction grammaticale, je me demande si c est pas le caractère spécial qui fait planter l'enregistrement RE: Problème d'enregistrement de concaténation - Xenos - 22-05-2015 $query = "INSERT INTO minichat(pseudo,message,id_tchat,type,joueurchuchoter) VALUES('$pseudo', '$message', '$id_chat', '$type','$joueurchuchoter')"; Heu, c'est pas du tout une requête préparée ça?! C'est pas plutôt ça: Code : /* Préparation de la commande d'insertion */ ? Parce que dans l'exemple, il y a d'xp, donc une apostrophe, pas dans rater ni raté. Note: passe tout en UTF-8 (BDD, encodage des fichiers, résultat HTML,...), c'est le moins emmer*ant à l'heure actuelle. RE: Problème d'enregistrement de concaténation - Harald - 22-05-2015 Oui la grammaire n'est pas ma plus grande amie bien que j'essaie... Cela s'enregistre bien dans la bdd mais cela ne s'affiche pas. Je vais voir si cela marche si je retire tous les é ailleurs. Cela ne change rien il ne s'enregistre pas. RE: Problème d'enregistrement de concaténation - Xenos - 22-05-2015 J'dois mal m'exprimer, je vois encore une apostrophe... Utilise des requêtes préparées. A défaut, récupère le message d'erreur de MySQL (par les logs MySQL, ce serait mieux), qui t'en apprendra beaucoup. |