Page 1 sur 1

Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 12:13
par niklos0
Bonjour,

J'ai un petit problème de parse error dans mon code et j'ai beau chercher, je ne comprend pas où est l'erreur...

Voici le code:
<?php session_start(); //on initialise la session ?>
<?php require_once('Connections/ma_connection.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- InstanceBegin template="/Templates/espace_membre.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Document sans titre</title>
<!-- InstanceEndEditable -->
<link href="css/mac.css" rel="stylesheet" type="text/css" />
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
</head>

<body>
<div  id="topDiv"></div>
<!-- InstanceBeginEditable name="EditNav" -->
<div  id="navigation"> 
  <!--debut navigation --> 
</div>
<!--fin navigation --> 
<!-- InstanceEndEditable -->
<div id="outerWrapper2"><!--debut  outerWrapper2 -->
  <div  id="contentWrapper2"><!-- debut contentWrapper2 --><!-- InstanceBeginEditable name="EditColonneGauche" -->
    <div id="leftColumn1"> 
      <!--debut  gauche --> 
    </div>
    <!--fin  gauche --> 
    <!-- InstanceEndEditable --><!-- InstanceBeginEditable name="EditCentre" -->
    <div id="content2"> 
      <!--debut content  -->
<?php
  $msg_erreur = "<img src='images/sitemenu/erreur.png'  border='0' align='absmiddle'> <span class='redBold'> Les champs  suivants présentent les erreurs suivantes  :</span><br/><br/>";
  $msg_ok = "<img src='images/sitemenu/yes.png'  border='0' align='absmiddle'>   <span class='blueBold'>Votre inscription  a bien été prise en compte.<br>  Votre compte devra être validé par  l'administrateur</span>";
  $message = $msg_erreur;
define('MAIL_DESTINATAIRE','*************'); // remplacer par votre email
  define('MAIL_SUJET','Nouveau membre'); 
// On définit chaque champ du formulaire.
  if(isset($_POST['pseudos']))  $pseudo = $_POST["pseudos"];
  if(isset($_POST['nom'])) $nom =  $_POST["nom"];
  if(isset($_POST['prenom']))  $prenom = $_POST["prenom"];
  if(isset($_POST['confirm-password']))  $passe = $_POST["confirm-password"];
  if(isset($_POST['statut']))  $statut = $_POST["statut"];
  if(isset($_POST['email']))  $email = $_POST["email"];
  if(isset($_POST['autemail']))  $autemail = $_POST["autemail"];
  if(isset($_POST['sexe'])) $sexe  = $_POST["sexe"];
  if(isset($_POST['time'])) $time  = $_POST["time"];
  if(isset($_POST['ip'])) $ip =  $_POST["ip"];
/* on vérifie que le code est toujours mémorisé en  session et qu'il fait 6 caractères */ 
  if(!isset($_SESSION['code']) || strlen($_SESSION['code']) !=  6) die("Erreur !");
// on vérifie que la code entré est valide
  if($_SESSION['code'] != $_POST['verif']) die("Erreur : le code de protection est invalide !");
echo "<span class='redBold'><img  src='images/sitemenu/erreur.png' border='0' align='absmiddle'> le code de  protection est invalide !</span><br>";
// vérification des champs 
  if (empty($_POST['pseudos'])) 
    $message .= "<span class='redBold'>Vous devez saisir un pseudo</span><br/>";
  if (empty($_POST['nom'])) 
    $message .= "<span  class='redBold'>Vous devez saisir votre nom</span><br/>";
  if (empty($_POST['prenom'])) 
    $message .= "<span  class='redBold'>Vous devez saisir votre  prenom</span><br/>";
  if (empty($_POST['password'])) 
    $message .= "<span class='redBold'>Vous devez saisir un  mot de passe</span><br/>";
  if (empty($_POST['confirm-password'])) 
    $message .= "<span class='redBold'>Vous devez  confirmer le mot de passe</span><br/>";
  //vérification du mot de passe
  if(!ereg("^[A-Za-z0-9]{4,}$",  $_POST["password"]))
  {
     $message .= "<span  class='redBold'>Votre mot de passe doit comporter au moins 4  caractères</span><br/>";
  }
  elseif($_POST["password"]  != $_POST["confirm-password"])
  {
     $message = "<span  class='redBold'>Votre mot de passe n'a pas été correctement  confirmé</span><br/>";
  }
//vérification de l'email
   if(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$", $_POST["email"]))
            {
                 $message  .= "<span class='redBold'>Votre adresse e-mail n'est pas  valide</span><br/>";
            }
            else
            {
  //vérification du couple  pseudo et email
  mysql_select_db($database_ma_connection, $ma_connection);
  $sql="SELECT email FROM  membre WHERE pseudo = '" . $_POST["pseudo"] . "'
  AND  email='".$_POST['email']."' ";
  $result=mysql_query($sql);
                  //si la requête ne retourne rien, cela signifie que le mail  n'existe pas
                  if(mysql_num_rows($result)  != 0)
                  {
                  $message .= "<span class='redBold'>Le  couple Email - Pseudo existe deja</span><br/>";
                  }
                  }
if (empty($_POST['sexe']))
    $message .= "<span class='redBold'>Vous devez  cocher la case Homme ou Femme</span><br/>";
  if (empty($_POST['autemail']))
    $message .= "<span class='redBold'>Vous n'avez pas  précisé la visibilité de votre Email</span><br/>";
  // si un champ est vide, on affiche le message  d'erreur 
  if (strlen($message) >  strlen($msg_erreur)) {
  echo $message;
 
 // Si il y a une erreur le javascript réaffiche le  formulaire d'inscription
 ?> 
  <script  language="JavaScript">
  setTimeout("window.location.href='./inscription.php  ' ", 5000);
  </script>
<?php
  // sinon c'est ok 
  } else {
    foreach($_POST as $index => $valeur) {
      $$index =  mysql_real_escape_string(trim($valeur));
    }
 //Préparation de l'entête du mail:
  $mail_entete = "MIME-Version: 1.0\r\n";
  $mail_entete .= "From:  {$_POST['pseudo']} "
                ."<{$_POST['email']}>\r\n";
  $mail_entete .= 'Reply-To:  '.$_POST['email']."\r\n";
  $mail_entete .= 'Content-Type: text/plain;  charset="iso-8859-1"';
  $mail_entete .= "\r\nContent-Transfer-Encoding:  8bit\r\n";
  $mail_entete .= 'X-Mailer:PHP/' .  phpversion()."\r\n";
// préparation du corps du mail
  $mail_corps = "Bonjour, inscription d'un nouveau  membre\n";
  $mail_corps .= "Nom du membre : $nom $prenom\n";
  $mail_corps .= "Pseudo du membre : $pseudo\n";
  $mail_corps .= "Adresse : $ip\n\n\n";
  //$mail_corps .= $comments;
    
  // Requête d'insertion dans la base si tout est ok
  $sql = "INSERT INTO membre VALUES ('',  '".$pseudo."', '".$nom."', '".$prenom."',  '".$passe."', 
  '".$statut."', '".$email."',  '".$autemail."', '".$sexe."', 
  '".$time."',  '".$ip."', '".$lasttime."', '".$online."')";
    $res  = mysql_query($sql);
  if ($res) {
      echo $msg_ok;
  // envoi du mail
  mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete);
  } else {
      echo mysql_error();
    }
  }
  // on détruit les variables de session, désormais  inutiles
  session_unset();
  session_destroy();
