|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() |
Bonjour,
J'ai éssayé de mettre un "anti doublon" lors d'insertion de données via mon formulaire J'introduis donc des urls dans une base de donnée, & je veux m'assurer que cette url n'éxiste pas déja avant de l'insérer. Seulement systématiquement quand je charge la page du formulaire pour la premiere fois (base vide) le script envoie directement une valeur vide dans la base. ( pas la deuxieme, vu que la il dit que l'adresse éxiste déja mon code ressemble à : Code :
Cordialement |
||
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() Inscription : octobre 2003 Messages : 102 ![]() |
Salut,
du peu que je comprenne, tu as mutualisé ton script de sorte qu'il serve a la fois pour afficher le formulaire et a la fois pour l'insert. Du coup qd tu requete ce script, il est normal que le serveur qu'il fasse ce qu'on lui dit ( ce qu'il y a sur ce script) peut être. que la partie insertion devrait être conditionnée par la détection du $_POST. Code :
__________________
il n'y a pas de sotte existence |
||
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() |
Salut
je n'ai pas trop compris ce que tu voulais dire avec le POST (noobs powaa) mais je crois avoir compris que tu me conseilles de splitter les pages avec une page form.php qui réenvoie sur une page formok.php c'est bien cela ? |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : octobre 2003 Messages : 102 ![]() |
non du tout,
garde comme çà ne split pas, fait juste comme j'ai fait. A ce propros je te conseille de prendre l'habitude d'utiliser le super global $_POST. C'est à dire $_POST["nom_du_champ"] plutot que directement $nom_du_champ. donc pour le cas ou ton champ texte pur l'url s'appelle url, utiliser $_POST["url'] plutot que $url. -Cela rend ton code plus portable, notamment pour le cas ou tu devrais t'accomoder d'un serveur avec register globals a off. -cela permet du premier coup d'oeil, pour quiconque ne connait pas ton script de determiner la provenance de ta variable (parametre passé en methode post).d'ailleurs celame fait pense que j'ai supposé que tu est en post mais si çà se trouve tu utilse la méthode get. A cet instant précis je ne sais pas pour toi mais l'inconvénient de ne pas utiliser les superglobaux est palpables :-) => donc si t'es en get remplace $_POST["url"] par $_GET["url"] non je déconne, y a un bout de ton formulaire qui dépasse en bas de ton script :-) -il est accessible de partout, de tous les contextes que ce soit de l'interieur d'une fonction utilisateur, ou d'une classe etc.
__________________
il n'y a pas de sotte existence |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() |
ok, je test ca
merci à toi pour toutes ces explications ! |
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() |
ah au fet,
il faut que j'applique cela sur chacunes des autres variables du formulaire alors ? Cordialement |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : octobre 2003 Messages : 102 ![]() |
Bah si elles marchaient comme çà non, t'enquiquine pas pour çà mais prend cette habitude parcontre a l'avenir, c'est beaucoup plus parlant (surtout pour les autres) dans un script de voir un $_POST["ma_var"] que de voir débarquer $ma_var de nulle part.
Bref c'est un détail, l'essence de ma solution c'est surtout de tester justement $_POST["url"] avant d'appliquer ou pas la portion de script qui fait l'insertion en base, l'idée étant de s'assurer avant ce travail que le formulaire avait bien été soumis, çà évite l'insertion des le premier acces au script ;-)
__________________
il n'y a pas de sotte existence |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com