Page 1 sur 3
formulaire et tableau
Posté : 10 nov. 2011, 01:19
par kalak
Bonsoir,
J'aurais besoin d'un petit coup de pouce, j'ai un formulaire et j'aimerais que lorsqu'il est envoyé ( et que toutes les conditions ont été respecté : champ rempli, email comporte bien un '@', etc...) il renvoie à l'utilisateur un tableau récapitulatif.
J'arrive à afficher le tableau mais je n'arrive pas à ce qu'il s'affiche seulement quand tout les champs sont bon.
Auriez vous une idée ?
Cordialement,
Re: formulaire et tableau
Posté : 10 nov. 2011, 01:58
par ouckileou
Avec du code ce serait plus facile.
M'enfin une idee ce serait de mettre un flag a true, et des qu'une condition n'est pas verifiee tu le passe a false. En faisant attention de ne pas le repasser a true dans les verifications qui pourraient suivre.
Re: formulaire et tableau
Posté : 10 nov. 2011, 12:00
par kalak
Oui pardon voici mon code :
http://pastebin.com/C3FPKxnN
je n'ai pas vraiment compris votre solution.
Cordialement,
Re: formulaire et tableau
Posté : 10 nov. 2011, 12:18
par moogli
salut,
exercie 4 ? tu suis un cours tuto ?
au vu de la dtd je t'indique que font n'est pas supportée => css
ce qu'indique ouckileou c'est ceci
<?php
// debut du fichier
$valid = true;
if (condition 1) {
}
else {
$valid = false;
}
etc etc
?>
en gros dès que tu a une erreur tu passe $valid = false et pour l'affichage final tu test si $valid=== true
<?php
if ($valid === true) {
affichage
}
?>
quel est votre volume préféré de la trilogie du voyageur galactique <= y a 5 réponses possibley a un smilblik dans la question
Attention lorsque tu met value=" <?php tu insère un espace au début du value et la ça met le brin dans ton formulaire (par exemple le nom devient espacemoogli au lieu de moogli c'est mal barré pour se connecter avec ça si tu a un espace membre
@+
Re: formulaire et tableau
Posté : 10 nov. 2011, 12:38
par kalak
Non je ne suit pas un cours tuto je suit des cours de php tout cours mais j'ai un peu de mal.
donc je ne peux pas utiliser les echo comme je l'ai fais pour mettre en forme le texte ? je dois donc utiliser du css ?
Pour ce qui est de la question de la trilogie, je sais mais c'est normal c'est une trilogie de 5 volumes (ouais je sais sa fait plus très trilogie, mais il faut pas chercher à comprendre).
Sinon je ne comprend pas trop la solution que vous me proposez. la variable "$valid" c'est une variable que je crée ?
Je pense avoir quand même compris, je vais tester tout sa, c'est juste "$valid" que je ne comprend pas trop.
Cordialement
Re: formulaire et tableau
Posté : 10 nov. 2011, 12:52
par moogli
donc je ne peux pas utiliser les echo comme je l'ai fais pour mettre en forme le texte ? je dois donc utiliser du css ?
c'est juste que la balise n'existe pas en xhtml, il te faut donc utiliser la balise span avec une classe
ex : <span class="fontToto">le text</span>
avec la css
.fontToto {
color:#FF0000;
}
ça fonctionne aussi avec les autres balises, d'ailleurs si ce n'est pas une ligne de texte mais plusieurs voir d 'autre balise de type bloc il sera préférable d'utiliser les balises p ou div. pour cela je te renvoie sur
http://www.alsacreations.com !)
pour le reste en gros la fin du fichier devient
<?php
if ( isset($valid) && $valid===true) {
?>
<table border="1px" cellspacing="0">
<tr>
<td>
<?php
if (isset($_POST['prenom'])) {
echo ("Prénom");
}
?>
</td>
<td>
<?php
if (isset($_POST['prenom'])) {
echo (($_POST['prenom']));
}
?>
</td>
</tr>
<tr>
<td>
<?php
if (isset($_POST['nom'])) {
echo ("Nom");
}
?>
</td>
<td>
<?php
if (isset($_POST['nom'])) {
echo ($_POST['nom']);
}
?>
</td>
</tr>
<tr>
<td>
<?php
if (isset($_POST['email'])) {
echo ("Email");
}
?>
</td>
<td>
<?php
if (isset($_POST['email'])) {
echo ($_POST['email']);
}
?>
</td>
</tr>
<tr>
<td>
<?php
if (isset($_POST['age'])) {
echo ("Age");
}
?>
</td>
<td>
<?php
if (isset($_POST['age'])) {
echo ($_POST['age'] . " an(s)");
}
?>
</td>
</tr>
<tr>
<td>
<?php
if (isset($_POST['bachelor'])) {
echo ("Bachelor");
}
?>
</td>
<td>
<?php
if (isset($_POST['bachelor'])) {
echo ($_POST['bachelor']);
}
?>
</td>
</tr>
<tr>
<td>
<?php
if (isset($_POST['pass'])) {
echo ("Password");
}
?>
</td>
<td>
<?php
if (isset($_POST['pass'])) {
echo ($_POST['pass']);
}
?>
</td>
</tr>
<tr>
<td>
<?php
if (isset($_POST['verif_pass'])) {
echo ("Retaper password");
}
?>
</td>
<td>
<?php
if (isset($_POST['verif_pass'])) {
echo ($_POST['verif_pass']);
}
?>
</td>
</tr>
<tr>
<td>
<?php
if (isset($_POST['gender'])) {
echo ("Sexe");
}
?>
</td>
<td>
<?php
if (isset($_POST['gender'])) {
echo ($_POST['gender']);
}
?>
</td>
</tr>
<tr>
<td>
<?php
if (isset($_POST['volume'])) {
echo ("Volumes");
}
?>
</td>
<td>
<?php
if (isset($_POST['volume'])) {
foreach ((array) $_POST['volume'] as $vol) {
echo ($vol . "<br/>");
}
}
?>
</td>
</tr>
<tr>
<td>
<?php
if (isset($_POST['comment'])) {
echo ("Commentaires");
}
?>
</td>
<td>
<?php
if (isset($_POST['comment'])) {
echo (htmlentities($_POST['comment']));
}
?>
</td>
</tr>
</table>
<?php
}
?>
et dans les tests de validation des champs du formulaire tu ajoute $valid=false quand il y a une erreur (avec le message d'erreur quoi)
exemple
<?php
if ((!isset($_POST['volume']) && isset($_POST['inscription']) && ($_POST['inscription']) <> "" ) || (isset($_POST['volume']) && sizeof($_POST['volume']) > 2 )) {
echo "<font color='#FF0000'>";
echo ("<strong>Erreur vous n'avez pas selectionné votre volume préféré de la trilogie du voyageur galactique; maximum deux choix possbiles</strong>");
$valid=false;
}
?>
et bien sur la première ligne du script c'est
<?php
$valid=true;
?>
@+
Re: formulaire et tableau
Posté : 10 nov. 2011, 13:15
par kalak
Je vous remercie beaucoup je devrais m'en sortir avec sa. Par contre je viens de m'apercevoir que enfaite je n'ai pas le droit d'utiliser de css pour mettre en forme le texte auriez vous une solution alors ?
Cordialement,
Re: formulaire et tableau
Posté : 10 nov. 2011, 15:27
par moogli
Par contre je viens de m'apercevoir que enfaite je n'ai pas le droit d'utiliser de css pour mettre en forme le texte auriez vous une solution alors ?
c'est quoi c'te consigne, tu va aussi le faire en assembleur ton site ?
css c'est la partie cosmétique d'un site oueb.
d'un coté php récupère les données, et génére du html qui les décrient et css fait en sort que cela soit beau a lire ^^
tu peux toujours faire un <p style="color: #abcdef0">texte </p> mais ça reste du css mis dans la balise directement ^^
@+
Re: formulaire et tableau
Posté : 10 nov. 2011, 17:56
par kalak
ah franchement merci ta solution pour le tableau sa fonctionne nikel, juste que j'ai un tout petit tableau tout vide qui s'affiche quand même dès que la page du formulaire s'ouvre et sa je comprend pas pourquoi.
Par contre je viens de m'apercevoir qu'il y avait un truc qui ne fonctionnait pas dans mon formulaire, c'est au niveau de champ password et retaper password.
voici le morceau de code qui pose un problème :
http://pastebin.com/WhbVpnch
Je m'explique il ne vérifie pas la longueur du mot de passe, ni si celui si correspond bien au deux même (password = retaper password), j'ai essayer de rajouter ceci par exemple :
if (isset($_POST['verif_pass']) && empty($_POST['verif_pass']) && isset($_POST['inscription']) && ($_POST['inscription']) <> "" && !isset($_POST['pass']) != !isset($_POST['verif_pass']))
mais cela ne fonctionne pas je ne comprend pas pourquoi.
voici mon code en entier :
http://pastebin.com/Va5HenAn
et encore merci de ton aide précieuse moogli.
Cordialement,
Re: formulaire et tableau
Posté : 11 nov. 2011, 13:11
par moogli
Oula c'est le merdier ta condition la
La différence en php c'est != pas <> ça c'est Sql
La fonction empty retourne vrai quand la variable est vide !
Si tu utilise empty pas besoin de isset car empty n'émet pas d'erreur quand la variable n'existe pas !
Attention avec empty si la variable == zéro elle va retourner vrai alors que tu devrais avoir faux!
Donc repense ton test et ça ira mieux
@+
Re: formulaire et tableau
Posté : 11 nov. 2011, 16:01
par kalak
effectivement je n'avais pas fait attention mais la condition était vraiment merdique j'ai modifier celle du password comme ceci :
if ((!isset($_POST['pass']) && isset($_POST['inscription']) && ($_POST['inscription']) != "" )|| (isset($_POST['pass']) && strlen($_POST['pass']) <8 ))
sa fonctionne nikel
par contre je n'y arrive pas avec celle de Retaper password, pourtant je procède pareil mais impossible de vérifier que les deux champs sont identiques. Voilà ce que j'ai fais et cela ne fonctionne pas :
if (!isset($_POST['verif_pass']) && isset($_POST['inscription']) && ($_POST['inscription']) != "" || (isset($_POST['pass']) != isset($_POST['verif_pass'])))
Pourquoi cela ne fonctionne pas comme sa ?
Cordialement
Re: formulaire et tableau
Posté : 11 nov. 2011, 19:10
par Cyrano
Pose-toi la question : que retourne isset() ? Quand tu auras répondu à ça, tu auras résolu ton problème

Re: formulaire et tableau
Posté : 11 nov. 2011, 20:17
par kalak
la fonction isset () renvoie false ... mais je ne comprend toujours pas

Re: formulaire et tableau
Posté : 11 nov. 2011, 20:28
par Cyrano
Elle retourne un booléen.
Maintenant, observe ce que tu as mis dans l'exemple qui ne fonctionne pas :
(isset($_POST['pass']) != isset($_POST['verif_pass']))
D'abord, au lieu de comparer le mot de passe avec la confirmation, tu compare leurs existences respectives. Si le premier est présent, isset retournera TRUE. Si le second est présent, isset retournera TRUE également, mais si le mot de passe est différent de la confirmation, rien ne le teste et donc rien ne retournera FALSE pour dire « Attention la confirmation n'est pas bonne».
Et donc, ce qu'il aurait fallu tester, c'est ... et je te laisse finir la phrase

Re: formulaire et tableau
Posté : 12 nov. 2011, 13:49
par kalak
il faut tester avec strcmp ? pour comparer les deux chaînes de caractères ?
J'ai fais cela : if (!isset($_POST['verif_pass']) && isset($_POST['inscription']) && ($_POST['inscription']) != "" || (!strcmp($_POST["pass"], $_POST["verif_pass"]) == 0))
mais sans succès encore...
je ne vois pas quoi d'autre utiliser.
Cordialement,