erreur inattendue - parse error, unexpected T_ELSE

erreur inattendue - parse error, unexpected T_ELSE - PHP - Programmation

Marsh Posté le 04-02-2005 à 13:15:59    

bonjour à tous,  
 
Je travaille à l'elaboration d'un site d'apprentissage des langues étrangères :  
http://www.listenandlearn.org/
 
Je suis en train de réaliser le formulaire d'envoi en php mais je recupère un belle erreur :
 
http://www.listenandlearn.org/form.php
 
Parse error: parse error, unexpected T_ELSE in /usr/www/users/upstryb1/listenandlearn/form.php on line 104
 
Pourriez vous me donner un coup de main pour résoudre cette enigme ?

Reply

Marsh Posté le 04-02-2005 à 13:15:59   

Reply

Marsh Posté le 04-02-2005 à 13:38:49    

Il n'y a pas de specialistes php apparemment sur ce forum ....

Reply

Marsh Posté le 04-02-2005 à 13:41:56    

Vu le peu d'information que tu donnes, difficile de t'aider ...
 
Poste le source, ça ira mieux

Reply

Marsh Posté le 04-02-2005 à 13:44:59    

gecko9 a écrit :

Parse error: parse error, unexpected T_ELSE in /usr/www/users/upstryb1/listenandlearn/form.php on line 104


C'est juste une erreur de syntaxe donc tu devrais pouvoir la résoudre seul. Sinon met un bout de ton code

Reply

Marsh Posté le 04-02-2005 à 13:46:47    

ok :
 
le script Php
 
