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.   <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>
      
      
  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. 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'])){ 
      
    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
    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
    4. Modérateur
      @medboy94....et... ton code... il ressemble à quoi maintenant ???
    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>