Parse error: syntax error

Résolu
Bonjour,

J'ai un message d'erreur .
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp2\www\ecom\resources\functions.php on line 218

function login_user(){
if(isset($_POST['submit'])){      /* la ligne 218 */
$username = escape_string($_POST['username']);
        
$password = escape_string($_POST['password']);
        
        $query = query("SELECT * FROM users WHERE username= '{$username}' AND password='{$password}' ");
        confirm($query);
        
        
   if(mysqli_num_rows($query) == 0) {
       set_message(" Your password or username are wrong ");
       redirect("login.php");
   }else{
      
       redirect("admin/index.php");
        

        }
   }
        
    }
    



2 réponses

  1. Contributeur sécurité
    Et ton formulaire stp ?
    1
    1.   <form class="" action="" method="post" enctype="multipart/form-data"> 
                              <?php    login_user(); ?>
                                                       
                                  <div class="form-groupe"><label for="">
                                      username<input type="text" name="username" class="form-control">
                                      </div>
                                <div class="form-groupe"><label for="password">
                                      password<input type="text" name="password" class="form-control">
                                      </div>
                                <div class="form-groupe">
                                      <input type="submit" name="submit" class="btn btn-primary">
                                      </div>
                                </form>
      
      
      0
  2. Modérateur
    Bonjour,

    1 - Nous ne savons rien des differentes fonctions que tu utilises.
    Par exemple... d'où sors tu la fonction escape_string ? Que contient-elle ?

    2 - Tu ne nous dis pas à quelle ligne de code correspond ton message d'erreur.

    3 - Tu utilises des variables POST dans ta fonction....hummm.... à éviter !
    Déjà .. commences par récupérer "proprement" tes variables AVANT de les utiliser.... et passes les en paramètre de ta fonction...ça sera mieux.

    dans le début de ta page :
    //Récupération "propre" des variables
    $username = !empty($_POST['username']) ? $_POST['username'] : NULL;
    $password = !empty($_POST['password']) ? $_POST['password'] : NULL;
    


    le code de ta fonction :
    function login_user($username=NULL,$password=NULL){
     if($username && $password){  // si username et password sont remplis  
       $query = query("SELECT * FROM users WHERE username= '$username' AND password='$password' ");
       confirm($query);
           
       if(mysqli_num_rows($query) == 0) {
         set_message(" Your password or username are wrong ");
         redirect("login.php");
       }else{      
         redirect("admin/index.php");
       }
     }
    }
    


    Et bien entendu... là où tu appelles ta fonction tu devras ajouter les paramètres
     login_user($username,$password);
    


    1
    1. Bnsr merci pour votre reponse voici les fonctions


      function redirect($location){
      header("Location : $location");

      }

      function query($sql){
      global $connection ;
      return mysqli_query($connection, $sql);
      }

      function confirm($result){
      global $connection;
      if(!$result){
      die("QUERY FAILED " . mysqli_error($connection));
      } }

      function escape_string($string){
      global $connection ;
      return mysqli_real_escape_string($connection, $string);
      }



      la ligne d'erreur c'est
      if(isset($_POST['submit'])){ 
      
      0
    2. Modérateur
      Et bien.... suis mes indications concernant la modification de ton code ... et reviens nous voir avec le code COMPLET .... SI le souci persiste
      0
    3. IL s'execute sans erreur mais il m'affiiche pas le msg quand je trompe de mot de passe et il me redirect pas quand j'ecris le bon mot de passe . mercii
      0
    4. Modérateur
      @medboy94....et... ton code... il ressemble à quoi maintenant ???
      0
    5. 
      <?php
      //Récupération "propre" des variables
      $username = !empty($_POST['username']) ? $_POST['username'] : NULL;
      $password = !empty($_POST['password']) ? $_POST['password'] : NULL;
      // helper function
      
      function set_message($msg){
          if (!empty($msg)){
              
              $_SESSION['message'] = $msg;
          } else {
              
              $msg ="";
              }
              }
      
      function display_message(){
          if (isset($_SESSION['message'])){
              
              echo $_SESSION['message'];
              unset ($_SESSION['message']);
          }
          
          
          
      }
      
      function redirect($location){  
          header("Location : $location");
          
          
      }
      
      
      function query($sql){
          global $connection ;
          return mysqli_query($connection, $sql);
      }
      
      
      
      function confirm($result){
          global $connection;
          if(!$result){
      die("QUERY FAILED " . mysqli_error($connection));
          } }
      
      
      
      function escape_string($string){   
          global $connection ;
      return mysqli_real_escape_string($connection, $string);
          } 
      function login_user($username=NULL,$password=NULL){
       if($username && $password){  // si username et password sont remplis  
         $query = query("SELECT * FROM users WHERE username= '$username' AND password='$password' ");
         confirm($query);
             
         if(mysqli_num_rows($query) == 0) {
           set_message(" Your password or username are wrong ");
           redirect("login.php");
         }else{      
           redirect("admin/index.php");
         }
       }
      }
      
      
      


      
      
      <!-- Login Form Section Starts -->
      		<section class="login-area">
      			<div class="row">
      				<div class="col-sm-6">
      				<!-- Login Panel Starts -->
      					<div class="panel panel-smart">
      						<div class="panel-heading">
      							<h3 class="panel-title">Login</h3>
                                  <h3><?php    display_message();  ?></h3>
      						</div>
      						<div class="panel-body">
      							<p>
      								Please login using your existing account
      							</p>
      						<!-- Login Form Starts -->
      							
                                  <form class="" action="" method="post" enctype="multipart/form-data"> 
                              <?php     login_user($username,$password); ?>
                                                       
                                  <div class="form-groupe"><label for="">
                                      username<input type="text" name="username" class="form-control">
                                      </div>
                                <div class="form-groupe"><label for="password">
                                      password<input type="text" name="password" class="form-control">
                                      </div>
                                <div class="form-groupe">
                                      <input type="submit" name="submit" class="btn btn-primary">
                                      </div>
                                </form>
      						<!-- Login Form Ends -->
      						</div>
      					</div>
      				<!-- Login Panel Ends -->
      				</div>
      
      
      0