OVH Cloud OVH Cloud

Probleme variab le _POST dynamique

3 réponses
Avatar
yokho06
bonjours, j ai un leger probleme mais je vois comment m y prendre.

En faite j ai coder un petit script pour un ajout de tuto

au depart je demande le titre et le nombre d'etape necessaire.

en prenant l exmple que j ai choisit 4 etapes
la seconde page affichera
etape 1 : <textarea>
etape 2 : <textarea>
etape 3 : <textarea>
etape 4 : <textarea>

le name de chaque textarea et sous cette forme name="texte$i" ou i et
une variable passer dans un boucle for qui s'incremente de 1 jusqu a la
limite d étape
soit : texte1, texte2 ...

sur la 3 eme page je cherche a afficher le contenue de chaque textarea
donc pour ca j ai penser a reprendre la meme syntaxe.


for ($i=0; $i < $etape+1; $i++) {
echo $_POST['texte$i'];
echo "<br />";
}


$etape et bien sur le nombre d'etape (j'ajoute+1 car je veut voire
afficher etape 1 pas etape 0)

helas ca marche pas.
quelqu un verai comment faire ?
Merci

3 réponses

Avatar
Daniel Dupont

le name de chaque textarea et sous cette forme name="texte$i" ou i et une variable passer dans un boucle for qui s'incremente de 1 jusqu a la limite d étape
soit : texte1, texte2 ...

[...]

for ($i=0; $i < $etape+1; $i++) {
echo $_POST['texte$i'];
echo "<br />";
}

$etape et bien sur le nombre d'etape (j'ajoute+1 car je veut voire afficher etape 1 pas etape 0)


Les variables ne sont pas interprétées lorsqu'elles sont entre simple quote.

D'autre part, lors du premier premier passage dans votre boucle for $i
vaut 0 et pas 1 alors que vous précisez que les noms des textarea
commence à 'texte1'.

Je préconise donc :

for( $i=1 ; $i<$etape+1; $i++ ) {
echo $_POST["texte$i"];
echo '<br />';
}

A+

--
Daniel

Avatar
CrazyCat
yokho06 wrote:
for ($i=0; $i < $etape+1; $i++) {
echo $_POST['texte$i'];
echo "<br />";
}


Première possibilité:
rajouter quelque chose du genre:
$thiset = "texte".$i
echo $_POST[thiset];

Sinon, générer plus proprement tes variables en les nommant texte[1],
texte[2], ...
et tu peux ensuite faire:
$texte = $_POST['texte'];
for ($i = 0; $i < count($texte); $i++) {
echo $texte[$i]."<br />";
}


--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net

Avatar
bruno modulix
yokho06 wrote:
bonjours, j ai un leger probleme mais je vois comment m y prendre.

(snip)


le name de chaque textarea et sous cette forme name="texte$i" ou i et
une variable passer dans un boucle for qui s'incremente de 1 jusqu a la
limite d étape
soit : texte1, texte2 ...
(snip)


for ($i=0; $i < $etape+1; $i++) {
echo $_POST['texte$i'];
^ ^


echo $_POST["texte$i"];

Pour que la substitution de variables ait lieu, il faut que la chaine
soit entre doubles quotes.

Par ailleurs, d'une manière générale, j'aurais tendance à éviter
d'utiliser directement ce qui vient d'un utilisateur. Dans le cas d'un
simple echo, je ne suis pas sûr qu'il y ait des risques majeurs en
termes de sécurité, mais bon... nettoyer systématiquement toute entrée
utilisateur avant utilisation n'est pas forcément une mauvaise habitude.

helas ca marche pas.


<hs>
'ne marche pas' n'est pas une description suffisante d'un problème.
Décris ce que tu pensais obtenir (bon, là on devine sans trop d'effort
!-), *et* ce que tu obtiens effectivement (message d'erreur, warning,
comportement inattendu quelqu'il soit).
</hs>


--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"