Récupérer des champs pour les insérer comme paramètres méthode

Fermé
kayen - 12 août 2015 à 13:26
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 12 août 2015 à 14:51
Bonjour j'ai créer une class 'admin.class.php' avec une méthode authentification public static function authentification($login1,$pass)
{
$bdd = new PDO('mysql:host=localhost;dbname=bbd_annuaire;charset=utf8', 'root', '');
$motdepasse = $bdd->query("select * from admin where login ='$login1'");
while($donnee=$motdepasse->fetch())
{
$login2=$donnee['login'];
$pass1=$donnee['password'];
}
if($login1==$login2 && $pass==$pass1)
{
header('Location: test.php');
}
else
echo ("mot de passe incorrect");
}
Dans ma page authentification j'ai envie d'appeler la méthode 'authentification()' de la classe 'admin.class.php' dans un événement onsubmit
<!doctype html>
<html>
<head>
<?php require 'admin.class.php'; ?>
<form class="login">
<link rel="stylesheet" href="auth.css" />
<script type="text/javascript" src="auth.js"></script>
<fieldset>

<legend class="legend">Login</legend>

<div class="input">
<input type="login" placeholder="Login" name="login" required />
<span><i class="fa fa-envelope-o"></i></span>
</div>

<div class="input">
<input type="password" placeholder="Password" name="pass" required />
<span><i class="fa fa-lock"></i></span>
</div>
<button type="submit" class="submit" onsubmit = > ><i class="fa fa-long-arrow-right"></i></button>

</fieldset>

<div class="feedback">
login successful <br />
redirecting...
</div>

</form>
</head>
<body>
</body>
</html>
Mon soucis c'est que j'arrive pas à récupérer les deux champs login et motdepasse pour les insérer comme paramètre dans ma méthode authentification()
je suis ouvert à tout commentaire, je sais que mon code n'est pas robuste
A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
12 août 2015 à 14:51
Salut,

Plusieurs points à corriger :
1. Puisque tu utilises un bouton type submit dans un formulaire, pas besoin d'utiliser l'événement onsubmit : ton formulaire sera directement soumis en cliquant sur ce bouton.

2. L'inclusion de ta classe via require doit être fait dès le début de ton script, avant que le moindre contenu html ne soit affiché, sinon tes redirections avec header() ne fonctionneront pas (sauf si ton serveur est configuré avec output_buffering à ON).

3. Ne pas oublier d'ajouter un exit() après une redirection avec header() : puisqu'on redirige, on ne veut pas continuer le script.

4. Attention à la syntaxe HTML : balises link et meta dans le head, le reste dans le body, input type="login" n'existe pas ...

Ensuite il te suffit d'appeler la méthode de ta classe en lui passant en paramètre les paramètre POST ou GET envoyés par ton formulaire. Par exemple :
<?php 
require 'admin.class.php'; 

Admin::authentification($_REQUEST['login'], $_REQUEST['password']);
?>
<!doctype html>
<html>
<head>
	<title>Ma page</title>
	<link rel="stylesheet" href="auth.css" />
</head>
<body>
	<form class="login">
		
		<fieldset>
			<legend class="legend">Login</legend>

			<div class="input">
				<input type="text" placeholder="Login" name="login" required />
				<span><i class="fa fa-envelope-o"></i></span>
			</div>

			<div class="input">
				<input type="password" placeholder="Password" name="pass" required />
				<span><i class="fa fa-lock"></i></span>
			</div>
			
			<button type="submit" class="submit"><i class="fa fa-long-arrow-right"></i></button>
		</fieldset>

		<div class="feedback">
			login successful <br />
			redirecting...
		</div>
	</form>
	
	<script type="text/javascript" src="auth.js"></script>
</body>
</html> 


Bonne journée
0