[PHP] Syntaxe

Fermé
Heliard Messages postés 5 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 28 avril 2010 - 27 avril 2010 à 16:05
Heliard Messages postés 5 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 28 avril 2010 - 27 avril 2010 à 16:59
Bonjour tout le monde, je suis plus ou moins débutant en PHP, ce qui fait que je n'ai pas encore tout les bons réflexes.

M'améliorant j'ai essayé d'économiser les lignes de codes avec une boucle for, mais au final je passe plus de temps à comprendre pourquoi j'ai : Parse error: syntax error, unexpected "quelque chose" à chaque fois qu'à faire mon site web...

Voici la dernière version du code qui me pose problème :

<?php

$tab1 = array("name", "surname", "adress", "postal_code", "city", "country", "email", "phone");
$tab2 = array("First name", "Last name", "Adress", "postal code", "City", "Country", "eMail", "Phone");

for($i=0; $i=8; $i++)
{
echo $tab2[$i];
echo " : ";

echo ("<input type =\"text\" name=\"".$tab1[$i]."\" value=\""if( isset($_SESSION[$tab1[$i]])){ echo $_SESSION[$tab1[$i]]; } "\"/>");

echo (($error[$i]==1)?"<font color=red>*</font>":"");
}
<input type="submit" value="Send" />
?>


Le problème se situe au niveau de l'input... je pense avoir régler la plus part des problèmes de syntaxes (parfois sans trop savoir pourquoi), mais le if ne passe toujours pas.

Voici en HTML ce que ça donnerait (ce code a été testé, il fonctionne) :

First name : <input type="text" name="first_name" value="<?php if(isset($_SESSION['first_name'])) echo $_SESSION['first_name']; ?>" /><?php echo (($error[1]==1)?"<font color=red>*</font>":""); ?><br />


J'espère que quelqu'un arrivera à résoudre mon petit problème, sinon ben je le avec ferai mon patté de code tout moche :(
A voir également:

4 réponses

jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
27 avril 2010 à 16:23
Tu devrais mettre ton if avant :
if( isset($_SESSION[$tab1[$i]])){
$tmp = $_SESSION[$tab1[$i]];
}else{
$tmp = '';
}

echo "<input type =\"text\" name=\"".$tab1[$i]."\" value=\"".$tmp."\"/>";
2
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
Modifié par jeangilles le 27/04/2010 à 16:09
echo ("<input type =\"text\" name=\"".$tab1[$i]."\" value=\""if( isset($_SESSION[$tab1[$i]])){ echo $_SESSION[$tab1[$i]]; } "\"/>"); 


Il doit te manquer un point pour concaténer la fin (j'ai rien pour développer en php ici, donc je peux pas vérifier ^^):

echo ("<input type =\"text\" name=\"".$tab1[$i]."\" value=\""if( isset($_SESSION[$tab1[$i]])){ echo $_SESSION[$tab1[$i]]; } ."\"/>");


Et puis, après relecture, ton histoire d'echos imbriqués, là, ca ne me dit rien qui vaille ... :O
0
Heliard Messages postés 5 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 28 avril 2010
27 avril 2010 à 16:20
Je confirme que ça ne fonctionne toujours pas.

Le problème c'est au niveau de la syntaxe, en ce moment par exemple le nom exact de mon erreur c'est :

Parse error: syntax error, unexpected T_IF

En gros il aime pas mon IF...

Pour ce qui est de l'echo imbriqué... c'est ma faute l'idée de viré le deuxième ne m'a même pas traversé l'esprit alors qu'il ne sert à rien théoriquement.....

Donc voici au dernière nouvelle la ligne de code :

echo ("<input type =\"text\" name=\"".$tab1[$i]."\" value=\""if( isset($_SESSION[$tab1[$i]])){ $_SESSION[$tab1[$i]]; }. "\"/>");
0
Heliard Messages postés 5 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 28 avril 2010
Modifié par Heliard le 27/04/2010 à 17:14
Merci beaucoup jeangilles, après avoir lu cette astuce, ça me parait en fait logique et inévitable.

J'ai corrigé des erreurs de syntaxe qui suivent voici le nouveau code :

<?php
$tab1 = array("name", "surname", "adress", "postal_code", "city", "country", "email", "phone");
$tab2 = array("First name", "Last name", "Adress", "postal code", "City", "Country", "eMail", "Phone");

for($i=0; $i<8; $i++)
{
echo $tab2[$i];
echo " : ";
if( isset($_SESSION[$tab1[$i]]))
{
$tmp = $_SESSION[$tab1[$i]];
}
else
{
$tmp = '';
}
echo "<input type =\"text\" name=\"".$tab1[$i]."\" value=\"".$tmp."\"/>";

$star .= ($error[$i]==1)? "<font color=red>*</font>":"";
echo $star;
echo '<br/>';
}
echo "<input type=\"submit\" value=\"Send\" />";

?>
0