?>

    </div>
    <!--fin content --> 
    <!-- InstanceEndEditable --><br  class="clearFloat2" />
  </div>
  <!-- fin contentWrapper2  -->
  <div id="footer2">
    <p>© Copyright © <a href="# target="_blank"></a> Tous droit  r&eacute;serv&eacute;s</p>
  </div>
</div>
<!--fin outerWrapper2 -->
</body>
<script  type="text/javascript">  
  <!--  
  function AjoutFavoris(theURL,  theTITLE) {  
  window.external.AddFavorite(theURL,  theTITLE);  
  }  
  -->  
</script>
<!-- InstanceEnd -->
</html>
Pour être exact, il me fait une erreur à la ligne 57:
$message .= "<span class='redBold'>Vous devez saisir un pseudo</span><br/>";
Voici le code qu'il y a autour:
if($_SESSION['code'] != $_POST['verif']) die("Erreur : le code de protection est invalide !");
echo "<span class='redBold'><img  src='images/sitemenu/erreur.png' border='0' align='absmiddle'> le code de  protection est invalide !</span><br>";
// vérification des champs 
  if (empty($_POST['pseudos'])) 
    $message .= "<span class='redBold'>Vous devez saisir un pseudo</span><br/>";
  if (empty($_POST['nom'])) 
    $message .= "<span  class='redBold'>Vous devez saisir votre nom</span><br/>";
