Bonjour,
j'ai transféré aujourd'hui toutes mes pages réalisées sous EasyPHP sur mon serveur NAS (car mon code fonctionne enfin !). J'ai recréé la base de données sous phpmyadmin sur le NAS.
Et là, surprise : dès que l'utilisateur se connecte à la base (page connexion.php), il obtient ceci :
J'ai donc regardé ma ligne 62, qui est une redirection vers la page de bienvenue : header("Location: bienvenue.php");Warning: Cannot modify header information - headers already sent by (output started at /volume1/web/securite.php:30) in /volume1/web/index.php on line 62
Et dans securite.php je n'ai pas de ligne html/css ou quelque chose qui apparement pourrait géner le header.
Le code de securite.php (sachant que la ligne 30 est vide, le fichier se finit à la ligne 28) :
Et mon code de la page de connexion :
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 <?php class Securite { // Données entrantes public static function bdd($string) { // On regarde si le type de string est un nombre entier (int) if(ctype_digit($string)) { $string = intval($string); } // Pour tous les autres types else { $string = mysql_real_escape_string($string); $string = addcslashes($string, '%_'); } return $string; } // Données sortantes public static function html($string) { return htmlentities($string); } } ?>
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102 <?php session_start(); require("page_connexion.php"); require("securite.php"); if(isset($_POST['valider'])) { $connexion = mysql_connect($serveur,$login,$mdp); mysql_select_db("mabase",$connexion); mysql_set_charset('utf8'); $login = Securite::bdd($_POST['login']); $mdp = Securite::bdd(md5($_POST['mdp'])); if (empty($login) || empty($mdp)) { echo '<tr><td><p class="rouge">Saisissez votre login et votre mot de passe.</p></td></tr>'; } else { // Vérification de l'existence du login et de la correspondance du mot de passe $req_exi = mysql_query("SELECT ..."); // Si le login n'existe pas if (mysql_num_rows($req_exi) == 0) { echo '<p class="rouge">Erreur de saisie, ce login n\'existe pas.</p>'; } // On va tester si le mot de passe est correct else { while ($donnees = mysql_fetch_array($req_exi)) { // Si mauvais mot de passe if ($mdp != $donnees['mdp_personne']) { echo '<p class="rouge">Mauvais mot de passe.</p>'; } else { // Si société = SPK/Ultramétrix/Rainbow venture, on met isAdmin à 1 if($donnees['nom_societe'] == '...') { $_SESSION['isAdmin'] = 1; $_SESSION['isClient'] = 0; } else { $_SESSION['isClient'] = 1; $_SESSION['isAdmin'] = 0; } // On met connected à 1 pour montrer que la connexion à l'extranet s'est faite $_SESSION['connected'] = 1; $_SESSION['login'] = $donnees['login_personne']; $_SESSION['nom'] = $donnees['nom_personne']; $_SESSION['prenom'] = $donnees['prenom_personne']; header("Location: bienvenue.php"); die(); } } } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><link rel="stylesheet" type="text/css" href="style.css" /> <style type="text/css"> body { background-image:url(images/banniere_acces.jpg); background-repeat:no-repeat; background-attachment:fixed; background-position:top center; } </style> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Page de connexion</title> </head> <body> <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post"> <table align="center" style="margin-top:2%;"> <tr><td><b>Login</b></td><td><input type="text" name="login" /></td></tr> <tr><td><b>Mot de passe</b></td><td><input type="password" name="mdp" /></td></tr> <tr><td></td><td align="right"><input type="submit" name="valider" value="Se connecter" /></td></tr> </table> </form> </body> </html>
Mon code fonctionne sans aucun problème sous EasyPHP, alors pourquoi plante-t-il sur le NAS ?
Partager