[PHP] Syntaxe

Heliard Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Heliard Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   186
 
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   Statut Membre Dernière intervention   186
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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