Par ailleur, dreamweaver me surligne toute les lignes comportant
 $message .= "blablabla";
Une idée?

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 13:30
par stealth35
aère ton code et fais plusieurs fichier ça sera plus propre :wink:

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 14:13
par niklos0
Sur le principe, je suis d'accord.

J'ai cependant essayer de faire un second fichier ne contenant que ceci:
<?php
$msg_erreur = "<img src='images/sitemenu/erreur.png'  border='0' align='absmiddle'> <span class='redBold'> Les champs  suivants présentent les erreurs suivantes  :</span><br/><br/>";
$message = $msg_erreur;

 if (empty($_POST['pseudo'])) 
    $message .= "<span class='redBold'>Vous devez saisir un pseudo</span><br/>";
  if (empty($_POST['nom'])) 
    $message .= "<span  class='redBold'>Vous devez saisir votre nom</span><br/>";
  if (empty($_POST['prenom'])) 
    $message .= "<span  class='redBold'>Vous devez saisir votre  prenom</span><br/>";
  if (empty($_POST['password'])) 
    $message .= "<span class='redBold'>Vous devez saisir un  mot de passe</span><br/>";
  if (empty($_POST['confirm-password'])) 
    $message .= "<span class='redBold'>Vous devez  confirmer le mot de passe</span><br/>";

?>
Résultat : Même erreur a savoir:

Code : Tout sélectionner

Parse error: syntax error, unexpected T_VARIABLE in /Applications/MAMP/htdocs/memooh/traitement2.php on line 6
la dite ligne 6:
$message .= "<span class='redBold'>Vous devez saisir un pseudo</span><br/>";

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 14:18
par stealth35
et si tu fais ça
<php
$msg_erreur = "<img src='images/sitemenu/erreur.png'  border='0' align='absmiddle'> <span class='redBold'> Les champs  suivants présentent les erreurs suivantes  :</span><br/><br/>";
$message = $msg_erreur;

if(empty($_POST['pseudo']))
{
    $message .= "<span class='redBold'>Vous devez saisir un pseudo</span><br/>";
}
 
if(empty($_POST['nom']))
{
    $message .= "<span  class='redBold'>Vous devez saisir votre nom</span><br/>";
}
  
if(empty($_POST['prenom']))
{
    $message .= "<span  class='redBold'>Vous devez saisir votre  prenom</span><br/>";
}
  
if(empty($_POST['password']))
{
    $message .= "<span class='redBold'>Vous devez saisir un  mot de passe</span><br/>";
}
  
if(empty($_POST['confirm-password']))
{
  $message .= "<span class='redBold'>Vous devez  confirmer le mot de passe</span><br/>";
}

echo $message;

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 14:41
par niklos0
Merci pour la réponse :D
J'avais déjà essayer, mais j'ai retenter au cas où et toujours le meme problème :cry:

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 14:59
par macgawel
Bonjour.

Ce message d'erreur provient, dans 90% des cas, d'un oubli de guillemets/quote avant la ligne en question.
si tu utilises un éditeur de texte avec coloration syntaxique tu devrais le voir rapidement...

Accessoirement, j'ai testé ton fichier (traitement2.php) et je n'ai aps d'erreur. Tu as bien fait un copié-collé ?
Et tu peux faire un var_dump($_POST) au début du traitement ?

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 15:28
par niklos0
Merci Macgawel, t'as résolu une partie de mon pb mais j'ai pas tout compris:

Je copie colle le texte de mon editeur vers phpfrance, je le recopie colle de phpfrance vers mon éditeur et magie, les erreurs partent d'elles même...
Enfin presque toutes...
il m'en reste 2 a savoir:
ligne 83
//vérification du couple  pseudo et email
  mysql_select_db($database_ma_connection, $ma_connection); //cette ligne
  $sql="SELECT email FROM  membre WHERE pseudo = '" . $_POST["pseudo"] . "'
  AND  email='".$_POST['email']."' ";
 $result=mysql_query($sql);
