Proteger pages php
Fermé
ced29
-
19 févr. 2008 à 09:17
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 - 20 févr. 2008 à 21:17
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 - 20 févr. 2008 à 21:17
A voir également:
- Proteger pages php
- Proteger cellule excel - Guide
- Supprimer des pages sur word - Guide
- Easy php - Télécharger - Divers Web & Internet
- Protéger un dossier par mot de passe - Guide
17 réponses
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
19 févr. 2008 à 09:31
19 févr. 2008 à 09:31
bonjour ,je pense que si tu rajoute ca au debut de tes pages ca devrais fonctionner
<?php
//// On appelle la session
session_start();
//je verifie que la session est remplie
if (empty($_SESSION['visiteur'] ))
{
header ("Location:/ta_page_de_log.php");
exit();
}
?>
si la session est vide cela signifie que ton visiteur n'est pas loggé donc tu le redirige vers la page de connexion
@+
<?php
//// On appelle la session
session_start();
//je verifie que la session est remplie
if (empty($_SESSION['visiteur'] ))
{
header ("Location:/ta_page_de_log.php");
exit();
}
?>
si la session est vide cela signifie que ton visiteur n'est pas loggé donc tu le redirige vers la page de connexion
@+
ToTheDeath
Messages postés
60
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
6 juin 2008
5
19 févr. 2008 à 10:06
19 févr. 2008 à 10:06
Ou tu peut toujours utiliser un .htaccess
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
19 févr. 2008 à 10:07
19 févr. 2008 à 10:07
de rien ,je pense que cela fonctionne car j'ai fait ca sur mon site
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai testé ton code il me ramène automatiquement sur ma page de connexion meme si je me suis bien connecté.
voici ce que j'ai mis au début de ma page sessionactive.php (page toute simple ou il y a juste écrit "votre session est maintenant active"):
<?php
//// On appelle la session
session_start();
//je verifie que la session est remplie
if (empty($_SESSION['type_utilisateur'] ))
{
header ("Location:/index.htm");
exit();
}
?>
j'arrête pas de bidouiller dans tous les sens ça marche toujours pas, tu peux regarder si c'est dans mon code de la page verification.php qu'il y a un problème stp?
je vois pas quoi faire !!!
J'ai envi de reussir avec les session start, ça fait pas mal de temps que je suis dessus et j'y arriverais bien un jour donc pour .htaccess non merci.
merci davance
voici ce que j'ai mis au début de ma page sessionactive.php (page toute simple ou il y a juste écrit "votre session est maintenant active"):
<?php
//// On appelle la session
session_start();
//je verifie que la session est remplie
if (empty($_SESSION['type_utilisateur'] ))
{
header ("Location:/index.htm");
exit();
}
?>
j'arrête pas de bidouiller dans tous les sens ça marche toujours pas, tu peux regarder si c'est dans mon code de la page verification.php qu'il y a un problème stp?
je vois pas quoi faire !!!
J'ai envi de reussir avec les session start, ça fait pas mal de temps que je suis dessus et j'y arriverais bien un jour donc pour .htaccess non merci.
merci davance
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
19 févr. 2008 à 14:04
19 févr. 2008 à 14:04
logiquement si t'est connecté la procedure ignore ce qui il ya entre les { },donc apres la sequence
if (empty($_SESSION['type_utilisateur'] ))
{
header ("Location:/index.htm");
exit();
}
ilfaut que tu continue ta page
un exemple
<?php
//// On appelle la session
session_start();
////je verifie que la ssession est remplie
if (empty($_SESSION['visiteur'] ))
{
header ("Location:login.php");
exit();
}
//affichage des donnée de l'utilisateur
//connexion a la bd
$connexion=mysqli_connect('***,***','***','***');
if (!$connexion) {
die('connexion impossible au serveur' .mysqli_error());
exit();
}
//lancemùent de la requte affichage des valeurs en mémoire
$visiteur= $_SESSION['visiteur'];
$sql = "SELECT * FROM inscription WHERE Login= '$visiteur' ";
$cherchenom = mysqli_query($connexion,$sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysqli_error());
$req = mysqli_fetch_array($cherchenom);
//attribution des valeurs
$pass=$req['Mot_passe'];
$mail=$req['Email'];
$nom=$req['Nom'];
$prenom=$req['Prenom'];
$departement=$req['Departement'];
$pays=$req['Pays'];
$sexe=$req['Sexe'];
$adresse=$req['Adresse'];
$ville=$req['Ville'];
$telephone=$req['Telephone'];
mysqli_free_result($req);
mysqli_close();
puis ensuite verif des infos et affichage
j'ai repris le debut de mes codes
si a cahque fois tu est redirigé vers ta page index.htm c'est surement qu'apres y'a plus rien
petite precison il faut que tu place la verif de session au debut de ta page avant les tag head et tu met ca sur toutes les pages que tu veut "proteger" par mot de passe
@+
if (empty($_SESSION['type_utilisateur'] ))
{
header ("Location:/index.htm");
exit();
}
ilfaut que tu continue ta page
un exemple
<?php
//// On appelle la session
session_start();
////je verifie que la ssession est remplie
if (empty($_SESSION['visiteur'] ))
{
header ("Location:login.php");
exit();
}
//affichage des donnée de l'utilisateur
//connexion a la bd
$connexion=mysqli_connect('***,***','***','***');
if (!$connexion) {
die('connexion impossible au serveur' .mysqli_error());
exit();
}
//lancemùent de la requte affichage des valeurs en mémoire
$visiteur= $_SESSION['visiteur'];
$sql = "SELECT * FROM inscription WHERE Login= '$visiteur' ";
$cherchenom = mysqli_query($connexion,$sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysqli_error());
$req = mysqli_fetch_array($cherchenom);
//attribution des valeurs
$pass=$req['Mot_passe'];
$mail=$req['Email'];
$nom=$req['Nom'];
$prenom=$req['Prenom'];
$departement=$req['Departement'];
$pays=$req['Pays'];
$sexe=$req['Sexe'];
$adresse=$req['Adresse'];
$ville=$req['Ville'];
$telephone=$req['Telephone'];
mysqli_free_result($req);
mysqli_close();
puis ensuite verif des infos et affichage
j'ai repris le debut de mes codes
si a cahque fois tu est redirigé vers ta page index.htm c'est surement qu'apres y'a plus rien
petite precison il faut que tu place la verif de session au debut de ta page avant les tag head et tu met ca sur toutes les pages que tu veut "proteger" par mot de passe
@+
lol j'y arrive toujours pas, bon voici mon code :
Voici ma page INDEX.HTM :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Connection</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
body
{
background-color: #FFFFCC;
}
table
{
/*#FFB56A -> Orange*/
margin-top: 1%;
margin-bottom: 1%;
margin-left: 25%;
margin-right: 25%;
border-width: 2;
border-style: solid;
border-color: #000000;
border-collapse: collapse;
width: 50%;
padding: 0px;
}
td
{
background-color: #FFFFFF;
border-width: 2;
border-style: solid;
border-color: #000000;
vertical-align: middle;
text-align: left;
}
</style>
</head>
<link href="test.css" rel="stylesheet" type="text/css">
</head>
<body>
<p align="center"> </p>
<p align="center"> </p>
<p align="center"> </p>
<div align="center"></div>
<table width="734" height="277" border="1" align="center">
<tr>
<td width="17%" height="84"><img src="dcns.jpg" width="166" height="105"></td>
<td width="83%"><div align="center"><strong><font color="#FF0000" size="2">Veuillez
choisir votre compte et saisir votre mot de passe</font></strong></div></td>
</tr>
<tr>
<td height="172" colspan="2"><form action="verification.php" method="post">
<p> </p>
<table width="61%" border="1" align="center">
<tr>
<td height="29" colspan="2"> <div align="center">
<p class="fondbleu"><strong><font color="#000000" size="3">Identification</font></strong></p>
</div></td>
</tr>
<tr>
<td width="46%" height="31"><div align="left"><font color="#0000CC" size="2"><strong>Type
d'utilisateur :</strong></font></div></td>
<td width="54%"><font color="#0000CC">
<select name="utilisateurs" >
<option value="privilegie">privilegie</option>
<option value="simple">simple</option>
</select>
</font></td>
</tr>
<tr>
<td><div align="left"><font color="#0000CC" size="2"><strong>Mot de
passe : </strong></font></div></td>
<td><font color="#0000CC">
<input type="password" name="mdp"><code type="php">
</font></td>
</tr>
<tr >
<td height="68" colspan="2" > <div align="center">
<p> </p>
<p class="fondbleu">
<input name="submit" type="submit" value="Envoyer">
</p>
</div></td>
</tr>
</table>
</form>
<p> </p>
</div></td>
</tr>
</table>
</body>
</html>
Voici ma page VERIFICATION.PHP :
<?php
mysql_connect("localhost", "root", "adminserv") or die("erreur de connexion au serveur");
mysql_select_db("compte") or die("erreur de connexion a la base de donnees");
if(isset($_POST) && !empty($_POST['utilisateurs']) && !empty($_POST['mdp'])) {
extract($_POST);
// ...ON RECUPERE LE MDP QUI CORRESPOND A L'UTILISATEUR
$requete = "SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur='".$utilisateurs."'";
$resultat = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());
$donnees = mysql_fetch_assoc($resultat);
if($donnees['mdp_utilisateur'] != $mdp) {
echo '<p>Mauvais mot de passe. Merci de recommencer</p>';
include('index.htm'); // INCLUSION DE LA 1ERE PAGE identification.htm
exit;
}
else {
session_start();
$_SESSION['type_utilisateur'] = $utilisateur;
echo ' <meta http-equiv = "Refresh" content = "0; URL=sessionactive.php">';
// ici vous pouvez afficher un lien pour renvoyer
// vers la page d'accueil de votre espace membres
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('index.htm');
exit;
}
?>
<?php
// DECONNEXION DE LA BD
mysql_close();
?>
Voici ma page SESSIONACTIVE.PHP :
<?php
session_start();
if (empty($_SESSION['type_utilisateur'] ))
{
header ("Location:/index.htm");
exit();
}
?>
<?php
$date=date("d-m-Y");
$heure=date("H:i");
print("Nous sommes le $date et il est $heure");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Système</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
body
{
background-color: #FFFFCC;
}
table
{
/*#FFB56A -> Orange*/
margin-top: 1%;
margin-bottom: 1%;
margin-left: 25%;
margin-right: 25%;
border-width: 2;
border-style: solid;
border-color: #000000;
border-collapse: collapse;
width: 50%;
padding: 0px;
}
td
{
background-color: #FFFFFF;
border-width: 2;
border-style: solid;
border-color: #000000;
width: 50%;
vertical-align: middle;
text-align: left;
}
</style>
</head>
<body>
<table width="77%" height="543" border="1">
<tr>
<td width="17%" height="100"><img src="dcns.jpg" width="166" height="105"></td>
<td width="19%"><div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload2.macromedia.com/get/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="169" height="86">
<param name="BGCOLOR" value="">
<param name="BASE" value=".">
<param name="movie" value="terminal.swf">
<param name="quality" value="high">
<embed src="terminal.swf" width="169" height="86" quality="high" pluginspage="https://get.adobe.com/flashplayer/" type="application/x-shockwave-flash" base="." ></embed>
</object>
</div></td>
<td width="19%"><div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload2.macromedia.com/get/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="169" height="96">
<param name="BGCOLOR" value="">
<param name="BASE" value=".">
<param name="movie" value="systeme.swf">
<param name="quality" value="high">
<embed src="systeme.swf" width="169" height="96" quality="high" pluginspage="https://get.adobe.com/flashplayer/" type="application/x-shockwave-flash" base="." ></embed>
</object>
</div></td>
<td width="19%"><div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload2.macromedia.com/get/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="167" height="88">
<param name="BGCOLOR" value="">
<param name="BASE" value=".">
<param name="movie" value="utilisateurs.swf">
<param name="quality" value="high">
<embed src="utilisateurs.swf" width="167" height="88" quality="high" pluginspage="https://get.adobe.com/flashplayer/" type="application/x-shockwave-flash" base="." ></embed>
</object>
</div></td>
<td width="26%"><div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload2.macromedia.com/get/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="167" height="88">
<param name="BGCOLOR" value="">
<param name="BASE" value=".">
<param name="movie" value="versions.swf">
<param name="quality" value="high">
<embed src="versions.swf" width="167" height="88" quality="high" pluginspage="https://get.adobe.com/flashplayer/" type="application/x-shockwave-flash" base="." ></embed>
</object>
</div></td>
</tr>
<tr>
<td height="418" colspan="5"> <div align="center"><strong><font color="#0000CC" size="2">Votre
session est maintenant active.</font></strong> </div></td>
</tr>
<tr>
</tr>
</table>
</body>
</html>
Sur la page index.htm j'ai mon formulaire pour entrer le mdp, cette page est lié à verification.php qui va vérifier dans la bdd et si la connexion a réussi on est renvoyé sur la page sessionactive.php (page toute simple ou est simplement écrit :"votre session est active") c'est cette page que j'essaye de protéger.
Donc voila je vois pas quoi faire d'autre j'ai bidouillé un peu dans tous les sens mais rien à y faire.
Tu vas peut-être voir directement mon problème. Enfin je l'espère ; )
@+
Voici ma page INDEX.HTM :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Connection</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
body
{
background-color: #FFFFCC;
}
table
{
/*#FFB56A -> Orange*/
margin-top: 1%;
margin-bottom: 1%;
margin-left: 25%;
margin-right: 25%;
border-width: 2;
border-style: solid;
border-color: #000000;
border-collapse: collapse;
width: 50%;
padding: 0px;
}
td
{
background-color: #FFFFFF;
border-width: 2;
border-style: solid;
border-color: #000000;
vertical-align: middle;
text-align: left;
}
</style>
</head>
<link href="test.css" rel="stylesheet" type="text/css">
</head>
<body>
<p align="center"> </p>
<p align="center"> </p>
<p align="center"> </p>
<div align="center"></div>
<table width="734" height="277" border="1" align="center">
<tr>
<td width="17%" height="84"><img src="dcns.jpg" width="166" height="105"></td>
<td width="83%"><div align="center"><strong><font color="#FF0000" size="2">Veuillez
choisir votre compte et saisir votre mot de passe</font></strong></div></td>
</tr>
<tr>
<td height="172" colspan="2"><form action="verification.php" method="post">
<p> </p>
<table width="61%" border="1" align="center">
<tr>
<td height="29" colspan="2"> <div align="center">
<p class="fondbleu"><strong><font color="#000000" size="3">Identification</font></strong></p>
</div></td>
</tr>
<tr>
<td width="46%" height="31"><div align="left"><font color="#0000CC" size="2"><strong>Type
d'utilisateur :</strong></font></div></td>
<td width="54%"><font color="#0000CC">
<select name="utilisateurs" >
<option value="privilegie">privilegie</option>
<option value="simple">simple</option>
</select>
</font></td>
</tr>
<tr>
<td><div align="left"><font color="#0000CC" size="2"><strong>Mot de
passe : </strong></font></div></td>
<td><font color="#0000CC">
<input type="password" name="mdp"><code type="php">
</font></td>
</tr>
<tr >
<td height="68" colspan="2" > <div align="center">
<p> </p>
<p class="fondbleu">
<input name="submit" type="submit" value="Envoyer">
</p>
</div></td>
</tr>
</table>
</form>
<p> </p>
</div></td>
</tr>
</table>
</body>
</html>
Voici ma page VERIFICATION.PHP :
<?php
mysql_connect("localhost", "root", "adminserv") or die("erreur de connexion au serveur");
mysql_select_db("compte") or die("erreur de connexion a la base de donnees");
if(isset($_POST) && !empty($_POST['utilisateurs']) && !empty($_POST['mdp'])) {
extract($_POST);
// ...ON RECUPERE LE MDP QUI CORRESPOND A L'UTILISATEUR
$requete = "SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur='".$utilisateurs."'";
$resultat = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());
$donnees = mysql_fetch_assoc($resultat);
if($donnees['mdp_utilisateur'] != $mdp) {
echo '<p>Mauvais mot de passe. Merci de recommencer</p>';
include('index.htm'); // INCLUSION DE LA 1ERE PAGE identification.htm
exit;
}
else {
session_start();
$_SESSION['type_utilisateur'] = $utilisateur;
echo ' <meta http-equiv = "Refresh" content = "0; URL=sessionactive.php">';
// ici vous pouvez afficher un lien pour renvoyer
// vers la page d'accueil de votre espace membres
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('index.htm');
exit;
}
?>
<?php
// DECONNEXION DE LA BD
mysql_close();
?>
Voici ma page SESSIONACTIVE.PHP :
<?php
session_start();
if (empty($_SESSION['type_utilisateur'] ))
{
header ("Location:/index.htm");
exit();
}
?>
<?php
$date=date("d-m-Y");
$heure=date("H:i");
print("Nous sommes le $date et il est $heure");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Système</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
body
{
background-color: #FFFFCC;
}
table
{
/*#FFB56A -> Orange*/
margin-top: 1%;
margin-bottom: 1%;
margin-left: 25%;
margin-right: 25%;
border-width: 2;
border-style: solid;
border-color: #000000;
border-collapse: collapse;
width: 50%;
padding: 0px;
}
td
{
background-color: #FFFFFF;
border-width: 2;
border-style: solid;
border-color: #000000;
width: 50%;
vertical-align: middle;
text-align: left;
}
</style>
</head>
<body>
<table width="77%" height="543" border="1">
<tr>
<td width="17%" height="100"><img src="dcns.jpg" width="166" height="105"></td>
<td width="19%"><div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload2.macromedia.com/get/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="169" height="86">
<param name="BGCOLOR" value="">
<param name="BASE" value=".">
<param name="movie" value="terminal.swf">
<param name="quality" value="high">
<embed src="terminal.swf" width="169" height="86" quality="high" pluginspage="https://get.adobe.com/flashplayer/" type="application/x-shockwave-flash" base="." ></embed>
</object>
</div></td>
<td width="19%"><div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload2.macromedia.com/get/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="169" height="96">
<param name="BGCOLOR" value="">
<param name="BASE" value=".">
<param name="movie" value="systeme.swf">
<param name="quality" value="high">
<embed src="systeme.swf" width="169" height="96" quality="high" pluginspage="https://get.adobe.com/flashplayer/" type="application/x-shockwave-flash" base="." ></embed>
</object>
</div></td>
<td width="19%"><div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload2.macromedia.com/get/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="167" height="88">
<param name="BGCOLOR" value="">
<param name="BASE" value=".">
<param name="movie" value="utilisateurs.swf">
<param name="quality" value="high">
<embed src="utilisateurs.swf" width="167" height="88" quality="high" pluginspage="https://get.adobe.com/flashplayer/" type="application/x-shockwave-flash" base="." ></embed>
</object>
</div></td>
<td width="26%"><div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload2.macromedia.com/get/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="167" height="88">
<param name="BGCOLOR" value="">
<param name="BASE" value=".">
<param name="movie" value="versions.swf">
<param name="quality" value="high">
<embed src="versions.swf" width="167" height="88" quality="high" pluginspage="https://get.adobe.com/flashplayer/" type="application/x-shockwave-flash" base="." ></embed>
</object>
</div></td>
</tr>
<tr>
<td height="418" colspan="5"> <div align="center"><strong><font color="#0000CC" size="2">Votre
session est maintenant active.</font></strong> </div></td>
</tr>
<tr>
</tr>
</table>
</body>
</html>
Sur la page index.htm j'ai mon formulaire pour entrer le mdp, cette page est lié à verification.php qui va vérifier dans la bdd et si la connexion a réussi on est renvoyé sur la page sessionactive.php (page toute simple ou est simplement écrit :"votre session est active") c'est cette page que j'essaye de protéger.
Donc voila je vois pas quoi faire d'autre j'ai bidouillé un peu dans tous les sens mais rien à y faire.
Tu vas peut-être voir directement mon problème. Enfin je l'espère ; )
@+
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
19 févr. 2008 à 15:58
19 févr. 2008 à 15:58
oki je regarde
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
19 févr. 2008 à 16:44
19 févr. 2008 à 16:44
je ferai peut etre comme ça
//***************************************************************************
// mon code
//*************************
//**********
//verification que login et password sont remplis
if (empty ($_POST['utilisateur']) OR empty($_POST['mdp']))
{
//si c'est le pseudo
if (empty($_POST['utilisateur']))
{
echo 'Le champ utilisateur est vide';
exit();
}
//si c'est le psw
if (empty($_POST['mdp']))
{
echo 'Le mot de passe est vide';
exit();
}
}
//les champs sont remplis
$client = htmlspecialchars(addslashes($_POST['utilisateur'] ));//pour eviter d'avoir du script dans le nom d'utilisateur
$crypt=md5($_POST['mdp']);//la je rajoute ca c'est pour crypté le MP dans da base
mysql_connect("localhost", "root", "adminserv") or die("erreur de connexion au serveur");
mysql_select_db("compte") or die("erreur de connexion a la base de donnees");
$requete = "SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur='".$utilisateurs."'";
$utilisateur=$irequete['lutilisateur'];
//affichage des resultats
if (($utilisateur==$client))
{
// si on obtient une réponse, alors l'utilisateur est un membre
session_start();
$_SESSION['visiteur'] = $utilisateur;
header ("Location:la_page_ou_tu_veut_etre_redirigé_quand_OK");
}
else
{
?>
<!-- la le mot de passe ou le login n'est pas le bon on renvoi sur la page d'auth.
<p> </p>
<table width="50%" border="10" bgcolor="#FFCC99">
<tr>
<th scope="col"><a href="/prive/login.php">
<h4>Désolé ,le pseudo ou le mot de passe sont inconnus.<br />Cliquez pour réessayer</h4></a></th>
</tr>
<tr>
<th scope="col"><a href="/index.html">
<strong>Quitter l'espace membre et retourner à l'accueil</strong>
</a></th>
</tr>
</table>
<?
exit();
}
?>
//*****************************************************************************
voila je suis pas sur que tout soit correct mais cela devrais marcher (j'ai pas tester)
quand aux noms des variables la j'ai peut etre "merdé" verifie que ce soit bien les bonnes.
Pour le mdp pense à le crypté avec un coup de md5 (mais pense aussi a le sauvegarder en clair pour le recupere au cas ou..)
tiens moi au courant
//***************************************************************************
// mon code
//*************************
//**********
//verification que login et password sont remplis
if (empty ($_POST['utilisateur']) OR empty($_POST['mdp']))
{
//si c'est le pseudo
if (empty($_POST['utilisateur']))
{
echo 'Le champ utilisateur est vide';
exit();
}
//si c'est le psw
if (empty($_POST['mdp']))
{
echo 'Le mot de passe est vide';
exit();
}
}
//les champs sont remplis
$client = htmlspecialchars(addslashes($_POST['utilisateur'] ));//pour eviter d'avoir du script dans le nom d'utilisateur
$crypt=md5($_POST['mdp']);//la je rajoute ca c'est pour crypté le MP dans da base
mysql_connect("localhost", "root", "adminserv") or die("erreur de connexion au serveur");
mysql_select_db("compte") or die("erreur de connexion a la base de donnees");
$requete = "SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur='".$utilisateurs."'";
$utilisateur=$irequete['lutilisateur'];
//affichage des resultats
if (($utilisateur==$client))
{
// si on obtient une réponse, alors l'utilisateur est un membre
session_start();
$_SESSION['visiteur'] = $utilisateur;
header ("Location:la_page_ou_tu_veut_etre_redirigé_quand_OK");
}
else
{
?>
<!-- la le mot de passe ou le login n'est pas le bon on renvoi sur la page d'auth.
<p> </p>
<table width="50%" border="10" bgcolor="#FFCC99">
<tr>
<th scope="col"><a href="/prive/login.php">
<h4>Désolé ,le pseudo ou le mot de passe sont inconnus.<br />Cliquez pour réessayer</h4></a></th>
</tr>
<tr>
<th scope="col"><a href="/index.html">
<strong>Quitter l'espace membre et retourner à l'accueil</strong>
</a></th>
</tr>
</table>
<?
exit();
}
?>
//*****************************************************************************
voila je suis pas sur que tout soit correct mais cela devrais marcher (j'ai pas tester)
quand aux noms des variables la j'ai peut etre "merdé" verifie que ce soit bien les bonnes.
Pour le mdp pense à le crypté avec un coup de md5 (mais pense aussi a le sauvegarder en clair pour le recupere au cas ou..)
tiens moi au courant
merci encore de ton aide, j'ai testé ton code, il marche bien mais par contre ça me fait le meme problème à savoir un renvoi sur la page html malgré une bonne connexion.
voici le code :
<?
if (empty($_POST['mdp']))
{
echo 'Le mot de passe est vide';
exit();
}
}
//les champs sont remplis
$client = htmlspecialchars(addslashes($_POST['utilisateur'] ));//pour eviter d'avoir du script dans le nom d'utilisateur
$crypt=md5($_POST['mdp']);//la je rajoute ca c'est pour crypté le MP dans da base
mysql_connect("localhost", "root", "adminserv") or die("erreur de connexion au serveur");
mysql_select_db("compte") or die("erreur de connexion a la base de donnees");
$requete = "SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur='".$utilisateurs."'";
$utilisateur=$requete['utilisateur'];
//affichage des resultats
if (($utilisateur==$client))
{
// si on obtient une réponse, alors l'utilisateur est un membre
session_start();
$_SESSION['client'] = $utilisateur;
header ("Location:sessionactive.php");
}
else
{
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('index.htm');
exit;
}
?>
<?php
// DECONNEXION DE LA BD
mysql_close();
?>
Après sur la page sessionactive.php j'ai mis le code suivant au début:
<?php
session_start();
if (empty($_SESSION['client'] ))
{
header ("Location:index.htm");
exit();
}
?>
Quand je rentre le mdp et je clique sur envoyer il me renvoit sur la page ou je suis càd page index.htm et il y a marqué vous avez oublié de remplir un champ ( j'ai juste le champ mdp a saisir car pour lè utilisateur j'ai fait un menu déroulan avec 2 choix possibles : privilegie ou simple)
La je vois pas du tout comment faire, le problème vient forcément du code? je t'explique mon serveur web est sous linux (mandrake 10.1) et le pc sur lequel je développe est sous xp pro. Sur le serveur j'ai donc php, mysql , apache et phpmyadmin. Il n'y aurait quelques choses à paramétrer pour autoriser les session start() ??? Désole je m'y connais pas beaucoup en php mais la j'ai testé différents codes et ça fonctionne pas!
J'espère qu'on va trouver la solution.
Merci d'avance
@+
voici le code :
<?
if (empty($_POST['mdp']))
{
echo 'Le mot de passe est vide';
exit();
}
}
//les champs sont remplis
$client = htmlspecialchars(addslashes($_POST['utilisateur'] ));//pour eviter d'avoir du script dans le nom d'utilisateur
$crypt=md5($_POST['mdp']);//la je rajoute ca c'est pour crypté le MP dans da base
mysql_connect("localhost", "root", "adminserv") or die("erreur de connexion au serveur");
mysql_select_db("compte") or die("erreur de connexion a la base de donnees");
$requete = "SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur='".$utilisateurs."'";
$utilisateur=$requete['utilisateur'];
//affichage des resultats
if (($utilisateur==$client))
{
// si on obtient une réponse, alors l'utilisateur est un membre
session_start();
$_SESSION['client'] = $utilisateur;
header ("Location:sessionactive.php");
}
else
{
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('index.htm');
exit;
}
?>
<?php
// DECONNEXION DE LA BD
mysql_close();
?>
Après sur la page sessionactive.php j'ai mis le code suivant au début:
<?php
session_start();
if (empty($_SESSION['client'] ))
{
header ("Location:index.htm");
exit();
}
?>
Quand je rentre le mdp et je clique sur envoyer il me renvoit sur la page ou je suis càd page index.htm et il y a marqué vous avez oublié de remplir un champ ( j'ai juste le champ mdp a saisir car pour lè utilisateur j'ai fait un menu déroulan avec 2 choix possibles : privilegie ou simple)
La je vois pas du tout comment faire, le problème vient forcément du code? je t'explique mon serveur web est sous linux (mandrake 10.1) et le pc sur lequel je développe est sous xp pro. Sur le serveur j'ai donc php, mysql , apache et phpmyadmin. Il n'y aurait quelques choses à paramétrer pour autoriser les session start() ??? Désole je m'y connais pas beaucoup en php mais la j'ai testé différents codes et ça fonctionne pas!
J'espère qu'on va trouver la solution.
Merci d'avance
@+
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
20 févr. 2008 à 10:31
20 févr. 2008 à 10:31
hello on devrais trouver...
**********************************
<?
if (empty($_POST['mdp']))
{
echo 'Le mot de passe est vide';
exit();
}
} ==> une accolade de trop
*********************************
$requete = "SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur='".$utilisateurs."'";
vire le . $utilisateur dans la clause where
WHERE type_utilisateur='$utilisateur'";
************************************
je rectifie ton code...
/ si on obtient une réponse, alors l'utilisateur est un membre
session_start();
if ($_SESSION['client'] = $utilisateur) //j'ai rajouté le if
{
header ("Location:sessionactive.php");
}
else
{
// inutile ==>else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('index.htm');
exit();
}
// DECONNEXION DE LA BD
mysql_close();
?>
***************************
voila essaye comme ca.
Quand au session sur apache si mes souvenir sont bon les modules sont activés par défaut,donc t'a pas besoin d'activer quoi que ce soit.
tiens moi au courant
@+
**********************************
<?
if (empty($_POST['mdp']))
{
echo 'Le mot de passe est vide';
exit();
}
} ==> une accolade de trop
*********************************
$requete = "SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur='".$utilisateurs."'";
vire le . $utilisateur dans la clause where
WHERE type_utilisateur='$utilisateur'";
************************************
je rectifie ton code...
/ si on obtient une réponse, alors l'utilisateur est un membre
session_start();
if ($_SESSION['client'] = $utilisateur) //j'ai rajouté le if
{
header ("Location:sessionactive.php");
}
else
{
// inutile ==>else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('index.htm');
exit();
}
// DECONNEXION DE LA BD
mysql_close();
?>
***************************
voila essaye comme ca.
Quand au session sur apache si mes souvenir sont bon les modules sont activés par défaut,donc t'a pas besoin d'activer quoi que ce soit.
tiens moi au courant
@+
re bon je viens d'apporter les modifications que tu m'as indiquée ça fonctionne presque ; )
Quand je tape l'url sessionactive.php par exemple sans mettre connecté au préalable, il me ramène bien à la page index.htm
seul souci c'est que je peux entrer n'importe quel mot de passe il se connecte quand même, je vois pas comment modifier le code pour qu'il vérifie bien le mot de passe entré avec celui de la base de donnée.
merci de ton aide sérieux
Quand je tape l'url sessionactive.php par exemple sans mettre connecté au préalable, il me ramène bien à la page index.htm
seul souci c'est que je peux entrer n'importe quel mot de passe il se connecte quand même, je vois pas comment modifier le code pour qu'il vérifie bien le mot de passe entré avec celui de la base de donnée.
merci de ton aide sérieux
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
20 févr. 2008 à 15:34
20 févr. 2008 à 15:34
content que je te fasse avancer
je sais pas comment est organisé ta base de donnée mais tu peut peut etre essayer ca :
$requete = "SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur='$utilisateur' AND mdp='$crypt'";
bien sur si dans ta base ton MP est pas crypté tu remplace $crypt par $_POST['mdp']
la requete va chercher dans ta table mdp l'utilisateur ET le MP
si les 2 correspondent pas tu te connecte pas.
teste ca et tiens moi au courant
@+
je sais pas comment est organisé ta base de donnée mais tu peut peut etre essayer ca :
$requete = "SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur='$utilisateur' AND mdp='$crypt'";
bien sur si dans ta base ton MP est pas crypté tu remplace $crypt par $_POST['mdp']
la requete va chercher dans ta table mdp l'utilisateur ET le MP
si les 2 correspondent pas tu te connecte pas.
teste ca et tiens moi au courant
@+
j'ai fait quelques modif et c'est good ça marche nikel; merci beau pour ton aide j'ai trop galérer et ce n'est que le début lol , maintenant je dois faire une page mise a jour du mot de passe ça ça devrait aller
mais sinon je dois faire une page qui me permettra de récupérer des données d'un fichier texte et de les modifier si nécessaire. Je t'explique je suis en stage et il me reste 2 semaine pour faire min IHM. C'est intéressant mais pas si facile que ça ; )
J'ai quelques questions pour toi tout d'abord pour le cryptage des mots de passe comment ça se passe? moi je les vois en clair dans ma bdd, il faut faire quoi pour les crypter ? md5 correspond à quoi?
D'autres parts j'aurais voulu savoir si tu t'y connaissais beaucoup en php? J'aurais qu'on s'échange nos adresses mails si jamais tu peux me filer un coup de main quand j'ai un soucis. Enfin si t'as pas le temps de t'occuper encore de moi je comprendrais looool .
Merci bien en tout cas, je te payerais un coup si tu passe sur Brest un de ces 4 ; )
@+
mais sinon je dois faire une page qui me permettra de récupérer des données d'un fichier texte et de les modifier si nécessaire. Je t'explique je suis en stage et il me reste 2 semaine pour faire min IHM. C'est intéressant mais pas si facile que ça ; )
J'ai quelques questions pour toi tout d'abord pour le cryptage des mots de passe comment ça se passe? moi je les vois en clair dans ma bdd, il faut faire quoi pour les crypter ? md5 correspond à quoi?
D'autres parts j'aurais voulu savoir si tu t'y connaissais beaucoup en php? J'aurais qu'on s'échange nos adresses mails si jamais tu peux me filer un coup de main quand j'ai un soucis. Enfin si t'as pas le temps de t'occuper encore de moi je comprendrais looool .
Merci bien en tout cas, je te payerais un coup si tu passe sur Brest un de ces 4 ; )
@+
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
20 févr. 2008 à 21:17
20 févr. 2008 à 21:17
re,
en ce qui concerne le cryptage ,enfin plutot du haschage le terme est plus exact,(j'ai plus les liens des sites en tete mais google devrais te trouver ca)
c'est tout simple d'autant qu' apache possede le module qui permet de faire ça
exemple de code:
//je crypte le nouveau MP
$crypt=md5($_POST['password']);
il suffit de mettre md5 devant ton MP etvoila
une fois crypté dans ta base tu aura ceci
098f6bcd4621d373cade4e832627b4f6
ca correspond au mot de passe 123 en clair
ca sert surtout a securisé les MP si quelqu'un pirate ta BD il verra que ca comme mp
098f6bcd4621d373cade4e832627b4f6
Par contre si tu crypte prevois de garder le MP en clair (pas dans la meme table) pour pouvoir eventuellement le recuperer
pour le mail y'a pas de soucis va sur mon site http://milsodor.no-ip.org
tu verra ce que je fait et en plus tu aura l'adresse mail
Quand a ma connaissance du php ,je suis pas un pro y'a 3 mois environ que je m'y suis mis,je progresse mais si tu a besoin d'aide n'hesite pas si je peut c'est avec plaisir.
Un conseil potasse mais surtout ne copie pas "betement" lescodes,il vaut mieux les retaper,je sais c'est plus long mais au moins tu sait ce que tu fait.
je note pour le coup à boire ,mais brest et beziers c'est pas à coté lol!!!!!!
bonne soirée et n'hesite pas si t'a un soucis
@+
en ce qui concerne le cryptage ,enfin plutot du haschage le terme est plus exact,(j'ai plus les liens des sites en tete mais google devrais te trouver ca)
c'est tout simple d'autant qu' apache possede le module qui permet de faire ça
exemple de code:
//je crypte le nouveau MP
$crypt=md5($_POST['password']);
il suffit de mettre md5 devant ton MP etvoila
une fois crypté dans ta base tu aura ceci
098f6bcd4621d373cade4e832627b4f6
ca correspond au mot de passe 123 en clair
ca sert surtout a securisé les MP si quelqu'un pirate ta BD il verra que ca comme mp
098f6bcd4621d373cade4e832627b4f6
Par contre si tu crypte prevois de garder le MP en clair (pas dans la meme table) pour pouvoir eventuellement le recuperer
pour le mail y'a pas de soucis va sur mon site http://milsodor.no-ip.org
tu verra ce que je fait et en plus tu aura l'adresse mail
Quand a ma connaissance du php ,je suis pas un pro y'a 3 mois environ que je m'y suis mis,je progresse mais si tu a besoin d'aide n'hesite pas si je peut c'est avec plaisir.
Un conseil potasse mais surtout ne copie pas "betement" lescodes,il vaut mieux les retaper,je sais c'est plus long mais au moins tu sait ce que tu fait.
je note pour le coup à boire ,mais brest et beziers c'est pas à coté lol!!!!!!
bonne soirée et n'hesite pas si t'a un soucis
@+