Mot de passe et login fonctionne que sur mon poste php/mysql

  • Auteur de la discussion minoula2006
  • Date de début

minoula2006

Nouveau membre
bonjour,
j'ai un pb d'autentification , le login, mot de passe ne fonctionne que sur mon poste :( ce problème est venu quand j'ai ajouter à mes page dans la partie backoffice: require("access.inc.php"); ceci pour empêcher qq de copier l@ url et entrer sans sans être identifier
est ce que vous pouvez m'aidez de résoudre ce pb :whistle:
merci d'avance
 

marsien

Grand Maître
Sans code, ça va être difficile de comprendre l'origine du problème :)
 

hmn

Grand Maître
regardes dans le fichier php, il doit y avoir les instructions nécessaires, pour le login et le mot de passe, ce sont ceux qui servent à la connexion à ta base mysql
 

minoula2006

Nouveau membre
bonjour,
voila la page login.php
<?php
session_start();
// Ligne pour la compatibilit avec l'ancienne version de php installe sur le serveur
if (!isset($_POST)) $_POST=$HTTP_POST_VARS;
if (!isset($_GET)) $_GET=$HTTP_GET_VARS;
if (!isset($_SESSION)) $_SESSION=$HTTP_SESSION_VARS;

require("../lib/util.php");
require("../lib/db_connect.inc.php");
require_once('../lib/bd.class.php');


if (isset($_SESSION["Compteur"])) {
if ($_SESSION["Compteur"]==3) {
header("Location: erreurlogin.html");
exit;
}
}
else {
$Compteur=0;
session_register("Compteur");
$_SESSION["Compteur"]=0;

}

$identOK='False';

$connexion=db_connexion();

$resultat = "SELECT * FROM users WHERE login='" . $_POST["login"] . "'";
$Inscrit=mysql_query($resultat);

$ligne = mysql_num_rows($Inscrit);
if ($ligne != 0) {
$row_Inscrit=mysql_fetch_array($Inscrit);
$login = $row_Inscrit['login'];
$mdp = $row_Inscrit['password'];
}
//else{

//$login = 'manel';
//$mdp = 'manel'; }

if ($_POST["login"]==$login) {
if ($_POST["password"]==$mdp) {
if (!session_is_registered("Ident")) {
session_register("Ident");
}
if (!session_is_registered("login")) {
session_register("login") ;
}
if (!session_is_registered("password")) {
session_register("password") ;
}

$Ident="D00000";
$login1= $_POST["login"] ;
$password1=$_POST["password"] ;

$_SESSION["Ident"]=$Ident;
$_SESSION["login"]=$login1;
$_SESSION["password"]=$password1;

$Compteur=0;
session_register("Compteur");
$_SESSION["Compteur"]=0;
$identOK='True';
}
}

$_SESSION["Compteur"]++;

if ($identOK=='True') {

header("Location: Sommaire.php");
// exit();
}
?>

<div style="margin-top:10px; padding:15px; border:2px solid #ffffff; -moz-border-radius:4px; border-radius:4px; color:#000000; font-weight:bold; text-align:left;">


<fieldset style="height:150px;">


<table width="100%" border="00" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>&nbsp;</td>
</tr>

<tr>
<td height="47" align="center" valign="middle">

<br />
Essai <?php print $_SESSION["Compteur"]; ?>/3<br>

<center>
<img src="img/warning.gif" width="48" height="48">
</center>
<p>&nbsp;</p>
<p align="center"><font face="Modern No. 20" size="4">Erreur de connexion, v&eacute;rifiez
votre login et votre mot de passe !!!</font></p>
<p align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><img src="img/ani09.gif" width="28" height="28"><br>
<br>
<a href="index.php">Se connecter</a></font> </p>
</td>
</tr>
</table>

</fieldset>


</div>
 

marsien

Grand Maître
En l'état ton code est difficilement lisible. Il existe une balise "code" disponible dans "+d'options" lors de la rédaction/modification d'un message. Edite ton message et englobe ton code dans cette balise :)

Sinon, à ce que j'ai vu, tu vérifie l'identification de l'utilisateur avant de stocker en session sa connexion. Il faut donc que dans ta partie access.php, tu contrôle que les variables de session permettant la validation de l'identification soient toujours là et correctes.

AU passage, il n'est pas conseillé de stocker les mots de passe en clair dans la base de données... un petit coup de sha1 permet de remédier au problème ;)
 

hmn

Grand Maître
quelles sont les versions de php et mysql? Utilises tu un cms?
 

minoula2006

Nouveau membre
Bonjour tout le monde
merci marsien a votre aide concernant la page access.inc.php la voila:
[cpp]<?php
// Vrifi si logg

session_start();
// print '<pre>';
// print_r($_SESSION);
// print '</pre>';
if(isset($_SESSION["login"]) && isset($_SESSION["password"]))
{
$login = $_SESSION['login'];
$password = $_SESSION['password'];

if ($login == "" && $password == "")
{
header("Location: index.php");
}

//if ($login != "admin" && $password != "admin")
//{
//header("Location: index.php");
//}
}
else{
header("Location: index.php");

}
?>[/cpp]

merci aussi à vous hmn bon j'utilise le PHP 4 et le phpMyAdmin 2.6.1 ;)
 

marsien

Grand Maître
Quand tu dis que ça ne fonctionne que sur ton postes, ça ne marche pas où alors ?

Bien que (très) perfectible (niveau codage et sécurité ; on ne stocke pas le mot de passe d'un utilisateur en session ! Et encore moins en clair !!!), ton code devrait marcher.

Il existe chez certains hébergeurs des restrictions et/ou modifications pour les sessions. Par exemple, chez Free, il faut créer un dossier "sessions" à la racine de son site pour que les sessions marchent.

Dans ton access.inc.php décommente les 3 lignes en dessous de session_start(); et rajout un exit; juste après. Tu verras ainsi ce que contient ta variable de session quand tu es connecté.
 

minoula2006

Nouveau membre


Bonjour mon amie merci bcp d'avoir lire mon msg et m'aider
alors , le pb c que quand j'ai ajouter à mes pages (require("access.inc.php");) pour la sécurité (au niveau de l'url) et quand je me connecte sur mon poste je n'ai pas de problème tous ce passe bien l'authentification ...
mais quand je me connecte de n'importe quel poste je peux pas me connecter :??:

j'ai essayé d'ajouter exit; ou tu m'a dis mais au lieu d'avoir la page sommaire.php j'ai eu une page vide blanche :sarcastic: (ce test est en local)
voici le code après modification :
[cpp]<?php
// Vrifi si logg

session_start();
// print '<pre>';
// print_r($_SESSION);
// print '</pre>';
exit;
if(isset($_SESSION["login"]) && isset($_SESSION["password"]))
{
$login = $_SESSION['login'];
$password = $_SESSION['password'];

if ($login == "" && $password == "")
{
header("Location: index.php");
}


}
else{
header("Location: index.php");

}
?>[/cpp]
 

minoula2006

Nouveau membre
salut marsien j'ai essayer d'enlever les commentaires et puis j'ai tester ,il s'affiche une page vide seulement avec ce code :
[cpp]Array
(
[Compteur] => 1
[Ident] => D00000
[login] => manel
[password] => manel
)[/cpp]
 

zeb

Modérateur
moderator dixit : [strike]Merci d'utiliser la balise
Code:
.
[:zeb:4][/strike]

:jap:
 

hmn

Grand Maître
est ce que les compte manel est créer dans ta BD? sinon créer le
 

minoula2006

Nouveau membre
bonjour a vous tous

oui les compte manel existe ;)

