Bonjour,
voila je dois faire une page de login qui renvoi a une autre page qui vas tester si l'utilisateur existe dans une base mysql ( en cryptant le pass pour plus de sécurité ) puis creer une session et le renvoyer sur une autre page.
Pour cela j'ai trouvé un bon tuto que j'ai apprécié sur le forum :
http://bob.developpez.com/phpauth/
et voila le code que j'ai fais :
Login.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <html> <head> <title>Login Page</title> <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' /> <script language="javascript" type="text/javascript" src="login.js"></script> </head> <body> <script type="text/javascript"> function submit_pass() { pass=document.forms['log'].passwd.value; document.forms['log'].passwd.value=""; buf=MD5(pass); document.forms['log'].md5.value=buf; return true; } </script> <form id='log' method='post' action='auth.php' onsubmit='javascript:submit_pass();'> <input type='hidden' name='md5' /> <table align='center'> <tr><td>Login</td><td><input name='login' /></td></tr> <tr><td>Mot de passe</td><td><input type='password' name='passwd' /></td></tr> <tr><td colspan='2' align='center'><input type='submit' value='Login !' /></td> </tr> </table> </form> <?php echo md5("azerty"); ?> </body>
auth.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 <?php function CheckUser($login,$md5) { $serveurBD = "localhost"; $userBD = ""; // mets ton utilisateur de la base $passBD = ""; // mets son mot de passe $base = "filas" ; $monlogin = $login; $monpass = $md5; // connexion base $connexion = @mysql_connect($serveurBD, $userBD, $passBD) or die ("Erreur de connexion MySQL !"); mysql_select_db($base) or die ( sql_error() ); // requete $requete = "SELECT pass FROM utilisateur WHERE login LIKE '$monlogin'"; $resultat = mysql_query($requete) or die( sql_error() ); // if( mysql_num_rows($resultat) != 1 ) return false; $passbase = mysql_fetch_row($resultat); mysql_free_result($resultat); mysql_close($connexion); if($md5==$passbase) // MD5 de azerty { echo 'dans true '; return true; } echo 'dans false '; return false; } ?> <?php if(!isset($_POST['md5'])) { // header("Location: login.php"); //die(); echo 'dans test de md5'; } $md5=$_POST['md5']; if(!isset($_POST['login'])) { // header("Location: login.php"); // die(); echo 'dans test de login'; } $login=$_POST['login']; if(!CheckUser($login,$md5)) { //header("Location: login.php"); //die(); echo 'dans checkuser'; } session_start(); $_SESSION['last_access']=time(); $_SESSION['ipaddr']=$_SERVER['REMOTE_ADDR']; $_SESSION['user']=$login; header("Location: page.php"); ?>
Et voila l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 dans true Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\wamp\www\auth.php:21) in c:\wamp\www\auth.php on line 49 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\wamp\www\auth.php:21) in c:\wamp\www\auth.php on line 49 Warning: Cannot modify header information - headers already sent by (output started at c:\wamp\www\auth.php:21) in c:\wamp\www\auth.php on line 55
Partager