Fejl i PHP script!
Kære alle,jeg har fundet et script til en simpel beskyttelse af visse sider.
Jeg har indsat koden
<?PHP
include("accessCheck.php");
?>
i head sektionen på mine beskyttede sider.
Filen accesssCheck.php indeholder så flg:
<?PHP
// Le mot de passe
$pass = "mdp";
// On initialise la variable
$can_view = 0;
$cookie = $_COOKIE['pass-check'];
// Si on n'a pas envoyé le formulaire de vérification, on teste le cookie
if (!isset($_POST['caller'])) {
// Si le cookie n'est pas vide, on peut accéder à la page
if (!empty($cookie)) {
// Mais on fait une vérification
if ($cookie == $mdp) {
$can_view = 1;
}
}
// Maintenant on contrôle la variable
if ($can_view == 1) {
// On met à jour le cookie pour un jour de plus (86 400 secondes)
setcookie("pass-check","$mdp",time()+86400);
} else {
// Sinon, on affiche le formulaire
echo "Avant de pouvoir accéder à cette page, vous devez entrer le mot de passe :"
."<br><br><form action=\"accessCheck.php\" method=\"POST\">"
."Mot de passe : <input type=\"password\" name=\"mdp\">"
// On stocke dans une variable la page qui à fait appel au script
."<input type=\"hidden\" name=\"caller\" value=\"".$_SERVER['PHP_SELF']."\">"
."<br><br><input type=\"submit\" value=\"Vérifier\"></form>";
// On n'oublie pas de bloquer la page !
exit();
}
// Sinon on fait la vérification
} else {
$passw = $_POST['mdp'];
$caller = $_POST['caller'];
// On compare les mots de passe
if ($passw == $pass) {
// On crée le cookie et on redirige vers la page voulue
setcookie("pass-check","$mdp",time()+86400);
header("Location: $caller");
} else {
echo "Mauvais mot de passe !";
// On n'oublie pas de quitter le tout
exit();
}
}
?>
Men når jeg afprøver den, får jeg flg. besked:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/hotels/.dk/jnlaw/html/icjtest/members_area/accessCheck.php:1) in /var/www/hotels/.dk/jnlaw/html/icjtest/members_area/accessCheck.php on line 52
Warning: Cannot modify header information - headers already sent by (output started at /var/www/hotels/.dk/jnlaw/html/icjtest/members_area/accessCheck.php:1) in /var/www/hotels/.dk/jnlaw/html/icjtest/members_area/accessCheck.php on line 53
Hvad er det, der er galt her? jeg har afprøvet scriptet før uden problemer, og jeg mindes ikke at have gjort noget anderledes nu????
Pft
Jesper