<?
 
 switch($_POST['Action']):
  case "save":
   
   $error = false;
   
   if (!$_POST['title']):
    $error_title = "Please select your title";
    $error = true;
   endif;
   
   if (!$_POST['firstname']):
    $error_firstname = "Please enter your firstname";
    $error = true;
   endif;
 
   if (!$_POST['surname']):
    $error_surname = "Please enter your surname";
    $error = true;
   endif;      
 
   if (!$_POST['address1']):
    $error_address = "Please enter the first line of your address";
    $error = true;
   endif;
 
   if (!$_POST['city']):
    $error_city = "Please enter your city";
    $error = true;
   endif;
 
   if (!$_POST['postcode']):
    $error_postcode = "Please enter your postcode";
    $error = true;
   endif;
 
   if (!$_POST['country']):
    $error_country = "Please select your country";
    $error = true;
   endif;
 
   if ((!$_POST['email']) || (strpos($_POST['email'], '@') == 0)):
    $error_email = "Please enter your email";
    $error = true;
   endif;
   
   if (!$_POST['telephone']):
    $error_telephone = "Please enter your telephone (landline). If you don't have a landline, please enter your mobile number in THIS field, or write 'NONE'";
    $error = true;
   endif;
   
   if (!$_POST['comments']):
    $error_comments = "Please enter the details of your enquiry";
    $error = true;
   endif;
 
 
  // send email
      mail("$_POST[email]", "Your Language Trainers Enquiry has been received",  
"Dear $_POST[firstname],\n\nThank you for your enquiry.\n  
 
 
--------------------------------------------------------------------------------  
Kind Regards
 
Guillaume Busetto
email: guillaume@listenandlearn.org
-------------------------------------------------------------------------------
 
Listen and learn
Brighton Media Centre
 
 
",  
 
"From: guillaume@listenandlearn.org\nX-Mailer: PHP/" . phpversion());
 
      mail("guillaume@listenandlearn.org", "Listen and learn Online Enquiry",  
"Name: $_POST[title] $_POST[firstname] $_POST[surname]\n
Organisation: $_POST[organisation]\n
Position: $_POST[position]\n
Address: $_POST[address1], $_POST[address2], $_POST[city], $_POST[county], $_POST[postcode], $_POST[country]\n
Website: $_POST[website]\n
Nature of Business: $_POST[nature_of_business]\n        
Phone (landline): $_POST[landline]\n
Phone (mobile): $_POST[mobile]\n
Fax: $_POST[fax]\n
Languages to learn: $_POST[languagestolearn]\n
Where did they hear about us: $_POST[refer]\n        
Comments: $_POST[comments]\n
 
--------------------------------------------------------------------------------
", "From: $_POST[email]\nX-Mailer: PHP/" . phpversion());
 
      redirect("confirmation.php" );            
       
   else:
   
    $msg = "<hr><b>*You have not entered all the required information*</b><hr>";
 
   endif; // if (!$error):
 
  break;
     
   endswitch;
 
 
?>
 
 
 
maintenant le formulaire dans le corps :
 
<form action="<?PHP echo $PHP_SELF; ?>" method="post" name="questionnaire">
              <table width="90%" border="0" cellspacing="0" cellpadding="1">
                <tr>  
                  <td> <table width="100%" border="0" cellspacing="0" cellpadding="3">
                  <tr class="generaltxt">  
                    <td width="47%" valign="middle"> <p class="generaltxt"><font color="#000000"><b>Title  
                        * <strong><? echo $error_title; ?></strong> </b></font></p></td>
                    <td width="53%"> <p> <span class="generaltxt"><font color="7f7978">  
                        <select name="title">
                          <option value="">Select</option>
                          <? // display all titles in globals.custom.php
                while (list ($key, $val) = each ($_TITLE)):
                 unset($selected);
                 if($val == $_POST['title']) $selected="selected";
                 echo "<option $selected>$val</option>\n";
                endwhile;
               ?>
                        </select>
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td width="47%" valign="middle"> <p class="generaltxt"><font color="#000000"><b>First  
                        name *<strong><? echo $error_firstname; ?></strong> </b></font></p></td>
                    <td width="53%"> <p> <span class="generaltxt"><font color="7f7978">  
                        <input type="text" name="firstname" size="25" maxlength="200" value="<? echo $_POST['firstname']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td width="47%" valign="middle"> <p class="generaltxt"><font color="#000000"><b>Surname  
                        * <strong><? echo $error_surname; ?></strong> </b></font></p></td>
                    <td width="53%"> <p> <span class="generaltxt"><font color="7f7978">  
                        <input type="text" name="surname" size="25" maxlength="200" value="<? echo $_POST['surname']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td width="47%" valign="middle"> <p class="generaltxt"><font color="#000000"><b>Address  
                        * <strong><? echo $error_address; ?></strong> </b></font></p></td>
                    <td width="53%"> <p> <span class="generaltxt"><font color="7f7978">  
                        <input name="address1" type="text" id="address1" size="25" value="<? echo $_POST['address1']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td valign="middle"> <p><font color="#000000"></font></p></td>
                    <td> <p> <span class="generaltxt"><font color="7f7978">  
                        <input name="address2" type="text" id="address2" size="25" value="<? echo $_POST['address2']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td width="47%" valign="middle"> <p class="generaltxt"><font color="#000000"><b>Town  
                        or City * <strong><? echo $error_city; ?></strong> </b></font></p></td>
                    <td width="53%"> <p> <span class="generaltxt"><font color="7f7978">  
                        <input type="text" name="city" size="25" maxlength="200" value="<? echo $_POST['city']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td width="47%" valign="middle"> <p class="generaltxt"><font color="#000000">County</font></p></td>
                    <td width="53%"> <p> <span class="generaltxt"><font color="7f7978">  
                        <input type="text" name="county" size="25" maxlength="200" value="<? echo $_POST['county']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td width="47%" valign="middle"> <p class="generaltxt"><font color="#000000"><b>Postcode  
                        * <strong><? echo $error_postcode; ?></strong> </b></font></p></td>
                    <td width="53%"> <p> <span class="generaltxt"><font color="7f7978">  
                        <input type="text" name="postcode" size="25" maxlength="200" value="<? echo $_POST['postcode']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td width="47%" valign="middle"> <p class="generaltxt"><font color="#000000"><b>Country*  
                        <strong><? echo $error_country; ?></strong> </b></font></p></td>
                    <td width="53%"> <p> <span class="generaltxt"><font color="7f7978">  
                        <select name="country">
                          <option value="">Select</option>
                          <? // display all titles in globals.custom.php
                while (list ($key, $val) = each ($_COUNTRY)):
                 unset($selected);
                 if($val == $_POST['country']) $selected="selected";
                 echo "<option $selected>$val</option>\n";
                endwhile;
               ?>
                        </select>
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td width="47%" valign="middle"> <p class="generaltxt"><font color="#000000"><b>e-mail*  
                        <strong><? echo $error_email; ?></strong> </b></font></p></td>
                    <td width="53%"> <p> <span class="generaltxt"><font color="7f7978">  
                        <input type="text" name="email" size="25" maxlength="200" value="<? echo $_POST['email']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td valign="middle"> <p class="generaltxt"><font color="#000000">Type  
                        of Business</font></p></td>
                    <td> <p> <span class="generaltxt"><font color="7f7978">  
                        <input type="text" name="nature_of_business" size="25" maxlength="200" value="<? echo $_POST['nature_of_business']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td width="47%" valign="middle"> <p class="generaltxt"><font color="#000000"><strong>Telephone  
                        (landline)*<br>
                        </strong> <em>include country and city code</em> <strong>  
                        <? echo $error_telephone; ?></strong> </font></p></td>
                    <td width="53%"> <p> <span class="generaltxt"><font color="7f7978">  
                        <input name="telephone" type="text" id="telephone" size="25" maxlength="200" value="<? echo $_POST['telephone']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td valign="middle"> <p class="generaltxt"><font color="#000000">Telephone  
                        (mobile)<strong><br>
                        </strong> <em>include country and city code</em></font></p></td>
                    <td> <p> <span class="generaltxt"><font color="7f7978">  
                        <input name="mobile" type="text" id="mobile" size="25" maxlength="200" value="<? echo $_POST['mobile']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td valign="middle"> <p class="generaltxt"><font color="#000000">Fax<strong><br>
                        </strong> <em>include country and city code</em><br>
                        </font> </p></td>
                    <td> <p> <span class="generaltxt"><font color="7f7978">  
                        <input name="fax" type="text" id="fax" size="25" maxlength="200" value="<? echo $_POST['fax']; ?>">
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td width="47%"> <hr> </td>
                    <td width="53%"> <hr> </td>
                  </tr>
                  <tr class="generaltxt">  
                    <td valign="middle" width="47%"> <p class="generaltxt"><font color="#000000"><strong>Comments*</strong>  
                        <strong><br>
                        <? echo $error_comments; ?></strong> </font></p></td>
                    <td width="53%"> <p> <span class="generaltxt"><font color="7f7978">  
                        <textarea name="comments" cols="30" rows="15"><? echo $_POST['comments']; ?></textarea>
                        </font></span></p></td>
                  </tr>
                  <tr class="generaltxt">  
                    <td valign="top">&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr class="generaltxt">  
                    <td colspan="2" valign="top"> <div align="right">  
                        <p class="generaltxt"><font color="7f7978">  
                          <input type="hidden" name="Action" value="save">
                          <span class="generaltxt">  
                          <input type="submit" name="Submit" value="send a message to listen and learn " class="button">
                          </span> </font></p>
                      </div></td>
                </table>
              </table>
            </form>

Reply

Marsh Posté le 04-02-2005 à 13:48:34    

Je pense que tu dois avoir quelque chose de la forme:
 

Code :
  1. if (...) {
  2. ...
  3. ...
  4. else


 
En oubliant l'accolade fermante du bloc de code du if, ou d'un de ses sous-blocs, le parseur finit par rencontrer un else alors qu'il est pas revenu au niveau du if et qu'il attendait soit l'accolade fermante du bloc du if, soit un autre morceau de code inclu dans le bloc du if.
 
EDIT:
 

Code :
  1. if (!$_POST['title']):
  2.     $error_title = "Please select your title";
  3.     $error = true;
  4.    endif;


 
Chelou ça oO


Message édité par KrisCool le 04-02-2005 à 13:51:18

---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 04-02-2005 à 13:51:39    

il manque un if, relis bien ton code

Reply

Marsh Posté le 04-02-2005 à 13:52:29    

Il manquerait pas un

Code :
  1. if (!$error):


avant ton

Code :
  1. // send email
  2.       mail("$_POST[email]", "Your Language Trainers Enquiry has been received",


Là tu as un else qui se ballade tout seul, sans if correspondant

Reply

Marsh Posté le 04-02-2005 à 13:52:36    

Kriscool a écrit :

Je pense que tu dois avoir quelque chose de la forme:
 

Code :
  1. if (...) {
  2. ...
  3. ...
  4. else


 
En oubliant l'accolade fermante du bloc de code du if, ou d'un de ses sous-blocs, le parseur finit par rencontrer un else alors qu'il est pas revenu au niveau du if et qu'il attendait soit l'accolade fermante du bloc du if, soit un autre morceau de code inclu dans le bloc du if.


 
les condition sont comprise dans un switch et je ne pense pas qu'il s'agisse d'un probleme d'accolades quelqconque, toutefois je vous remercie  pour les appendices de reponses deja postées :jap:

Reply

Marsh Posté le 04-02-2005 à 13:55:33    

Bon syntaxe alternative immonde, aucune accolade, des chaînes multilignes qui se balladent en plein milieu du code pour faire joli, non j'abandonne.


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 04-02-2005 à 13:55:33   

Reply

Marsh Posté le 04-02-2005 à 13:59:23    

dsls a écrit :

Il manquerait pas un

Code :
  1. if (!$error):


avant ton

Code :
  1. // send email
  2.       mail("$_POST[email]", "Your Language Trainers Enquiry has been received",


Là tu as un else qui se ballade tout seul, sans if correspondant


 :)  :hello:  la classe, effectivement il faut tester à la fin du switch si il n'a pas d'erreur dans ce cas le programme peut derouler .
 
merci pour ce deboggage efficace et modeste  :jap:

Reply

Marsh Posté le 04-02-2005 à 14:01:45    

[solved by dsls] merci à Kriscool pour les compliments

Reply

Marsh Posté le 04-02-2005 à 14:40:35    

gecko9 a écrit :

[solved by dsls] merci à Kriscool pour les compliments


 
Hum, désolé je me suis un peu énervé tout seul devant le code.
C'est juste que cette syntaxe est assez inhabituelle, et que tu as posté ton code en dehors d'une balise [code] et qu'il était pas évident de distinguer l'origine de l'erreur.
 
Erreur qui est justement simple à détecter sur un code bien organisé/identé. Celà dit désolé pour cette expression de mauvaise humeur  :hello:


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 04-02-2005 à 15:41:33    

Kriscool a écrit :

Hum, désolé je me suis un peu énervé tout seul devant le code.
C'est juste que cette syntaxe est assez inhabituelle, et que tu as posté ton code en dehors d'une balise [code] et qu'il était pas évident de distinguer l'origine de l'erreur.
 
Erreur qui est justement simple à détecter sur un code bien organisé/identé. Celà dit désolé pour cette expression de mauvaise humeur  :hello:


 
Je ne suis pas specialement un habitué des forums, je tiens donc à m'excuser pour mon post sauvage   :pt1cable: , le code soit dit en passant n'est pas de moi (le mien ne fonctionnait pas), je suis plus habitué à verifier des petits scripts php avec Javascript.
Merci quand meme pour ton aide Kriscool, la prochaine fois je ferais plus attention à ma mise en page et la structuration de mon script .

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed