[php] Parse error: syntax error, unexpected T [Résolu/Fermé]

fabrice11901 790 Messages postés dimanche 31 juillet 2005Date d'inscription 12 juillet 2007 Dernière intervention - 17 juin 2006 à 15:20 - Dernière réponse :  tibo
- 19 mai 2014 à 15:54
Bonjour
Aujourd'hui j'arrête pas de vous embêté, mais je suis décidé pour avancer dans mon site...
Voila j'ai fais un script pour permettre au membre de retrouver son mot de passe mais j'obtient le message :
Parse error: syntax error, unexpected T_ELSE à la ligne 12 pouvez-vous m'aider ça fais plus d'une heure que je tourne mon code dans tous les sens alors que ça doit pas e^tre grand chose !
<? $pseudo=$_POST['pseudo'];?> 
<? $dbc = @mysql_connect ("localhost", "zone_zone", "***");

if(!mysql_errno($dbc)) {
 mysql_select_db("zone_bdd");
  $query = "SELECT * FROM v2 WHERE pseudo='$pseudo'";
  $result = mysql_query($query);
   if(mysql_num_rows($result)>0){

    while ($donnees = mysql_fetch_array($result) )

$pseudo_membre=$donnees['pseudo']; $passe_membre=$donnees['passe']; $to=$donnees['email'];
 { mail($to, "Zone-mobile.net : votre mot de passe", "Bonjour". 

"From:contact@zone-mobile.net\r\nReply-To:contact@zone-mobile.net"); } else { echo "Désolé, mais ce pseudo n'existe 

pas dans la base de donnée. Vérifiez que vous ne vous êtes pas trompé en le tapant.";} } } mysql_close(); ?> <html> 

<a href="http://www.zone-mobile.net/accueil.php">Revenir à l'accueil</A> </html>


merci à vous après je vous embête plus :)
Afficher la suite 
790Messages postés dimanche 31 juillet 2005Date d'inscription 12 juillet 2007 Dernière intervention

16 réponses

Thom@s 3434 Messages postés mardi 4 mars 2003Date d'inscriptionModérateurStatut 27 août 2010 Dernière intervention - 17 juin 2006 à 19:14
+6
Utile
Salut !

La structure correcte pour toutes les structures PHP est (par exemple if, ou while) :
if (condition) {
	actions à exécuter
}

1) Il faut toujours utiliser les accolades, sinon on s'embrouille très vite.

2) Il ne faut, bien entendu, rien mettre entre la parenthèse fermante et l'accolade ouvrante (c'est de là que vient ton erreur).

3) Il faut respecter l'indentation et la mise en page ci-dessus (c'est vivement recommandé), sinon, risque de s'embrouiller aussi (ou une variante, avec l'accolade à la ligne).

4) J'ai donc mis en gras le passage fautif, qu'il faut supprimer.

<? $pseudo=$_POST['pseudo'];?> 
<? $dbc = @mysql_connect ("localhost", "zone_zone", "***");

if(!mysql_errno($dbc)) {
 mysql_select_db("zone_bdd");
  $query = "SELECT * FROM v2 WHERE pseudo='$pseudo'";
  $result = mysql_query($query);
   if(mysql_num_rows($result)>0){

    while ($donnees = mysql_fetch_array($result) )
$pseudo_membre=$donnees['pseudo']; $passe_membre=$donnees['passe']; $to=$donnees['email'];
 { mail($to, "Zone-mobile.net : votre mot de passe", "Bonjour". 

"From:contact@zone-mobile.net\r\nReply-To:contact@zone-mobile.net"); } else { echo "Désolé, mais ce pseudo n'existe 

pas dans la base de donnée. Vérifiez que vous ne vous êtes pas trompé en le tapant.";} } } mysql_close(); ?> <html> 

<a href="http://www.zone-mobile.net/accueil.php">Revenir à l'accueil</A> </html>

A+
Cette réponse vous a-t-elle aidé ?  
fabrice11901 790 Messages postés dimanche 31 juillet 2005Date d'inscription 12 juillet 2007 Dernière intervention - 17 juin 2006 à 19:32
0
Utile
1
salut
chez moi rien n'arrive en gras et en plus je suis mal-voyant donc j'ai du mal.
Peux-tu me donner le code tel quel que tu le verai fonctionner? Afin que je regarde ce qui change?
merci
Thom@s 3434 Messages postés mardi 4 mars 2003Date d'inscriptionModérateurStatut 27 août 2010 Dernière intervention - 17 juin 2006 à 20:00
Salut !

Voilà donc le code retouché :
<? $pseudo=$_POST['pseudo'];?> 
<? $dbc = @mysql_connect ("localhost", "zone_zone", "***");

if(!mysql_errno($dbc)) {
      mysql_select_db("zone_bdd");
      $query = "SELECT * FROM v2 WHERE pseudo='$pseudo'";
      $result = mysql_query($query);

      if(mysql_num_rows($result)>0) {
            while ($donnees = mysql_fetch_array($result) ) {
                 $pseudo_membre=$donnees['pseudo'];
                 $passe_membre=$donnees['passe'];
                 $to=$donnees['email'];
                  mail($to, "Zone-mobile.net : votre mot de passe", "Bonjour".
"From:contact@zone-mobile.net\r\nReply-To:contact@zone-mobile.net");
            }
      }
      else {
            echo "Désolé, mais ce pseudo n'existe pas dans la base de donnée. Vérifiez que vous ne vous êtes pas trompé en le tapant.";
      }
}
mysql_close(); ?> <html> 

<a href="http://www.zone-mobile.net/accueil.php">Revenir à l'accueil</A> </html>

Bon courage !
A+ :-)
fabrice11901 790 Messages postés dimanche 31 juillet 2005Date d'inscription 12 juillet 2007 Dernière intervention - 17 juin 2006 à 20:17
0
Utile
1
re
merci c'est bon.
En fait c'était la deuxième { qui était mal placée non?

par contre j'ai fais encore un autre script, et j'ai exactement la même erreur parce error... que pour le password oublié.
Mais c'est encore la même histoire je me perd avec les {
dis moi ce que tu en penses :

<? if ( isset( $_SESSION['pseudo'] ) )
 $dbc = @mysql_connect ("localhost", "zone_zone", "****");

if(!mysql_errno($dbc)) {
  mysql_select_db("zone_bdd"); 
$query = "SELECT * FROM v2 WHERE
pseudo='$pseudo'";
$result = mysql_query($query);
    while ($donnees = mysql_fetch_array($result) ) {  {
<html> <strong><center> Voici vos informations</center></strong> <br> Mot de passe actuel :<? echo $donnees['passe'];?> <br> Adresse e-mail actuelle :<? echo $donnees['email'];?> <br> <br> 

 </html> <? }else { echo "ce n'est pas bon, il faut être identifié"; }} mysql_close();?>
cela doit enir de l'emplacement d'une { mais la quelle !
merci beaucoup (t'inquiète pas, c'est pas à tous les scripts que je fais des fotes ! (en plus ce qui m'énerve c'est que je fais toujours des fotes dans les script tout simple alors que les compliqués, ça marche du premier coup !)
merci 


Thom@s 3434 Messages postés mardi 4 mars 2003Date d'inscriptionModérateurStatut 27 août 2010 Dernière intervention - 18 juin 2006 à 09:40
Salut !

Non, pour le script précédent, ça venait du fait que tu avais mis des instructions entre ) et {
Autrement dit if(condition) ICI { code }
(Là où j'ai mis "ICI", il ne faut rien mettre ;-)

Dans ce script-là :
1) Après le while, tu avais mis 2 accolades ouvrantes et 2 fermantes de suite, alors qu'il n'en faut qu'une.

2) La structure WHILE ne marque que juste après un if.
Ici, elle est juste après un while.
Il faut donc refermer l'accolade du if avant le else.

Le schéma est donc ici forcément celui-ci :
if(...) {
    while(...) { ... }
}
else {
   ...
}

(On a d'abord le if, dans le if on a le while, on ferme le if, et on met le else)

3) Juste après l'accolade ouvrante du WHILE, tu avais oublié de fermer la balise "php" (?>) pour afficher le texte.

<? if ( isset( $_SESSION['pseudo'] ) )
 $dbc = @mysql_connect ("localhost", "zone_zone", "****");

if(!mysql_errno($dbc)) {
     mysql_select_db("zone_bdd"); 
     $query = "SELECT * FROM v2 WHERE pseudo='$pseudo'";
     $result = mysql_query($query);
     while ($donnees = mysql_fetch_array($result) ) {
          ?> <html> <strong><center> Voici vos informations</center></strong> <br> Mot de passe actuel :<? echo $donnees['passe'];?> <br> Adresse e-mail actuelle :<? echo $donnees['email'];?> <br> <br> 

 </html> <?
     }
}
else { 
     echo "ce n'est pas bon, il faut être identifié";
}
mysql_close();?>

A+ :-)
fabrice11901 790 Messages postés dimanche 31 juillet 2005Date d'inscription 12 juillet 2007 Dernière intervention - 18 juin 2006 à 09:57
0
Utile
1
salut
c'est bon j'avais trouvé la solus en effet il faut jamais mettre d'instructions entre ) { sinon ça marche pas.
Merci à toi
A+
Thom@s 3434 Messages postés mardi 4 mars 2003Date d'inscriptionModérateurStatut 27 août 2010 Dernière intervention - 18 juin 2006 à 09:59
De rien :-)

Au fait, c'est quoi l'adresse de ton site ? ;-)

A+
fabrice11901 790 Messages postés dimanche 31 juillet 2005Date d'inscription 12 juillet 2007 Dernière intervention - 18 juin 2006 à 10:07
0
Utile
1
re
mon site c
http://www.zone-mobile.net
c'est pour celqa que j'ai fais tous ces scripts, c'est pour changer mon espace membre actuel qui est un peu "classique"
et là j'essaye de faire un .htaccess ta des infos là-dessus toi?
Thom@s 3434 Messages postés mardi 4 mars 2003Date d'inscriptionModérateurStatut 27 août 2010 Dernière intervention - 19 juin 2006 à 14:40
Salut !

Pour les .htaccess, dans un premier temps :
apacht
:-)

A+
fabrice11901 790 Messages postés dimanche 31 juillet 2005Date d'inscription 12 juillet 2007 Dernière intervention - 19 juin 2006 à 15:25
0
Utile
Salut
Oui c'est bon j'avais trouvé l'info bon j'ai galéré un petit moment mais bon...
Par contre peux-tu me conseiller sur le style de mon site stp?
http://www.zone-mobile.net
0
Utile
Bonjour, j'ai un problème similaire... Ligne 37: je veux absolument mettre le ELSE (c'est à dire queles "tests" au-dessus ont été réussis) et que le mail soit envoyé.

<?
include("include/header.php");
include("include/config.php");
$numeros = $_POST["numeros"];
$sourcesinfo = $_POST["sourcesinfo"];
$autresmoyensdinfo = $_POST["autresmoyensdinfo"];
$frequence = $_POST["frequence"];
$lecture = $_POST["lecture"];
$nouvellesasso = $_POST["nouvellesassos"];
$nouvellesprojets = $_POST["nouvellesprojets"];
$nouvellesET = $_POST["nouvellesET"];
$nouvellesES = $_POST["nouvellesES"];
$thematiques = $_POST["thematiques"];
$reactions = $_POST["reactions"];
$nouvellesrubriques = $_POST["nouvellesrubriques"];
$suggestionsetdivers = $_POST["suggestionsetdivers"];
$age = $_POST["age"];
$sonmail = $_POST["sonmail"];

if(empty($sonmail)) 
{ print '<center>Vous n\'avez pas saisi votre adresse email !<br>'; }	
{ echo '<p align="center"><a href="javascript:history.back()">Retour</a>'; include("include/footer.php"); exit; }
 
$sonmail = $_POST['sonmail'];
$copie = $_POST["copie"];
$point = strpos($sonmail,".");
$arobas = strpos($sonmail,"@");

if($point == '')
{ echo '<center>Votre adresse email est invalide.<br>'; }	
{ echo '<p align="center"><a href="javascript:history.back()">Retour</a>'; include("include/footer.php"); }

if($arobas == '')
{ echo '<center>Votre adresse email est invalide.<br>'; } 
{ echo '<p align="center"><a href="javascript:history.back()">Retour</a>'; include("include/footer.php"); exit; }

else { }
echo '<center>Merci pour votre participation\, à bientôt. L\'équipe PRSF <a href="http://www.prsf.org">Retour au site</a>';
{ 
mail("$votremail","$sujet","$m2","from: $votremail"); 
}
include("include/footer.php");
?>



Merci d'avance !
sitexw 9 Messages postés mercredi 15 novembre 2006Date d'inscription 30 avril 2017 Dernière intervention - 2 avril 2008 à 15:19
0
Utile
voila moi aussi g le méme problem

mon code :

----------------------------------------------------------------------------------------------------------


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


<?php

$COOKIE_USER = $_COOKIE['USER'];


if (isset($COOKIE_USER)) {
{

echo "<meta http-equiv='refresh' content='0;url=connect-verif-pass-oui-2.php'>";

}
else
{



}


?>



<title>Band haut</title>
</head>
<body
style="background-image: url(images/fond-band-haut.gif);">





<div style="position: absolute; z-index: 5; top: 10px; right: 0px;">

<form method="post" action="connection/connect-verif-pass.php" name="pass">

<table
style="font-family: Arial; width: 100%; height: 100%; text-align: left; margin-left: auto; margin-right: auto;"
border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 100%;" colspan="1" rowspan="3"></td>
<td>Pseudo :</td>
<td style="text-align: right; width: 200px;"><input
name="USER"></td>
</tr>
<tr>
<td>Pass :</td>
<td style="text-align: right; width: 300px;"><input
name="PW" type="password"></td>
</tr>
<tr>
<td style="text-align: right;" colspan="2"
rowspan="1"><input name="123" value="Connection"
onclick="Login()" type="submit"></td>
</tr>
<tr>
<td style="height: 10px;"></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>

</form>

</div>




<div style="position: absolute; z-index: 2; top: 0px; right: 0px;">

<img style="width: 264px; height: 196px;" alt="" src="images/fon-form-connect.gif">


</div>



</body>
</html>

---------------------------------------------------------------------------------------------------------

merci de m'aider
0
Utile
2
bonjour
j'ai aussi le meme message d'erreure, unexpected.....$end
quelqu'un pourrait il m'aider svp,

ci dessous mon code:

<?if( $sg == 'banner' ):?>
<style type="text/css">
<!--
.style1 {color: #800000}
-->
</style>

<br />
<table cellpadding="0" cellspacing="0" style="margin:0 auto">
<tr>
<td style="font-size:11px;color:#999;font-family:Tahoma,Arial,Verdana;line-height:16px;text-align:center;">Designed by:</td>
</tr>
<tr>
<td>
<div style="background:transparent url(templates/<?php echo $this->template ?>/images/sg_background.gif) no-repeat;width:82px;height:16px;font-size:11px;color:#999;font-family:Tahoma,Arial,Verdana;padding:0 0 0 28px;line-height:16px;text-align:center;">
<div align="left"><a href="http://www.gaumar.com/" style="text-decoration:none; color: #800000; font-weight: bold;">Gaumar 2010 </a>
</div>
</div>
</td>
</tr>
</table>
<?else:?>
<?php echo $mainframe->getCfg('sitename') ;?>
<div align="center"><a href="http://www.gaumar.com/" target="_blank" class="sgfooter style1"><strong> © Copyright Gaumar 2010</strong></a> </div>
Tout simplement que avec les dernieres version de php, un espace est requis entre la balise ouvrante de <?php et n'importe quel code derriere. sinon il genere une erreure de syntaxe
Stanislas Poisson 453 Messages postés samedi 1 décembre 2012Date d'inscription 26 octobre 2017 Dernière intervention - 14 déc. 2012 à 11:56
Quelle beau déterrage. Je pense que depuis le 13 août 2010, il est passé a autre chose ou a trouver la solution.
0
Utile
bonjour j'ai le même message a la C.. tout marche nickel en local ... message erreur
Parse error: syntax error, unexpected '{' in /home/.../.../www/lokisalle/inc/menu.inc.php on line 1

et mon code

<?php
if(utilisateur_est_connecte_et_admin())
{

echo"<a id='home' href='index.php'><img src='images/icon-accueil.png'></a>";
echo"<a id='gestion' href='gestion.php'>gestion</a>";
echo"<a id='reservation' href='reservation.php'>reservation</a>";
echo"<a id='recherche' href='recherche.php'>recherche</a>";
echo"<a id='profil' href='profil.php'>profil</a>";
echo"<a id='panier' href='panier.php'>panier</a>";
echo"<a id='deconnection' href='index.php?action=deconnexion'>deconnection</a>";

}

elseif(utilisateur_est_connecte())
{

echo"<a id='home' href='index.php'><img src='images/icon-accueil.png'></a>";
echo"<a id='reservation' href='reservation.php'>reservation</a>";
echo"<a id='recherche' href='recherche.php'>recherche</a>";
echo"<a id='profil' href='profil.php'>profil</a>";
echo"<a id='panier' href='panier.php'>panier</a>";
echo"<a id='deconnection' href='index.php?action=deconnexion'>deconnection</a>";

}

else
{

echo"<a id='home' href='index.php'><img src='images/icon-accueil.png'></a>";
echo"<a id='inscription' href='/lokisalle/inscription.php'>inscription</a>";
echo"<a id='reservation' href='reservation.php'>reservation</a>";
echo"<a id='recherche' href='recherche.php'>recherche</a>";

}

?>

voila je vois pas d'erreur a moins que je sois aveugle jai tout retourner impossible de trouver merci de votre aide