mais en essayant de se connecter a mon site j'ai entrer le mot de passe et le login, il me laisse sur la mm page index.php mais si je connect avec n'importe quoi --->il me redirige vers la page login.php : "Erreur de connexion, vérifiez votre login et votre mot de passe !!!" (c normale puisque j'ai entrer n'importe quoi :D ) ensuite je connecte une autre fois avec les vrais login et mot de passe et la :) c bon je peut accéder à la page sommaire.php.
Donc j'ai constater que je ne peut connecter à la partie backoffice que lorsque je me rederige vers la page la page: login.php en signalant un erreur de connexion et le nombre d'essai-->entrer les vrais login et mot de passe-->enfinnnnn :bounce: la page sommaire.php
voila la page login.php
[cpp]<?php
session_start();
// Ligne pour la compatibilit avec l'ancienne version de php installe sur le serveur
if (!isset($_POST)) $_POST=$HTTP_POST_VARS;
if (!isset($_GET)) $_GET=$HTTP_GET_VARS;
if (!isset($_SESSION)) $_SESSION=$HTTP_SESSION_VARS;

require("../lib/util.php");
require("../lib/db_connect.inc.php");
require_once('../lib/bd.class.php');

if (isset($_SESSION["Compteur"])) {
if ($_SESSION["Compteur"]==3) {
header("Location: erreurlogin.html");
exit;
}
}
else {
$Compteur=0;
session_register("Compteur");
$_SESSION["Compteur"]=0;

}

