[Résolu] Mauvaise syntaxe php?
Forum Programmation : [Résolu] Mauvaise syntaxe php?
Lire la meilleure réponse, apportée par SiM07.
Slt, je pense que je vais mal coder ma page parce que je fais un formulaire et celon ce que choisit l'utilisateur, ça doit renvoyer sur un tableau diférent (1 choix, 2 possibilités) et le problème est que les deux tableau s'affiche en cochant n'importe quel choix, comment ça se fait, où est l'erreur svp?
Je vous montre mon code:
1ère page (remplissage du formulaire pour l'emreunt):
Code :
|
2ème page (la récupération et tratement):
Code :
|
print_r($_POST); permet de facilement voir tous les élements du tableau $_POST. tu peux effectuer des print_r sur tout quasiment, c'est bien pour visualiser une succession de tableau imbriqué par exemple. (tableau ou objet)
error_reporting(E_ALL); permet d'afficher tous les messages d'erreur. Souvent les configuration PHP sont configurées pour n'afficher qu'au maximum les Warning.
Un T_NOTICE c'est par exemple ceci :
Code :
|
$b n'a jamais été initialisé et tu fais un test dessus ... pas bon ! tu auras dans ce cas un message d'erreur.
Sur un site en production, il est bon de passer error_reporting(0); afin de n'afficher aucun message d'erreur.
Au passage, si ton sujet est résolu, merci de le passer en tant que tel en cliquant sur la coupe (en haut à droite de tous les messages) du message qui t'a le plus aidé.
up svp
Répondre à absot77
<? (if $remboursement == "1" ) { ?>
par
<? if ($remboursement == 1 ) { ?>
et
$remboursement=$_POST["remboursement"];
par
$remboursement=$_POST['remboursement'];
sinon fait un for each($_POST) pour voir ce que retourne tout tes $post
Je viens de le faire et ça me met toujours les deux tableau...
Tout a l'air bon pourtant?
Répondre à absot77
En fait c'est plutôt $remboursement === "1", j'ai peur que le == "1" fasse comme un test d'existence de la variable.
Répondre à SiM07
Ca ne change toujours rien..
Répondre à absot77
En meêm temps, c'est normal qu'il est 2 tableaux ... Je suppose donc que le problème c'est qu'il en aurait 3. Ce tableau
Code :
|
s'affiche systématiquement vu qu'il est dans aucun test.
Répondre à SiM07
Oui en tout, il y a 3 tableaux mais moi je n'en voudrais que deux, le premier étant le récapitulatif des choix de l'utilisateur, il y est tout le temps, après il reste soit le 2ème ou le 3ème qui doit s'afficher en fonction du type de remboursement ou versement..
Répondre à absot77
tu peux mettre la ligne suivante dans ton code :
echo "<pre>";print_r($_POST);echo"</pre>";
et coller ici le contenu.
Ajoute également en début de page
error_reporting(E_ALL);
regarde si il y a des messages d'erreurs en plus (des notices) et colle les ici.
Répondre à SiM07
J'ai eu ça:
";print_r($_POST);echo""; ?>
Il ne s'est rien affiché pour les messages d'erreur..
Répondre à absot77
ah
c'était du PHP hein
Code :
|
Mais bon, plus je regarde ton code et plus je me demande si le problème ne serait juste pas au niveau des accolades. As tu bien mis en forme ton code pour bien voir comment son imbriqué les blocs de code ?
Répondre à SiM07
Ca me met ça:
Array
(
[montant] => 1000
[taux] => 5
[remboursement] => 2
[jour] => 8
[mois] => 4
[annee] => 1959
[duree] => 6
[type_duree] => 1
[periodicite] => 1
)
Pourquoi parfois quand je mets ces balises "<? ?>", ça ne m'affiche rien ou ça me met ce qu'il y a ou quand je mets "<?php ?>" soit ça me met une erreur, soit ça ne m'affiche rien ou ça m'affiche?
Pour obtenir le résultat que j'ai mis au dessus, j'ai juste rajouté "php" après "<?"...
Oui je pense que mes accolades sont bien mises..
Répondre à absot77
La balise d'ouverture est <?php et non <?. Il est préférable de ne jamais utilisé <? tout comme <?= (<?php echo "toto"; ?> == <?="toto"?>
Rhaaa, remplace :
Code :
|
par
[code]<?php if($remboursement == "1" ) { ?>
Répondre à SiM07
C'est bon ça fonctionne comme je veux..
Pourquoi tu m'as fais mettre " error_reporting(E_ALL); " et " echo "<pre>";print_r($_POST);echo"</pre>"; " ?
Faut que je m'entraîne en php moi..
Merci
Répondre à absot77
<pre> ne sert qu'à la mise en forme.
print_r($_POST); permet de facilement voir tous les élements du tableau $_POST. tu peux effectuer des print_r sur tout quasiment, c'est bien pour visualiser une succession de tableau imbriqué par exemple. (tableau ou objet)
error_reporting(E_ALL); permet d'afficher tous les messages d'erreur. Souvent les configuration PHP sont configurées pour n'afficher qu'au maximum les Warning.
Un T_NOTICE c'est par exemple ceci :
Code :
|
$b n'a jamais été initialisé et tu fais un test dessus ... pas bon ! tu auras dans ce cas un message d'erreur.
Sur un site en production, il est bon de passer error_reporting(0); afin de n'afficher aucun message d'erreur.
Au passage, si ton sujet est résolu, merci de le passer en tant que tel en cliquant sur la coupe (en haut à droite de tous les messages) du message qui t'a le plus aidé.
Message édité par SiM07 le 09-02-2009 à 19:47:07
Répondre à SiM07
| SiM07 a écrit : La balise d'ouverture est <?php et non <?. Il est préférable de ne jamais utilisé <? tout comme <?= (<?php echo "toto"; ?> == <?="toto"?>
|
hey, c'est ce que j'ai dit dès mon premier post!!
absot qu'as tu modifié au final pour que cela fonctionne chez toi?!
Webmaster, rentabilisez votre trafic : http://www.dream-shop.fr/affiliation 28% de commission !
Répondre à okinou
" <? ?> " en " <?php ?> ", " <?php if($remboursement == "1" ) { ?> "...
Erreur bête..
Répondre à absot77
Il y a 290 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
