[PHP] erreur inconnue
Fermé
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
-
5 oct. 2009 à 21:06
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 - 15 oct. 2009 à 16:20
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 - 15 oct. 2009 à 16:20
A voir également:
- [PHP] erreur inconnue
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 5000 france tv - Forum iPhone
- J'aime par erreur facebook notification - Forum Facebook
18 réponses
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
15 oct. 2009 à 10:20
15 oct. 2009 à 10:20
« Le but de ce script est d'enregistré dans ma table plusieurs lien l'un a la suite de l'autre (séparé par ;) avec chaque fois la valeur 1 ou 0 si le lien est mort ou non ($mort) »
Non, on n'enregistre pas plusieurs valeurs dans un champ (sauf cas très exceptionnels), donc tu dois créer une table dédiée à l'enregistrement de tes liens.
Quant à mes question sur le pourquoi du stockage de ces valeurs en session, tu ne m'as pas répondu.
Non, on n'enregistre pas plusieurs valeurs dans un champ (sauf cas très exceptionnels), donc tu dois créer une table dédiée à l'enregistrement de tes liens.
Quant à mes question sur le pourquoi du stockage de ces valeurs en session, tu ne m'as pas répondu.
nabil07
Messages postés
140
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
10 avril 2014
64
5 oct. 2009 à 21:48
5 oct. 2009 à 21:48
salut,
utilises la fonction isset($_POST['lien']) qui teste la validité du champ.
tu peux l'utiliser avant d'entamer le boucle for.
utilises la fonction isset($_POST['lien']) qui teste la validité du champ.
tu peux l'utiliser avant d'entamer le boucle for.
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
5 oct. 2009 à 22:17
5 oct. 2009 à 22:17
Je l'utilise comme condition du for
for ($i = 1; !empty($_POST['lien'.$i]); $i++)
Ce que je ne comprend pas c'est que ça marche uniquement si tous les champs sont rempli.
alors que ça devrait marcher tous les temps ou au moins avec le premier champ rempli
qui est toujours $_POST['lien1']
for ($i = 1; !empty($_POST['lien'.$i]); $i++)
Ce que je ne comprend pas c'est que ça marche uniquement si tous les champs sont rempli.
alors que ça devrait marcher tous les temps ou au moins avec le premier champ rempli
qui est toujours $_POST['lien1']
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
6 oct. 2009 à 09:46
6 oct. 2009 à 09:46
empty vérifie si la variable contient une valeur nulle ou pas
isset vérifie si la variable existe ou pas
ce n'est pas pareil il me semble
isset vérifie si la variable existe ou pas
ce n'est pas pareil il me semble
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
6 oct. 2009 à 17:13
6 oct. 2009 à 17:13
en utilisant empty, je vérifie ici en même temps si ma variable est égal à 0 ou non. si c'est le cas, elle est soit véritablement égal à 0 et donc je m'arrete, soit elle n'existe pas donc je m'arrête aussi.
J'ai quand même testé avec le isset mais aucun changement.
Une autre suggestion? :)
J'ai quand même testé avec le isset mais aucun changement.
Une autre suggestion? :)
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
6 oct. 2009 à 17:25
6 oct. 2009 à 17:25
Ce n'est pas de cette façon que l'on passe plusieurs valeurs dans un champ de formulaire.
On utilise les tableaux.
Après un simple foreach pour parcourir $_POST['lien']
Idem lorsque tu stockes en sessions, cela devrait-être $_SESSION['formulaire'][$i]['lien'], etc..
On utilise les tableaux.
<input type="text" name="lien[]" />
Après un simple foreach pour parcourir $_POST['lien']
Idem lorsque tu stockes en sessions, cela devrait-être $_SESSION['formulaire'][$i]['lien'], etc..
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
6 oct. 2009 à 17:30
6 oct. 2009 à 17:30
Si j'écris simplement lien[x] (où x représente un numéro), $_POST['lien'] sera automatiquement transformé en array?
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
6 oct. 2009 à 17:52
6 oct. 2009 à 17:52
Je n'ai pas compris ce que tu dis, c'est la paire de crochets qui indique que $_POST['lien'] sera un array.
Si tu as besoin de passer un index en même temps que la valeur, en effet oui, il faut mettre l'index dans les crochets.
Si tu as besoin de passer un index en même temps que la valeur, en effet oui, il faut mettre l'index dans les crochets.
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
6 oct. 2009 à 18:06
6 oct. 2009 à 18:06
Ok merci pour l'astuce, tout fonctionne maintenant. :)
au fait, un peu de HS mais comment ce fait-il que la partie webmastering ne fonctionne plus?
au fait, un peu de HS mais comment ce fait-il que la partie webmastering ne fonctionne plus?
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
6 oct. 2009 à 18:55
6 oct. 2009 à 18:55
Partie webmastering du forum ?
Elle fonctionne très bien :)
Elle fonctionne très bien :)
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
6 oct. 2009 à 19:38
6 oct. 2009 à 19:38
ha bon?
Au lieu d'avoir le forum, j'ai une image, un M avec écrit dessus "arrante".
Au lieu d'avoir le forum, j'ai une image, un M avec écrit dessus "arrante".
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
6 oct. 2009 à 20:24
6 oct. 2009 à 20:24
Marrante ? XD
Je ne sais pas pourquoi ça déconne chez toi, vide ton cache navigateur au cas où, et si t'as toujours ce bug, poste dans le forum suggestion car là, il est bien bizarre ce bug :-D
Je ne sais pas pourquoi ça déconne chez toi, vide ton cache navigateur au cas où, et si t'as toujours ce bug, poste dans le forum suggestion car là, il est bien bizarre ce bug :-D
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
6 oct. 2009 à 21:25
6 oct. 2009 à 21:25
C'est bon, c'était une erreur dans le cache.
Mais pourquoi j'avais une image, je ne comprendrai jamais.
Mais pourquoi j'avais une image, je ne comprendrai jamais.
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
10 oct. 2009 à 18:04
10 oct. 2009 à 18:04
après plusieurs test, il réside encore un bug :/
voici les codes :
page formulaire :
le code de la page cible du formulaire.
si dans mon formulaire, je place 2 liens, dans ma base de donnée, je n'aurai que le dernier lien enregistré. Le premier aura été ignioré ou supprimer, je ne sais pas trop.
voici les codes :
page formulaire :
<td><label for="lien">URL : <font color="#FF0000">*</font></label></td> <td> <!--ajout champ--> <script> function create_champ(i) { var i2 = i + 1; document.getElementById('leschamps_'+i).innerHTML = '<input type="text" name="lien['+i+']" size="40px" class="galerieBtn" /></span>'; document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un champs</a></span>' : ''; } </script> <?php $n = 1; //session if (isset($_SESSION['formulaire']['lien'])) { for ($n = 1; isset($_SESSION['formulaire']['lien'][$n]); $n++) { echo '<input type="text" name="lien['.$n.']" id="lien['.$n.']" size="40px" value="'.$_SESSION['formulaire']['lien'][$n].'" class="galerieBtn"><br/>'; } } else { echo '<input type="text" name="lien[1]" id="lien[1]" size="40px" class="galerieBtn">'; } echo '<br/><span id="leschamps_'.$n.'"><a href="javascript:create_champ('.$n.')">Ajouter un champs</a></span>'; ?> </td>
le code de la page cible du formulaire.
//Vérification des l'url du lien. $lien = ''; $mort = ''; for ($i = 1; !empty($_POST['lien'][$i]); $i++) { if (preg_match("#http://[a-z0-9._/-]+#i", $_POST['lien'][$i])) { $lien .= htmlspecialchars($_POST['lien'][$i]); $lien .= ';'; $_SESSION['formulaire']['lien'][$i] = $_POST['lien'][$i]; $_SESSION['formulaire']['lien_max'] = $i; //création de $mort $mort .= '1;'; } else { $msgerreur .= 'L\'url ' . $_POST['lien'][$i] . ' n\'est pas valide ou vous avez oublié de mettre l\'url, merci de recommencer. Ex d\'url valide : http://www.blizer.net/dossier/page.html<br/>'; } }
si dans mon formulaire, je place 2 liens, dans ma base de donnée, je n'aurai que le dernier lien enregistré. Le premier aura été ignioré ou supprimer, je ne sais pas trop.
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
11 oct. 2009 à 11:36
11 oct. 2009 à 11:36
Il y a beaucoup de choses à revoir dans ton code.
Mais comme je ne saisis pas trop ce que le tout doit faire, je ne sais pas trop, surtout le stockage de telles valeurs en session.
Il serait bien, que tu détailles un peu le but de ce script, et également la structure de ta/tes table(s).
Mais comme je ne saisis pas trop ce que le tout doit faire, je ne sais pas trop, surtout le stockage de telles valeurs en session.
Il serait bien, que tu détailles un peu le but de ce script, et également la structure de ta/tes table(s).
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
11 oct. 2009 à 11:40
11 oct. 2009 à 11:40
le but de ce script est d'enregistré dans ma table plusieurs lien l'un a la suite de l'autre (séparé par ;) avec chaque fois la valeur 1 ou 0 si le lien est mort ou non ($mort)
ma table se compose simplement d'un champ lien et d'un champ mort.
l'utilisateurs peut entrer autant de lien qu'il veut et tout ces liens doivent se retrouver dans la base de donnée séparé par ; pour pouvoir les dissocier plus tard.
ps : je n'ai pas le temps de fort détailler maintenant, je dois partir mais ce soir s'il le faut, je détaillerai plus.
ma table se compose simplement d'un champ lien et d'un champ mort.
l'utilisateurs peut entrer autant de lien qu'il veut et tout ces liens doivent se retrouver dans la base de donnée séparé par ; pour pouvoir les dissocier plus tard.
ps : je n'ai pas le temps de fort détailler maintenant, je dois partir mais ce soir s'il le faut, je détaillerai plus.
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
13 oct. 2009 à 16:16
13 oct. 2009 à 16:16
Alors, tu comprends mieux le principe de mon script?
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
15 oct. 2009 à 16:20
15 oct. 2009 à 16:20
Ok pour la table supplémentaire, ce sera surement plus simple.
pour la valeur en session, c'est pour pouvoir la remettre dans le formulaire si jamais l'utilisateur a fait une erreur dans le formulaires.
Je modifierai mon code pour rajouter une table pour mes liens.
Mais pourquoi mon code actuel (même s'il est pas comme il faut ;)) ne fonctionne pas correctement?
pour la valeur en session, c'est pour pouvoir la remettre dans le formulaire si jamais l'utilisateur a fait une erreur dans le formulaires.
Je modifierai mon code pour rajouter une table pour mes liens.
Mais pourquoi mon code actuel (même s'il est pas comme il faut ;)) ne fonctionne pas correctement?