Script php-mysql pour securiser une page
Résolu/Fermé
gahmed
Messages postés
71
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
12 septembre 2018
-
14 juin 2009 à 02:01
gahmed Messages postés 71 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 12 septembre 2018 - 21 juil. 2009 à 14:58
gahmed Messages postés 71 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 12 septembre 2018 - 21 juil. 2009 à 14:58
A voir également:
- Script php-mysql pour securiser une page
- Supprimer une page word - Guide
- Script vidéo youtube - Guide
- Traduire une page web - Guide
- Créer une page facebook - Guide
- Page d'accueil iphone - Guide
13 réponses
william7007
Messages postés
335
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2010
46
14 juin 2009 à 03:51
14 juin 2009 à 03:51
bsr
je suis partant pour toutes suggestions et correction
cdlt.
je suis partant pour toutes suggestions et correction
<body> <?php /* je part du principe ici que ta connexion se trouve dans un autre fichier aui porte le nom de connexion_BDD.php et qui se trouve ici dans le même dossier que cette page aussi nous supposerons que dans ta base tu pocède une table nommé "utilisateur" et qui pocède entre autre deux atributs nommé respectivement : uti_login et uti_mdp designant ainsi le login et le mot de passe de tes utilisateurs */ include "connexion_BDD.php"; if(isset($_POST['bt_connexion'])) // bt_connexion designe le nom de ton Boutton "je l'ai renomé { //récuperation des variables $log = htmlentities( addslashes($_POST['log'])); $mdp = htmlentities( addslashes($_POST['mdp'])); $statut = $_POST['st']; // test de verification Si l'utilisateur existe vraiment $req_ver = mysql_query("SELECT * FROM utilisateur WHERE uti_login =".$log); if(mysql_num_rows($req_ver) == 0) { echo '<script>alert("Login Incorect")</script>'; } else { $row_ver = mysql_fetch_array($req_ver); if($row_ver['uti_mdp'] != $mdp) { echo '<script>alert("Mot de passe incorect")</script>'; } else { if($statut == "s") { echo "<script>window.location = page1.php</script>"; } elseif($statut == "m") { echo "<script>window.location = page2.php</script>"; } } } } ?> <form method="post" action=""> <center> <table width="343" height="221" bgcolor="#92b012"> <tr> <td height="30"> LOGIN </td> <td> <input type="text" name="log" > </td> </tr> <tr> <td> MOT DE PASSE </td> <td> <input type="password" name="mdp"> </td> </tr> <tr> <td> STATUT </td> <td> <select name="st"> <option value="m">MEDECIN</option> <option value="s">SECRETAIRE</option> </select> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="CONNEXION" name="bt_connexion"> </td> </tr> </table> </center> </form> </body>
cdlt.
Merci pour le code mais un petit probleme car sur ma base de donnees j'ai deux tables (docteur et secretaire) qui contiennent chacune un login et un password mais ta requete ne gere que pour une table alors comment faire pour les deux tables?
Merci d'Avance
Merci d'Avance
william7007
Messages postés
335
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2010
46
14 juin 2009 à 13:47
14 juin 2009 à 13:47
bjr
tu vois c'est pourquoi il est important lorsque l'on demande de l'aide de bien detailler. ça permet d'eviter de perdre de temps.
pas grave donne moi la structure exacte de tes tables et des contraintes d'integrité et je te renvoie le code tout frais.
cdlt.
tu vois c'est pourquoi il est important lorsque l'on demande de l'aide de bien detailler. ça permet d'eviter de perdre de temps.
pas grave donne moi la structure exacte de tes tables et des contraintes d'integrité et je te renvoie le code tout frais.
cdlt.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
william7007
Messages postés
335
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2010
46
14 juin 2009 à 14:51
14 juin 2009 à 14:51
bjr essaie ça voir
<body> <?php /* je part du principe ici que ta connexion se trouve dans un autre fichier aui porte le nom de connexion_BDD.php et qui se trouve ici dans le même dossier que cette page aussi nous supposerons que dans ta base tu pocède une table nommé "utilisateur" et qui pocède entre autre deux atributs nommé respectivement : uti_login et uti_mdp designant ainsi le login et le mot de passe de tes utilisateurs */ include "connexion_BDD.php"; if(isset($_POST['bt_connexion'])) // bt_connexion designe le nom de ton Boutton "je l'ai renomé { //récuperation des variables $log = htmlentities( addslashes($_POST['log'])); $mdp = htmlentities( addslashes($_POST['mdp'])); $statut = $_POST['st']; if($statut = "m") { // test de verification Si le Medecin existe vraiment $req_ver = mysql_query("SELECT * FROM Docteur WHERE identifiant =".$log); if(mysql_num_rows($req_ver) == 0) { echo '<script>alert("Login Incorect")</script>'; } else { $row_ver = mysql_fetch_array($req_ver); if($row_ver['password'] != $mdp) { echo '<script>alert("Mot de passe incorect")</script>'; } else { echo "<script>window.location = page2.php</script>"; } } } elseif($statut = "s") { // test de verification Si laSecretaire existe vraiment $req_ver = mysql_query("SELECT * FROM secretaire WHERE login =".$log); if(mysql_num_rows($req_ver) == 0) { echo '<script>alert("Login Incorect")</script>'; } else { $row_ver = mysql_fetch_array($req_ver); if($row_ver['pass'] != $mdp) { echo '<script>alert("Mot de passe incorect")</script>'; } else { echo "<script>window.location = page1.php</script>"; } } } } ?> <form method="post" action=""> <center> <table width="343" height="221" bgcolor="#92b012"> <tr> <td height="30"> LOGIN </td> <td> <input type="text" name="log" > </td> </tr> <tr> <td> MOT DE PASSE </td> <td> <input type="password" name="mdp"> </td> </tr> <tr> <td> STATUT </td> <td> <select name="st"> <option value="m">MEDECIN</option> <option value="s">SECRETAIRE</option> </select> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="CONNEXION" name="bt_connexion"> </td> </tr> </table> </center> </form> </body>
william7007
Messages postés
335
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2010
46
14 juin 2009 à 14:58
14 juin 2009 à 14:58
Bonjour si vraiment tu avais bien nommé les attributs de tes tables de la sorte:
Docteur(id,nomD, prenomD, login, password)
secretaire(iidS,nomS, prenomS, login, password)
alors tu pouvais utiliser une foncion comme celle qui suit et de là reduire tes lignes de codes et facilement gérer tes requetes (dans une fonction)
Docteur(id,nomD, prenomD, login, password)
secretaire(iidS,nomS, prenomS, login, password)
alors tu pouvais utiliser une foncion comme celle qui suit et de là reduire tes lignes de codes et facilement gérer tes requetes (dans une fonction)
<body> <?php /* je part du principe ici que ta connexion se trouve dans un autre fichier aui porte le nom de connexion_BDD.php et qui se trouve ici dans le même dossier que cette page aussi nous supposerons que dans ta base tu pocède une table nommé "utilisateur" et qui pocède entre autre deux atributs nommé respectivement : uti_login et uti_mdp designant ainsi le login et le mot de passe de tes utilisateurs */ function verifieIdentifiant($table, $login, $pwd) { $erreur = ""; $corect = false; $req_ver = mysql_query("SELECT * FROM ".$table." WHERE login =".$login); if(mysql_num_rows($req_ver) == 0) { $erreur = '<script>alert("Login Incorect")</script>'; } else { $row_ver = mysql_fetch_array($req_ver); if($row_ver['password'] != $pwd) { $erreur = '<script>alert("Mot de passe incorect")</script>'; } else { $erreur = "<script>window.location = page2.php</script>"; } } return $erreur; } include "connexion_BDD.php"; if(isset($_POST['bt_connexion'])) // bt_connexion designe le nom de ton Boutton "je l'ai renomé { //récuperation des variables $log = htmlentities( addslashes($_POST['log'])); $mdp = htmlentities( addslashes($_POST['mdp'])); $statut = $_POST['st']; if($statut = "m") { echo verifieIdentifiant("Docteur", $_POST['log'], $_POST['mdp']); } elseif($statut = "s") { echo verifieIdentifiant("secretaire", $_POST['log'], $_POST['mdp']); } } ?> <form method="post" action=""> <center> <table width="343" height="221" bgcolor="#92b012"> <tr> <td height="30"> LOGIN </td> <td> <input type="text" name="log" > </td> </tr> <tr> <td> MOT DE PASSE </td> <td> <input type="password" name="mdp"> </td> </tr> <tr> <td> STATUT </td> <td> <select name="st"> <option value="m">MEDECIN</option> <option value="s">SECRETAIRE</option> </select> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="CONNEXION" name="bt_connexion"> </td> </tr> </table> </center> </form> </body>
je passe pas il met l'erreur la
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\FANN\accueil.php on line 23
Bonjour,
Je te suggère de mettre à la place de :
Docteur(id,nomD, prenomD, login, password)
secretaire(iidS,nomS, prenomS, login, password)
Mettre :
cabinet(id,nom, prenom, login, password, fonction);
Ainsi, tu peux définir la "fonction" de chaque utilisateur sur la meme "table" (cabinet ici), Ainsi le rediriger vers l'interface voulu.
Je te suggère de mettre à la place de :
Docteur(id,nomD, prenomD, login, password)
secretaire(iidS,nomS, prenomS, login, password)
Mettre :
cabinet(id,nom, prenom, login, password, fonction);
Ainsi, tu peux définir la "fonction" de chaque utilisateur sur la meme "table" (cabinet ici), Ainsi le rediriger vers l'interface voulu.
Overstyle
Messages postés
32
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
7 mai 2011
1
14 juin 2009 à 15:19
14 juin 2009 à 15:19
Bonjour,
peut-être que je me trompe mais je pense que le plus simple serait de faire une seule Table 'utilisateurs' avec les champs:
id,
nom,
prenom,
password ,
statut
avec une requete du genre:
$query_connexion = mysql_query("SELECT * FROM utilisateurs");
$fetch_connexion = mysql_fetch_array($query_connexion);
if($fetch_connexion['statut'] == medecin)
{
header("Location:page2.php");
}
elseif($fetch_connexion['statut'] == secretaire)
{
header("Location:page1.php");
}
else
{
// A toi de voir...
}
Évidemment on n'a plus besoin de la liste déroulante dans le formulaire...
En espérant avoir été utile
@+
peut-être que je me trompe mais je pense que le plus simple serait de faire une seule Table 'utilisateurs' avec les champs:
id,
nom,
prenom,
password ,
statut
avec une requete du genre:
$query_connexion = mysql_query("SELECT * FROM utilisateurs");
$fetch_connexion = mysql_fetch_array($query_connexion);
if($fetch_connexion['statut'] == medecin)
{
header("Location:page2.php");
}
elseif($fetch_connexion['statut'] == secretaire)
{
header("Location:page1.php");
}
else
{
// A toi de voir...
}
Évidemment on n'a plus besoin de la liste déroulante dans le formulaire...
En espérant avoir été utile
@+
slt j'ai fait ce que tu m'as dit a savir mettre tut dans une meme table mais il ya tjrs des erreurs voila le code maintenant
les erreurs sont
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\FANN\accueil.php:15) in C:\wamp\www\FANN\accueil.php on line 85
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\FANN\accueil.php:15) in C:\wamp\www\FANN\accueil.php on line 87
<form method="post"> <center> <table width="343" height="221" bgcolor="#92b012"> <tr> <td height="30"> LOGIN </td> <td> <input type="text" name="log" > </td> </tr> <tr> <td> MOT DE PASSE </td> <td> <input type="password" name="mdp"> </td> </tr> <tr> <td> STATUT </td> <td> <select name="st"> <option value="m">MEDECIN</option> <option value="s">SECRETAIRE</option> </select> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="CONNEXION" name="bt_connexion"> </td> </tr> </table> </center> </form> <?php //page me permettant de me loger a differentes instances $host='localhost'; $user='root'; $pass=''; $base='hopital'; $connect=mysql_connect($host,$user,$pass)or die("Une erreur est apparue lors de la connexion"); $select=mysql_select_db($base,$connect)or die("Une erreur est apparue lors de la connexion à la base de données"); $r1=$_POST['log']; $r2=$_POST['mdp']; $req="select * from personnel where speudo=\"$r1\" and password=\"$r2\""; if ($res=mysql_query($req)) { echo "Succes"; }else echo "echec requete"; $reponse=mysql_fetch_array($res); if ( $reponse['speudo'] != NULL) { $timestamp_expire=time()+ 24*3600; setcookie('speudo',$reponse['log'],$timestamp_expire); header("location:page1.php "); } else { header("location:accueil.php "); } mysql_close(); ?>
les erreurs sont
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\FANN\accueil.php:15) in C:\wamp\www\FANN\accueil.php on line 85
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\FANN\accueil.php:15) in C:\wamp\www\FANN\accueil.php on line 87
Overstyle
Messages postés
32
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
7 mai 2011
1
22 juin 2009 à 13:46
22 juin 2009 à 13:46
Il suffit te placer ton script php avant la balise <head> et de laisser ton formulaire la ou il est...
gahmed
Messages postés
71
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
12 septembre 2018
3
21 juil. 2009 à 14:58
21 juil. 2009 à 14:58
<?php //connection au serveur $cnx = mysql_connect( "localhost", "root", "" ) ; //sélection de la base de données: $db = mysql_select_db( "hospital" ) ; if(isset($_POST['bt_connexion']) && ($_POST['log']) && ($_POST['mdp'])) { //récuperation des variables $log = htmlentities( addslashes($_POST['log'])); $mdp = htmlentities( addslashes($_POST['mdp'])); $statut = $_POST['st']; // test de verification Si l'utilisateur existe vraiment $req_ver = mysql_query("SELECT * FROM personnel WHERE speudo = '$log'"); if(mysql_num_rows($req_ver) == 0) { echo '<script>alert("Login Incorect")</script>'; } else { $row_ver = mysql_fetch_array($req_ver); if($row_ver['password'] != $mdp) { echo '<script>alert("Mot de passe incorect")</script>'; } else { if($row_ver['statut'] == "Secretaire") { echo "<script>window.location = 'page1.php'</script>"; } else if ($row_ver['statut'] == "Medecin") { echo "<script>window.location = 'attente.php'</script>"; } } } } ?> <form method="post" action=""> <center> <table width="343" height="221" bgcolor="#92b012"> <tr> <td height="30"> LOGIN </td> <td> <input type="text" name="log" > </td> </tr> <tr> <td> MOT DE PASSE </td> <td> <input type="password" name="mdp"> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="CONNEXION" name="bt_connexion"> </td> </tr> </table> </center> </form>
j'ai trouve la solution grâce a vous tous
Merci beaucoup pour l'aide que vous m'aviez apporte pour résoudre mon problème