$identOK='False';

$loginPost=$_POST["login"];
$MdpPost=$_POST["password"];

$connexion=db_connexion();

$resultat = "SELECT * FROM users WHERE login='$loginPost'";
$Inscrit=mysql_query($resultat);

$ligne = mysql_num_rows($Inscrit);
if ($ligne != 0) {
$row_Inscrit=mysql_fetch_array($Inscrit);
$login = $row_Inscrit["login"];
$mdp = $row_Inscrit["password"];
}


if (($loginPost==$login) && ($MdpPost==$mdp)) {
if (!session_is_registered("Ident")) {
session_register("Ident");
}
if (!session_is_registered("login")) {
session_register("login") ;
}
if (!session_is_registered("password")) {
session_register("password") ;
}

$Ident="D00000";
$login1= $loginPost ;
$password1=$MdpPost ;

$_SESSION["Ident"]=$Ident;
$_SESSION["login"]=$login1;
$_SESSION["password"]=$password1;

$Compteur=0;
session_register("Compteur");
$_SESSION["Compteur"]=0;
$identOK='True';

}

$_SESSION["Compteur"]++;

if ($identOK=='True') {

header("Location: Sommaire.php");
// exit();
}
?>

<div style="margin-top:10px; padding:15px; border:2px solid #ffffff; -moz-border-radius:4px; border-radius:4px; color:#000000; font-weight:bold; text-align:left;">


<fieldset style="height:150px;">


<table width="100%" border="00" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>&nbsp;</td>
</tr>

<tr>
<td height="47" align="center" valign="middle">

<br />
Essai <?php print $_SESSION["Compteur"]; ?>/3<br>

<center>
<img src="img/warning.gif" width="48" height="48">
</center>
<p>&nbsp;</p>
<p align="center"><font face="Modern No. 20" size="4">Erreur de connexion, v&eacute;rifiez
votre login et votre mot de passe !!!</font></p>
<p align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><img src="img/ani09.gif" width="28" height="28"><br>
<br>
<a href="index.php">Se connecter</a></font> </p>
</td>
</tr>
</table>

</fieldset>


</div>[/cpp]
 

hmn

Grand Maître
non, pas vu.

ben ce n'est pas un problème de mot de passe, mais un problème d'autorisation d'accès aux pages de ton site. Pour voir les pages de ton site, il faut se connecter. Donc regardes dans ta partie admin, les autorisations d'accès.
 

minoula2006

Nouveau membre
bonjour :)
oui bien sur il faut se connecter pour voire mes pages, le problème c que quand je me connecte avec mon login et mot de passe il faux mettre au début n'importe quoi je me redirige vers la page d'erreur , ensuite je me connecte une autre fois avec les vrais login et mot de passe pour passer à mes pages voila :)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 131
Messages
6 717 984
Membres
1 586 385
Dernier membre
beep84
Partager cette page
Haut