J'ai fait un formulaire avec ajax qui me permet d’insérer des éléments dans ma base de donnée. Je souhaiterais que lorsque l'insertion se fait bien afficher un pop up pour dire que l'insertion a bien été faite. Je pense qu'il faudrait mettre une variable dans la page php appelé qui sera retourner si tout se passe bien.Je ne sais pas trop comment faire.
Passer par ajax ne te dispense pas de protéger tes données : tu dois les échapper sinon préparer tes requêtes. Tes requêtes vont planter sur les ' et on peut tenter des injections SQL.
Il ne manque pas des clauses WHERE à toutes tes requêtes ?
Bref, il faut que ton script echo quelque chose en fonction de ce que mysqli_query renvoie comme l'indique christouphe et que tu utilises la "callback" success de $.ajax (ou la promise done)
Passer par ajax ne te dispense pas de protéger tes données : tu dois les échapper sinon préparer tes requêtes. Tes requêtes vont planter sur les ' et on peut tenter des injections SQL.
Il ne manque pas des clauses WHERE à toutes tes requêtes ?
Bref, il faut que ton script echo quelque chose en fonction de ce que mysqli_query renvoie comme l'indique christouphe et que tu utilises la "callback" success de $.ajax (ou la promise done)
- Edité par julp il y a 7 minutes
bah les seules personnes qui auront accès à cette page sont les administrateur ( que j'identifie avec un Grade enregistrer en session). Comme ils ne pourront pas accéder aux formulaire c'est bon non ?
christouphe a écrit:
TU peux retourner le retour de mysqli_query() de l'insertion => voir le doc "Valeur de retour"
> Comme ils ne pourront pas accéder aux formulaire c'est bon non ?
Ce n'est pas qu'une question de sécurité : une ' et tes requêtes plantent ! Pourquoi vous vous cherchez toujours des excuses pour ne pas faire les choses 100% correctement et fonctionnelles comme ça aurait dû être fait et pensé dès le départ ? Ca te coûte quoi de rajouter/mettre des mysqli_real_escape_string ?
Retourne FALSE en cas d'échec. Pour des requêtes SELECT, SHOW, DESCRIBE ou EXPLAIN réussies, mysqli_query() retournera un objet mysqli_result. Pour les autres types de requêtes ayant réussi, mysqli_query() retournera TRUE.
> Comme ils ne pourront pas accéder aux formulaire c'est bon non ?
Ce n'est pas qu'une question de sécurité : une ' et tes requêtes plantent ! Pourquoi vous vous cherchez toujours des excuses pour ne pas faire les choses 100% correctement et fonctionnelles comme ça aurait dû être fait et pensé dès le départ ? Ca te coûte quoi de rajouter/mettre des mysqli_real_escape_string ?
Retourne FALSE en cas d'échec. Pour des requêtes SELECT, SHOW, DESCRIBE ou EXPLAIN réussies, mysqli_query() retournera un objet mysqli_result. Pour les autres types de requêtes ayant réussi, mysqli_query() retournera TRUE.
- Edité par julp il y a environ 1 heure
J'avais simplement oublier l'histoire du ' qui faisait planter le code ( je cherchais pas d'excuse je posais une question ( d'où le "?")
la question que je me posais initialement c'était comment faire passer le résultat de la requête.
( pas besoin de rajouter de la condescendance merci )
- Edité par YaourtSaveurFraise 28 mars 2020 à 13:33:53
Je ne comprends toujours pas ton code : il n'y a aucun WHERE nulle part ! Il n'y a qu'un concours ?
Il n'y a aucune validation non plus (notamment sur les dates).
Il y a une autre façon d'aborder ta question d'ailleurs : tu lèves une 500 si l'insertion foire comme ça, au niveau de $.ajax, si ça plante, tu passes sur la callback d'error contre success sinon. Il suffit même de mettre un mysqli_report dans ce cas.
Quoi que tout dépend de la définition de "lorsque l'insertion se fait bien" si on entend par là requête qui plante ou non contre requête qui n'a rien inséré au sens l'insertion a été annulée pour doublon ou autre si un trigger avorte la requête (sans réelle erreur pour autant niveau SQL).
C'est vrai que la clause WHERE manque, pour plusieurs des requêtes on ne peux pas trop le savoir, par contre pour les deux requêtes de type UPDATE, il manque forcément la clause WHERE.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Je ne comprends toujours pas ton code : il n'y a aucun WHERE nulle part ! Il n'y a qu'un concours ?
Il n'y a aucune validation non plus (notamment sur les dates).
Il y a une autre façon d'aborder ta question d'ailleurs : tu lèves une 500 si l'insertion foire comme ça, au niveau de $.ajax, si ça plante, tu passes sur la callback d'error contre success sinon. Il suffit même de mettre un mysqli_report dans ce cas.
Quoi que tout dépend de la définition de "lorsque l'insertion se fait bien" si on entend par là requête qui plante ou non contre requête qui n'a rien inséré au sens l'insertion a été annulée pour doublon ou autre si un trigger avorte la requête (sans réelle erreur pour autant niveau SQL).
- Edité par julp il y a environ 20 heures
Il n'y aura toujours qu'un seul concours c'est pour ça que je ne me prend pas la peine de mettre de clause where.
Ensuite c'est quand l'insertion d'un nouveau règlement ou la mise à jour de celui ci se fait correctement que je considère que tout c'est bien effectué.
J'ai vue qu'on pouvait mettre un fonction success en ajax mais je sais pas comment ça marche je vais chercher ça .
en ajax on peut avoir une valeur de retour grâce au
.done(function() {
$( this ).addClass( "done" );
});
ducoup il faudrait cibler certains éléments echo sur ma page ajax pour connaitre leurs valeurs ( savoir si les requête sont bonne ducoup).
Après je sais pas trop à quoi correspond this
Confimation que ajax a bien fonctionner
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.