Probleme login

Résolu
medboy94 Messages postés 61 Statut Membre -  
Pitet Messages postés 2845 Statut Membre -
Bonjour, J'ai crée une fonction en php pour login mais j'ai un probléme
la table s'appel users


function login_user(){

if(isset($_POST['submit'])){

$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){

redirect("login.php");
}else{redirect("admin");
}
}

}




<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>
</div>
<div class="panel-body">
<p>
Please login using your existing account
</p>
<!-- Login Form Starts -->
<form class="form-inline" role="form" action="" method="post" enctype="multipart/form-data">
<?php login_user(); ?>
<div class="form-group">

<label class="form-group" for="username">username</label>
<input type="text" class="form-control" id="exampleInputEmail2" placeholder="username">
</div>
<div class="form-group">
<label class="sr-only" for="password">Password</label>
<input type="password" class="form-control" id="exampleInputPassword2" placeholder="password">
</div>
<button type="submit" class="btn btn-black">
Login
</button>
</form>



2 réponses

Pitet Messages postés 2845 Statut Membre 528
 
Salut,

Quel est le détail du problème ?
Quel est le résultat obtenu / attendu ?
Quels sont les messages d'erreur ?
Quelle est l'API utilisé pour la bdd (Mysqli apparemment) ?
Quel est le code des fonctions escape_string(), query(), confirm(), redirect() ?

Bonne journée
1
medboy94 Messages postés 61 Statut Membre
 
Bonjour
le resultat attendu si les details sont just il me redirect vers dossier admin ( index.php ) sinon il rest dans le login .

il n'y a pas de msg d'erreur .
mysql avec wamp

Les autres fonctions je l'utilise normal


function redirect($location) {

header("Location : $location ");


}



function confirm($result){

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



function query($sql){

global $connection ;
return mysqli_query($connection, $sql);
}


function escape_string($string){

global $connection ;
return mysqli_real_escape_string($connection, $string);
}
0
Pitet Messages postés 2845 Statut Membre 528
 
La condition if(isset($_POST['submit'])) ne pourra jamais être validée puisque ton formulaire ne contient aucun input dont l'attribut name est égal à "submit".

On recommande également d'ajouter l'instruction exit() après une redirection via header(), en effet puisqu'on redirige la suite du script n'a pas besoin d'être exécutée.

Au passage, aucun contenu ne devrait être envoyé au client avant l'appel de l'instruction header() sauf si l'option php output_buffering est activée, ce qui est le cas par défaut sous Wamp. Lors du passage en ligne, si cette option n'est pas activée chez ton hébergeur, tu auras alors un message d'erreur "Headers already sent".
0
medboy94 Messages postés 61 Statut Membre
 
Mercii pour votre réponse j'ai modifié le code html mais sa marche pas



<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
Pitet Messages postés 2845 Statut Membre 528
 
As tu ajouter l'instruction exit() après la redirection avec header() ?

Peux tu définir ce qui ne marche pas dans ton code ? Les paramètres POST sont-ils bien transférés et corrects ? La requête sql s'exécute t-elle correctement ? Les redirections fonctionnent-elles ?

Tu peux essayer d'ajouter des "echo" dans ta fonction login_user() afin de voir où ca bloque.
0