et ligne 129
 
// Requête d'insertion dans la base si tout est ok
  $sql = "INSERT INTO membre VALUES ('',  '".$pseudo."', '".$nom."', '".$prenom."',  '".$passe."',  //cette ligne
  '".$statut."', '".$email."',  '".$autemail."', '".$sexe."', 
  '".$time."',  '".$ip."', '".$lasttime."', '".$online."')";
    $res  = mysql_query($sql);
Et la technique du copie coller n'a pas l'air de marcher...

edit: voici l'erreur:

Code : Tout sélectionner

Parse error: syntax error, unexpected T_STRING in /Applications/MAMP/htdocs/memooh/traitement.php on line 83
edit 2: je me sens un peu con là... Je me suis trompé de nom de variable... Je corrige et je vous tiens au courant...

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 15:33
par stealth35
tu bosses avec quelle éditeur ?

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 15:35
par niklos0
tu bosses avec quelle éditeur ?

Dreamweaver (surtout) et smultron (de temps en temps)

edit: j'ai modifier ma ligne de connexion a la base qui est devenu
mysql_select_db($database_memooh, $memooh);
tout en haut de ma page, j'inclus mon fichier de connexion:
<?php require_once('Connections/memooh.php'); ?> 
qui contient ceci:
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_memooh = "localhost:8888";
$database_memooh = "memooh";
$username_memooh = "user";
$password_memooh = "password";
$memooh = mysql_pconnect($hostname_memooh, $username_memooh, $password_memooh) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 15:38
par stealth35
tu bosses avec quelle éditeur ?

Dreamweaver (surtout) et smultron (de temps en temps)
tu devrais prendre un vrai éditeur comme eclipse ou netbeans, sinon pourquoi t'as MAMP ? y'a deja un serveur apache + php sur osx

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 15:58
par niklos0
tu bosses avec quelle éditeur ?

Dreamweaver (surtout) et smultron (de temps en temps)
tu devrais prendre un vrai éditeur comme eclipse ou netbeans, sinon pourquoi t'as MAMP ? y'a deja un serveur apache + php sur osx
Ha je savais pas qu'il y avait un serveur apache/php sur osx... J'apprend qqc là :D. En meme temps je suis là pour çà!

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 16:00
par stealth35
Ha je savais pas qu'il y avait un serveur apache/php sur osx... J'apprend qqc là :D. En meme temps je suis là pour çà!
Préférence système -> Partage -> tu coches Partage Web

Re: Parse error: syntax error, unexpected T_VARIABLE

Posté : 02 sept. 2010, 16:12
par niklos0
Merci Macgawel, t'as résolu une partie de mon pb mais j'ai pas tout compris:

Je copie colle le texte de mon editeur vers phpfrance, je le recopie colle de phpfrance vers mon éditeur et magie, les erreurs partent d'elles même...
Enfin presque toutes...
il m'en reste 2 a savoir:
ligne 83
//vérification du couple  pseudo et email
  mysql_select_db($database_ma_connection, $ma_connection); //cette ligne
  $sql="SELECT email FROM  membre WHERE pseudo = '" . $_POST["pseudo"] . "'
  AND  email='".$_POST['email']."' ";
 $result=mysql_query($sql);
et ligne 129
 
// Requête d'insertion dans la base si tout est ok
  $sql = "INSERT INTO membre VALUES ('',  '".$pseudo."', '".$nom."', '".$prenom."',  '".$passe."',  //cette ligne
  '".$statut."', '".$email."',  '".$autemail."', '".$sexe."', 
  '".$time."',  '".$ip."', '".$lasttime."', '".$online."')";
    $res  = mysql_query($sql);
Et la technique du copie coller n'a pas l'air de marcher...

edit: voici l'erreur:

Code : Tout sélectionner

Parse error: syntax error, unexpected T_STRING in /Applications/MAMP/htdocs/memooh/traitement.php on line 83
edit 2: je me sens un peu con là... Je me suis trompé de nom de variable... Je corrige et je vous tiens au courant...
Bon en fait, c'était un problème d'espace qu'il aimait pas...
Il me reste plus qu'une erreur!
edit: dernière erreur résolu... Encore un pb d'espace...