Page 1 sur 1

problème de synthaxe que je n'arrive pas a régler

Posté : 02 juin 2009, 14:34
par hannao
bonjour tous le monde,


voilà, je fais des exercices en php et je me retrouve devant une erreur de syntaxe apparemment que je n'arrive pas à comprendre
voilà mon code il est très simple, le sujet est une personne qui va faire le plein de sa voiture donc j'essaie de faire toutes les étapes
<html>
<head>
  <title>Carburant</title>
<head>
<body>Merci d'avoir choisi vroum vroum <br/>
<form action="TP1.php" method="POST"/>
choisissez votre carburant : <br/>
Gazole, SuperSP ou GPL<br/>
<input type='text' name='choix' size=20 value='' /><br/>
<input type='submit' value='valider' />
</form>

<?php

  //reaction lorsqu'il y a un utilisateur
  if ((isset($_POST['choix'])) && ($_POST['choix']!="")){
    $choix = $_POST['choix'];
    echo 'vous avez choisi : '.$choix.'<br/>';
    echo 'entrez votre numéro de carte bleue';
    echo "<input type='text' name='carte' size=20 value='' />";
    }
    elseif { 
      while((isset($_POST['carte'])) && ($_POST['carte']!="good")){
        echo'entrez votre code';
        } 
    }
?>
</body>
</html>
Voilà ce code me donne une erreur
Parse error: parse error, expecting `'('' in C:\wamp\www\TutoPHPDeb\TP1.php on line 22

j'ai bien chercher en ligne 22 j'ai juste le debut du elseif {

Avant j'ai bien tous les ; pour finaliser les lignes, enfin voilà ce doit être surement très simple mais j'avoue que je sèche (en plus il fait chaud, lol)

Posté : 02 juin 2009, 14:39
par albat
remplace ton elseif par un else

Posté : 02 juin 2009, 15:01
par Ryle
Tout dépend de ce que tu veux faire, mais à priori, le elseif était bon, c'est juste la condition qui manque et qui apparait dans un while où elle n'a à mon avis pas sa place :
    elseif ((isset($_POST['carte'])) && ($_POST['carte']!="good")){ 
        echo'entrez votre code'; 
    } 
Sans ça, si jamais le test de ton while est vrai, cela va engendrer une boucle sans fin qui va afficher "entrez votre code" tant qu'il y aura des ressources sur le serveur :)

Posté : 02 juin 2009, 15:45
par hannao
merci Ryle effectivement je voulais utiliser ce elseif et je pensais utiliser un while pour dire tant que le mot de passe n'est pas le bon écrire entrer le mot de passe.
Je vais essayer de ce pas ta solution.

Posté : 02 juin 2009, 17:21
par Ryle
En fait, le while est effectivement une boucle qui va tourner tant que la condition n'est pas respectée, mais tu ne spécifies pas d'intervention de l'utilisateur pour modifier sa "carte", ni de changement de valeur pour les variables dans ta boucle... du coup php risquait de tourner longtemps :)

La notion de "à chaque fois que l'utilisateur fait appel au script" n'est pas à gérer avec php, elle est implicite du fait de l'appel à ta page. Du coup, tout ce qui va t'intéresser avec php, c'est lorsque le script va s'exécuter, SI tu as bien un "choix" de spécifier, sinon si tu n'as pas de code de spécifié, alors afficher le message... et là, pas besoin de while :)

Posté : 02 juin 2009, 19:03
par hannao
merci pour ces précision je comprends mieux maintenant l'inutilité dans ce cas de mon while