PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 12-04-2017 12:38:29

Quartz9
Membre
Inscription : 12-04-2017
Messages : 3

Parse error: syntax error, unexpected '$req' (T_VARIABLE) in

Bonjour/Bonsoir
J'ai l'erreur suivante sur mon projet de lycée "Parse error: syntax error, unexpected '$req' (T_VARIABLE) in /home/vsftpd/projetstmg4sig_fspq/projetstmg4sig_fspq/page2.php on line 88"
Je n'arrive pas trouver le problème , je vous remercie de votre aide précieuse

<?php
 $motdepasse = $_POST['Var_password'];
 $pseudo = $_POST['Var_pseudo'];
 
 
 
 
include ("_conf.php");
$connection = mysql_connect($host,$root,$mdp);
if (!$connection)
{
    die ('could not connect: ' .mysql_error());
}
else
{
    mysql_select_db($mabasededonnee,$connection);
     
    $sql = "SELECT count(*) from `ELEVE` where `pseudo`='$pseudo' AND `motdepasse` ='$motdepasse'";
    //echo "ma req SQL : ".$sql;
    $req = mysql_query ($sql);
    $data=mysql_fetch_array($req);
    if ($data[0] ==1)
    {
        $sql = "SELECT * from `ELEVE` where `pseudo`='$pseudo' AND `motdepasse` = '$motdepasse'";
        $req = mysql_query ($sql);
        $data=mysql_fetch_array($req);
          echo "Bienvenue $data[nom] $data[prenom] <br> <br>";
          $ideleve=$data['num'];
         
         
        ?>
        <form method="post" action="page2.php" enctype="multipart/form-data">
             
             <label for="mon_fichier"><u>Fichier (tous formats | max. 1 Mo) :</u></label><br />
             <input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
             <input type="hidden" name="Var_password" value="<?php echo $motdepasse; ?>" />
             <input type="hidden" name="Var_pseudo" value="<?php echo $pseudo; ?>" />
             <input type="hidden" name="envoi_form" value="1" />
             <input type="file" name="mon_fichier" id="mon_fichier" /><br /><br>
             <label for="titre"><u>Titre du fichier (max. 50 caractères) :</u></label><br />
             <input type="text" name="titre" value="Titre du fichier" id="titre" /><br /><br>
             <label for="description"><u>Description de votre fichier (max. 255 caractères) :</u></label><br />
             <textarea name="description" id="description"></textarea><br />
             <input type="submit" name="submit" value="Envoyer" />    
        </form>
        <?php    
       
        if (isset($_POST['envoi_form']))
        {
            echo "On traite le formulaire";
 
            $dossier = 'fichiers/';
            $fichier = basename($_FILES['mon_fichier']['name']);
            if(move_uploaded_file($_FILES['mon_fichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
            {
                $nomfichier=$_FILES['mon_fichier']['name'];
                 
                $description=$_POST['description'];
                echo 'Upload effectué avec succès ! : '.$nomfichier. "description : ".$description." - id eleve = ".$ideleve;        
                 
         
                $sql = "INSERT INTO document (`nom`,`description`,`numeleve`)
                VALUE ('$nomfichier','$description','$ideleve')";
                $req = mysql_query ($sql);
                 
                 
                         
            }
     
            else //Sinon (la fonction renvoie FALSE).
            {
                      echo 'Echec de l\'upload !';
            }
 
     
       
        }
         
        ?>
         
         
        <hr><u> <span style="background-color:#40c0ff;" >Liste des fichiers : </span> </u><br><br>
         
        <?php
        $sql = "SELECT * FROM `ELEVE``, document
        where
eleve.num = document.numeleve;";
        $req = mysql_query ($sql);
        while ($data=mysql_fetch_array($req))
        {
            echo $data['date']."- <a href='fichiers/$data[nom]' target='blank'>".$data['nom']."</a><br>";
        }
    }
     
    else
    {
      echo "Problème de pseudo ou de mot de passe";
    }
}
 
?>

Hors ligne

#2 13-04-2017 09:38:42

ViKKKing
Membre
Inscription : 29-03-2017
Messages : 12

Re : Parse error: syntax error, unexpected '$req' (T_VARIABLE) in

Salut,

SELECT * FROM `ELEVE``, document  where eleve.num = document.numeleve;

double backtick + point-virgule + jointure bizarre ^^

en plus, tu n'as pas besoin de mettre des backticks autour des champs sauf si ... (voir doc)

Conseil : toujours ajouter  en haut de tes pages en pre-prod

error_reporting(E_ALL); ini_set('display_errors', 1);

Conseil² : mysql_* est déprécié depuis longtemps ! tu devrais regarder ceci -> PHP doc mysqli_* et PHP doc Prepared Parameterized Statements pour éviter les injections SQL

Dernière modification par ViKKKing (13-04-2017 09:43:07)


- Technical skill is mastery of complexity, while creativity is mastery of simplicity.
- Au fil des ans, je ne vieillis pas, je deviens vintage !

Hors ligne

#3 13-04-2017 15:58:13

Quartz9
Membre
Inscription : 12-04-2017
Messages : 3

Re : Parse error: syntax error, unexpected '$req' (T_VARIABLE) in

ViKKKing a écrit :

Salut,

SELECT * FROM `ELEVE``, document  where eleve.num = document.numeleve;

double backtick + point-virgule + jointure bizarre ^^

en plus, tu n'as pas besoin de mettre des backticks autour des champs sauf si ... (voir doc)

Conseil : toujours ajouter  en haut de tes pages en pre-prod

error_reporting(E_ALL); ini_set('display_errors', 1);

Conseil² : mysql_* est déprécié depuis longtemps ! tu devrais regarder ceci -> PHP doc mysqli_* et PHP doc Prepared Parameterized Statements pour éviter les injections SQL


Salut,
Tout d'abord je vous remercie de votre précieuse aide , pour ce qui de "mysql_" je l'utilise seulement pour mon projet de terminal sa ne sera pas un site internet utilisé e.t.c donc pas vraiment a m'inquiété niveau sécurité et j'essaye d'utilisé un maximum mes connaissances étudier en classe mais parfois cela me dépasse car nous somme vraiment limité en php et sql.

J'ai donc corrigé l'erreur et sa me donne de nouveau une autre , j'ai essayé d'enlever l'apostrophe mais sa ne change rien:

Parse error: syntax error, unexpected '`' in /home/vsftpd/projetstmg4sig_fspq/projetstmg4sig_fspq/page2.php on line 86
Voici mon site si cela peut vous aider je vous remet le code modifier en bas
Je vous remerci encore une fois de votre et du temps que vous me donner

http://projetstmg4sig.livehost.fr

<?php
error_reporting(E_ALL); ini_set('display_errors', 1);
 $motdepasse = $_POST['Var_password'];
 $pseudo = $_POST['Var_pseudo'];
 

 

include ("_conf.php");
$connection = mysql_connect($host,$root,$mdp);
if (!$connection)
{
  die ('could not connect: ' .mysql_error());
}
else
{
  mysql_select_db($mabasededonnee,$connection);
 
  $sql = "SELECT count(*) from `ELEVE` where `pseudo`='$pseudo' AND `motdepasse` ='$motdepasse'";
  //echo "ma req SQL : ".$sql;
  $req = mysql_query ($sql);
  $data=mysql_fetch_array($req);
  if ($data[0] ==1)
  {
    $sql = "SELECT * from `ELEVE` where `pseudo`='$pseudo' AND `motdepasse` = '$motdepasse'";
    $req = mysql_query ($sql);
    $data=mysql_fetch_array($req);
      echo "Bienvenue $data[nom] $data[prenom] <br> <br>";
      $ideleve=$data['num'];
     
     
    ?>
    <form method="post" action="page2.php" enctype="multipart/form-data">
       
       <label for="mon_fichier"><u>Fichier (tous formats | max. 1 Mo) :</u></label><br />
       <input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
       <input type="hidden" name="Var_password" value="<?php echo $motdepasse; ?>" />
       <input type="hidden" name="Var_pseudo" value="<?php echo $pseudo; ?>" />
       <input type="hidden" name="envoi_form" value="1" />
       <input type="file" name="mon_fichier" id="mon_fichier" /><br /><br>
       <label for="titre"><u>Titre du fichier (max. 50 caractères) :</u></label><br />
       <input type="text" name="titre" value="Titre du fichier" id="titre" /><br /><br>
       <label for="description"><u>Description de votre fichier (max. 255 caractères) :</u></label><br />
       <textarea name="description" id="description"></textarea><br />
       <input type="submit" name="submit" value="Envoyer" />      
    </form>
    <?php  
   
    if (isset($_POST['envoi_form']))
    {
      echo "On traite le formulaire";

      $dossier = 'fichiers/';
      $fichier = basename($_FILES['mon_fichier']['name']);
      if(move_uploaded_file($_FILES['mon_fichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
      {
        $nomfichier=$_FILES['mon_fichier']['name'];
       
        $description=$_POST['description'];
        echo 'Upload effectué avec succès ! : '.$nomfichier. "description : ".$description." - id eleve = ".$ideleve;      
       
   
        $sql = "INSERT INTO document (`nom`,`description`,`numeleve`)
        VALUE ('$nomfichier','$description','$ideleve')";
        $req = mysql_query ($sql);
       
       
           
      }
   
      else //Sinon (la fonction renvoie FALSE).
      {
            echo 'Echec de l\'upload !';
      }

 
   
    }
   
    ?>
   
   
    <hr><u> <span style="background-color:#40c0ff;" >Liste des fichiers : </span> </u><br></br>
   
    <?php
    $sql = SELECT * FROM `ELEVE``, document  where eleve.num = document.numeleve;
    $req = mysql_query ($sql);
      while ($data=mysql_fetch_array)
    {
      echo $data['date']."- <a href='fichiers/$data[nom]' target='blank'>".$data['nom']."</a><br>";
    }
  }
 
  else
  {
    echo "Problème de pseudo ou de mot de passe";
  }
}

?>

Dernière modification par Quartz9 (13-04-2017 16:00:03)

Hors ligne

#4 13-04-2017 16:44:58

tof73
Membre
Inscription : 21-12-2014
Messages : 156
Site Web

Re : Parse error: syntax error, unexpected '$req' (T_VARIABLE) in

$sql = "SELECT * FROM eleve, document  where eleve.num = document.numeleve";

j'avais copié/collé le premier code et je n'avais eu de "Parse error".

Hors ligne

#5 13-04-2017 16:53:55

Quartz9
Membre
Inscription : 12-04-2017
Messages : 3

Re : Parse error: syntax error, unexpected '$req' (T_VARIABLE) in

tof73 a écrit :

$sql = "SELECT * FROM eleve, document  where eleve.num = document.numeleve";

j'avais copié/collé le premier code et je n'avais eu de "Parse error".


Notice: Undefined index: num in /home/vsftpd/projetstmg4sig_fspq/projetstmg4sig_fspq/page2.php on line 29
Notice: Use of undefined constant mysql_fetch_array - assumed 'mysql_fetch_array' in /home/vsftpd/projetstmg4sig_fspq/projetstmg4sig_fspq/page2.php on line 88

Warning: Illegal string offset 'date' in /home/vsftpd/projetstmg4sig_fspq/projetstmg4sig_fspq/page2.php on line 90

Warning: Illegal string offset 'nom' in /home/vsftpd/projetstmg4sig_fspq/projetstmg4sig_fspq/page2.php on line 90

Warning: Illegal string offset 'nom' in /home/vsftpd/projetstmg4sig_fspq/projetstmg4sig_fspq/page2.php on line 90
m- m


Merci de ton aide
J'ai donc remis comme c'étais.La page s'affiche maintenant mais laisse les erreurs que j'ai laissé en haut.
En attendant une réponse je vais essayer de les corriger.

Dernière modification par Quartz9 (13-04-2017 18:58:18)

Hors ligne

#6 16-04-2017 21:32:36

ViKKKing
Membre
Inscription : 29-03-2017
Messages : 12

Re : Parse error: syntax error, unexpected '$req' (T_VARIABLE) in

Alors (merci la coloration syntaxique de Notepad++ ^^) :

Notice: Undefined index: num on line 29

ça correspond à -> $ideleve=$data['num']; /* à priori, le champ 'num' n'existe pas ou ne renvoit rien */

Notice: Use of undefined constant mysql_fetch_array on line 88

ça correspond à -> $sql = SELECT * FROM `ELEVE``, document  where eleve.num = document.numeleve; /* encore une erreur de backtick / requete à mettre en " " */

Warning: Illegal string offset 'date' on line 90

ça correspond à -> echo $data['date'] /* pas de bras, pas de chocolat ! pas de requete, pas de loop -> pas de loop, pas de data ! pour les fans de "mission Cleopatre, revoir la scene avec "pas de pierre, pas de construction ! pas de construction, pas de palais ! pas de palais... pas de palais !" smile */

Dernière modification par ViKKKing (16-04-2017 21:34:47)


- Technical skill is mastery of complexity, while creativity is mastery of simplicity.
- Au fil des ans, je ne vieillis pas, je deviens vintage !

Hors ligne

Pied de page des forums