Php/mysql
je voudrai savoir comment faire une authentification pour mon site.
j'ai besoin de votre soutien.
merci
Configuration: Windows XP Firefox 2.0.0.16
29 réponses
Une demande porte sur la mise en place d'une authentification pour un site en PHP, incluant des détails sur le formulaire, les sessions et les sécurités à adopter. Certaines réponses soulignent l'importance d'utiliser $_POST pour récupérer login et mot de passe, puis d'authentifier avant d'attribuer des valeurs à $_SESSION afin d'éviter les risques. D'autres conseils suggèrent d'éviter de stocker des informations sensibles dans $_SESSION tant que l'authentification n'est pas vérifiée, et de vérifier les données côté serveur plutôt que dans le navigateur. En complément, certains échanges indiquent de préciser le flux d'authentification, d'afficher des retours d'erreur clairs et de corriger des erreurs typographiques ou de fermeture de balises PHP.
-
j'attend une suite svp
veiller me depanner -
En fait, mon problème c'est que j'utilise de login pour mon client alors que l'utilisation du $_SESSION demande un login préalable de celui-ci.
je ne sais aps si je me fais comprendre.
merci -
tu ne me harcele jamais car c'est moi qui ai besoin de vous.
alors donc je dois declarer la variable ou bien je ne vous ai pas compris .voila je viens de declarer la varible mais en realité je ne suis qu'un debutant donc pas comme vous .j'ai mon cours en php je le lis et je l'applique voir ce que sa me donne.
revenons sur le sujet
j'ai ajouté la variable
regarde:
<?php
session_start();
$login = 'root';
$password = 'root';
session_register('login', 'password');
$_SESSION['root']=$_POST['root'];//user
$_SESSION['root']=$_POST['root'];//password
?>
stp aide moi et me propose quelque chose pour avoir cette methode d'authentification.merci -
Excuse-moi de te harceler aussi mais d'où vient ta variable $_SESSION['root'] ? Car tu l'utilises, mais je ne vois nulle part où sa valeur a été définie.
-
j'attend une suite svp
merci et veiller m'excuser pour le harcelement -
je souffre depuis quelque jours pour pouvoir faire un code d'authentification pour mon application mais à veine je n'arrive pas donc je cherche quelqu'un qui peut me depanner avec sa bonne volonté.
j'ai creé un fichier formulaire et le fichier authentification mais j'ai accé au formulaire qd je tape le mot de passe ou pas j'ai accé à une page blanche donc je suppose sa marche.
et pour le fichier authentification qd j'excute sa m'affiche une page blanche donc je suppose aussi que y'a pas d'erreur.
mais je veux que si je tape mon mot de passe sa m'affiche l'interface de l'application.
merci .
voilà le FICHIER authentification
<html>
<body>
<?php
$connexion=mysql_connect('localhost','root','root') or die ('impossible de se connecter, veuillez ré-essayer');
$db = mysql_select_db('guide', $connexion) or die ('La base de données ne peut pas être sélectionnée');
if($connexion) {
$query="SELECT * FROM identification WHERE login='".$_SESSION['root']."';";//user
$result=mysql_query($query);
$ligne = mysql_fetch_array($result, MYSQL_ASSOC);
// je controle si les champs sont vides.
if (($_SESSION['root'] == '') or ($_SESSION['root'] == ''))//user ou password
echo"veuillez saisir un login et un mot de passe";
//je réaffiche le formulaire.
}
else {
//je contrôle si le mot de passe correspond avec celui présent dans la base
if (($_SESSION['password']=="".$ligne['mdp'].""))
{
echo"Bienvenue";
}
else {
echo"Erreur d'authentification";
//je réaffiche le formulaire de saisie
}
}
?>
</body>
</html>
pour le fichier formulaire
<html>
<body>
<div align="center" class="Style2">Administrateur</div>
<?php
if (isset($_POST['login']) AND isset($_POST['pass']))
{
$login = $_POST['login'];
$password = $_POST['pass']; // On crypte le mot de passe
echo 'Ligne à copier dans le .htpasswd :<br />' . $login . ':' . $password;
}
else // On n'a pas encore rempli le formulaire
{
}
?>
<table width="75%" border="0" align="center" cellpadding="1" cellspacing="0">
<tr>
<td><form method="POST" action="authentification.php">
<table width="430" align="center">
<tr>
<td width="114" bgcolor="#CCCCCC"><div align="left"><span class="Style6">Login</span></div></td>
<td width="304"><div align="left">
<input type = "text" name="login" id="login" />
</div></td>
</tr>
<tr>
<td bgcolor="#CCCCCC"><div align="left">Password</div></td>
<td><div align="left">
<input type ="password" name="passwd" value="" />
</div></td>
</tr>
<tr>
<td></td>
<td><div align="left">
<input type ="submit" value="Se connecter" name="envoi" align="center"/>
</div></td>
</tr>
</table>
</form></td>
</tr>
</table>
</html>
merci pour votra aide -
Tu utilises $_SESSION['root'] ; je ne vois pas d'où vient cette variable.
remarque : utilise toujours <?php (et non pas simplement <?) comme balise ouvrante de PHP. Mais ça n'est pas là ton problème. -
c'est le code de authentification.php
merci de m'avoir repondu
<?
$connexion=mysql_connect('localhost','root','root') or die ('impossible de se connecter, veuillez ré-essayer');
$db = mysql_select_db('guide', $connexion) or die ('La base de données ne peut pas être sélectionnée');
if($connexion) {
$query="SELECT * FROM identification WHERE login='".$_SESSION['root']."';";//user
$result=mysql_query($query);
$ligne = mysql_fetch_array($result, MYSQL_ASSOC);
// je controle si les champs sont vides.
if (($_SESSION['root'] == '') or ($_SESSION['root'] == ''))//user ou password
echo"veuillez saisir un login et un mot de passe";
//je réaffiche le formulaire.
}
else {
//je contrôle si le mot de passe correspond avec celui présent dans la base
if (($_SESSION['password']=="".$ligne['mdp'].""))
{
echo"Bienvenue";
}
else {
echo"Erreur d'authentification";
//je réaffiche le formulaire de saisie
}
}
?> -
Vas-tu bien dans authentification.php ? Si oui, peux tu montrer le code de cette page ?
-
merci sa marche j'ai accé au formulaire mais quand j'ecris le nom du root et le mdp je n'ai pas accés à ma page(index car je veux que seul moi qui suis l'administrateur à accer à ces pages)
j'espere que je me suis bien explique.
merci pour votre intervention -
Cette erreur-là est simple.
Tu ouvres une accolade après ton else { ?>
et tu ne la refermes jamais.
Il faut ajouter à la fin<?php } ?>
-
voilà l'erreur qui s'affiche je te demande un peu de patience car je ne suis aps un vrai doué en php je me sdebrouille juste un peu.
je compte sur votre soutien.
Parse error: syntax error, unexpected $end in C:\wamp\www\phpprojet\formul.php on line 54 -
Tu dis qu'il y a une erreur, explique pourquoi tu dis ça. Il y a un message d'erreur ? si oui, lequel ? sinon, il y a quelque chose qui ne se passe pas comme prévu ? explique ce que tu attendais et ce qui se passe en fait.
-
voilà le code mais y'a tjours une erreur coorige moi stp .merci
style type="text/css">
<!--
.Style2 {
font-size: 36px;
font-weight: bolder;
}
body {
background-color: #6666CC;
}
-->
</style>
<html>
<body>
<div align="center" class="Style2">Administrateur</div>
<?php
if (isset($_POST['login']) AND isset($_POST['pass']))
{
$login = $_POST['login'];
$password = crypt($_POST['pass']); // On crypte le mot de passe
echo 'Ligne à copier dans le .htpasswd :<br />' . $login . ':' . $password;
}
else // On n'a pas encore rempli le formulaire
{
?>
<table width="75%" border="0" align="center" cellpadding="1" cellspacing="0">
<tr>
<td><form method="POST" action="authentification.php">
<table width="430" align="center">
<tr>
<td width="114" bgcolor="#CCCCCC"><div align="left"><span class="Style6">Login</span></div></td>
<td width="304"><div align="left">
<input type = "text" name="login" id="login" />
</div></td>
</tr>
<tr>
<td bgcolor="#CCCCCC"><div align="left">Password</div></td>
<td><div align="left">
<input type ="password" name="passwd" value="" />
</div></td>
</tr>
<tr>
<td></td>
<td><div align="left">
<input type ="submit" value="Se connecter" name="envoi" align="center"/>
</div></td>
</tr>
</table>
</form></td>
</tr>
</table>
</html> -
Si tu n'as aucune connaissance en PHP, il vaut mieux que tu ailles d'abord voir des sites spécialisés où il y a des tutoriaux et beaucoup d'explications. Le forum n'est pas un site de cours particuliers
Si tu as quelques connaissances, je propose que d'abord toi tu m'expliques le rôle de ces lignes
$_SESSION['root']=$_POST['root'];//user
$_SESSION['root']=$_POST['root'];//password
Et petit à petit tu corrigeras toi-même ton script. -
svp explique moi bien
comment je fais pour recuperer login et pass word si reelelement tu peux m'explique mieux
qu'est ce que je dois inserer dans mon code formulaire???
merci pour votre reponse -
Bonjour
Dans ton formulaire, tu appelles le nom 'login' et le mot de passe 'passwd'.
Donc dans l'analyse du formulaire, tu dois récupérer $_POST['login'] et $_POST['passwd'], pourquoi ce $_POST['root'] ?
Ensuite, si tu affectes les deux à $_SESSION['root'], à quoi sert la première affectation ? elle est écrasée par la seconde.
Ensuite, pour vérifier l'authetification, autant faire directement ... WHERE login='".$_POST['root'] AND lmdp='".$_POST['passwd'] et vérifier seulement qu'il y a bien une réponse
enfin, à ta place, je n'affecterais les variables $_SESSION qu'après avoir authentifié l'utilisateur, pas avant... -
svp j'attend une suite .
je compte sur vous -
je suis là pour mon probleme d'authentification.
voilà je fais deux codes pour Identhification on a:
<html>
<body>
<?php
session_start();
$_SESSION['root']=$_POST['root'];//user
$_SESSION['root']=$_POST['root'];//password
?>
<body>
<?
$connexion=mysql_connect('localhost','root','root') or die ('impossible de se connecter, veuillez ré-essayer');
$db = mysql_select_db('guide', $connexion) or die ('La base de données ne peut pas être sélectionnée');
if($connexion) {
$query="SELECT * FROM identification WHERE login='".$_SESSION['root']."';";//user
$result=mysql_query($query);
$ligne = mysql_fetch_array($result, MYSQL_ASSOC);
// je controle si les champs sont vides.
if (($_SESSION['root'] == '') or ($_SESSION['root'] == ''))//user ou password
echo"veuillez saisir un login et un mot de passe";
//je réaffiche le formulaire.
}
else {
//je contrôle si le mot de passe correspond avec celui présent dans la base
if (($_SESSION['password']=="".$ligne['mdp'].""))
{
echo"Bienvenue";
}
else {
echo"Erreur d'authentification";
//je réaffiche le formulaire de saisie
}
}
?>
</body>
</html>
pour le formulaire on:
<body>
<div align="center" class="Style2">Administrateur</div>
<table width="75%" border="0" align="center" cellpadding="1" cellspacing="0">
<tr>
<td><form method="POST" action="authentification.php">
<table width="430" align="center">
<tr>
<td width="114" bgcolor="#CCCCCC"><div align="left"><span class="Style6">Login</span></div></td>
<td width="304"><div align="left">
<input type = "text" name="login" id="login" />
</div></td>
</tr>
<tr>
<td bgcolor="#CCCCCC"><div align="left">Password</div></td>
<td><div align="left">
<input type ="password" name="passwd" value="" />
</div></td>
</tr>
<tr>
<td></td>
<td><div align="left">
<input type ="submit" value="Se connecter" name="envoi" align="center"/>
</div></td>
</tr>
</table>
</form></td>
</tr>
</table>
Apres tout sa la conexion ext bonne mais rien ne s'affiche
aide moi svp je vous attend avec impatience -
ok merci c'est ta suite que j'attend.
donc à demain
- 1
- 2