Connexion avec login et mot de passe

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Connexion avec login et mot de passe

par Sineljogy » 23 août 2006, 18:20

Tu pourrais le faire sur une seule page de cette manière :
<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {
	// Une fois le formulaire posté
	// ...
}
else {
	// Le formulaire
	// ...
}
?>

par Funkpeck » 23 août 2006, 15:59

Merci beaucoup pour cette explication complete :wink:

En fait, ma solution consistait a mettre le traitement et le formulaire sur la meme page, mais c'est vrai que c'est un peu prise de tete.

Finalement, j'ai opté pour ta méthode, cependant j'ai viré la connexion mysql pour vérifier les login et password, j'ai directement inclus leur valeur dans la page php, tant pis je ferai mieux plus tard pour l'instant je n'ai pas le temps !

par Cyrano » 23 août 2006, 08:23

J'ai essayé de comprendre la méthodologie employée pour t'identifier et ton code ne suis pas une logique terrifiante. Reprenons donc le processus :
-1- une page assortie d'un formulaire permettant la saisie du pseudonyme et du mot de passe;
-2- la page de traitement et de redirection vers la page appropriée selon le résultat;
-3- la page d'accueil administration dans le cas où le traitement de la seconde page est concluant.

Voyons maintenant cette seconde page.
-1- récupérer les valeurs envoyées;
-2- S'il manque au moins une des deux valeurs, redirection vers la page 1 d'identification;
-3- Sinon, requête SQL pour compter le nombre de lignes contenant les valeurs correspondant au pseudonyme et au mot de passe envoyé;
-4- Si les valeurs sont trouvées, redirection vers la page 3 d'administration, sinon redirection vers la page 1.

Mais ton code commence par une bizarrerie : il commence par comparer des valeurs envoyées par le formulaire, par exemple, tu compares $_POST['password'] et $_POST['pwd']... Reprend ton code en suivant le chemin que je viens d'indiquer, ça devrait aller nettement mieux.

par Funkpeck » 23 août 2006, 00:00

Ah oui c'est juste, merci :D

Cependant, meme ayant corrigé cela, je n'arrive pas a me connecter :?:

par albat » 22 août 2006, 23:36

Je n'ai pas tout testé, mais je vois déjà une erreur de syntaxe :
//
$sql= 'SELECT * FROM backoffice WHERE acces = admin';   // mal
$sql= "SELECT * FROM backoffice WHERE acces = 'admin'"; // bien
En outre, il est préférable d'éviter le SELECT *, en précisant les champs dont tu as besoin.

Connexion avec login et mot de passe

par Funkpeck » 22 août 2006, 23:04

Bonsoir, voila mon probleme :

je souhaite accéder à une page par le biais d'un login et un mot de passe, dont les valeurs sont stockées dans la base.
<?php
if (isset($_POST['password']) && isset($_POST['login']) && $_POST['password'] == $_POST['mdp'] && $_POST['login'] == $_POST['log'])
{
	header('Location: index_admin.php');
}
else
{
include_once('bdd.inc.php');?>

<?php//from yass
$sql= '
SELECT *
FROM backoffice
WHERE acces = admin';
$resultat=mysqli_query($link, $sql);

/*while ($row = mysqli_fetch_assoc($resultat))
{
	
}*/

$log = mysqli_result($resultat , 0 , "login");
$mdp = mysqli_result($resultat , 0 , "password");

if (isset($_POST['password']))
{
	$password = $_POST['password'];
}
else
{
	$password = '';
}

if (isset($_POST['login']))
{
	$login = $_POST['login'];
}
else
{
	$login = '';
}

// le mot de passe n'est pas bon
// Affichage la zone de texte pour rentrer le mot de passe.
?>
<br /><br />
<h2>Veuillez saisir le login et le mot de passe associé svp :</h2>
<form action="index.php?page=administrer" method="post">
<table>
<tr><td>Login :</td><td><input type="text" name="login" /></td></tr>
<tr><td>Mot de passe :</td><td><input type="text" name="password" /></td></tr>
</table> <br/>
<input type="submit" value="Valider" />
</form>

<?php
}
// Fin du else
?> 
Il n'y a pas de message d'erreur, mais on revient systématiquement sur le formulaire.

Une idée ?[/code]