Parse error: syntax error

Résolu/Fermé
medboy94 Messages postés 44 Date d'inscription jeudi 6 septembre 2012 Statut Membre Dernière intervention 14 mai 2016 - 29 mars 2016 à 17:19
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 29 mars 2016 à 23:23
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

Regis59 Messages postés 21143 Date d'inscription mardi 27 juin 2006 Statut Contributeur sécurité Dernière intervention 22 juin 2016 1 320
29 mars 2016 à 17:23
Et ton formulaire stp ?
1
medboy94 Messages postés 44 Date d'inscription jeudi 6 septembre 2012 Statut Membre Dernière intervention 14 mai 2016
29 mars 2016 à 20:40
  <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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
29 mars 2016 à 19:59
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
medboy94 Messages postés 44 Date d'inscription jeudi 6 septembre 2012 Statut Membre Dernière intervention 14 mai 2016
29 mars 2016 à 20:42
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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
29 mars 2016 à 21:20
Et bien.... suis mes indications concernant la modification de ton code ... et reviens nous voir avec le code COMPLET .... SI le souci persiste
0
medboy94 Messages postés 44 Date d'inscription jeudi 6 septembre 2012 Statut Membre Dernière intervention 14 mai 2016
29 mars 2016 à 22:04
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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > medboy94 Messages postés 44 Date d'inscription jeudi 6 septembre 2012 Statut Membre Dernière intervention 14 mai 2016
29 mars 2016 à 22:10
....et... ton code... il ressemble à quoi maintenant ???
0
medboy94 Messages postés 44 Date d'inscription jeudi 6 septembre 2012 Statut Membre Dernière intervention 14 mai 2016
29 mars 2016 à 22:45

<?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