Problemer med PHP-Script
Jeg har et træls problem med nedenstående PHP-script. Hver gang jeg køre scriptet får jeg denne felj: Parse error: parse error, unexpected ';' in c:\apache\htdocs\http_authentication.php on line 22Scriptet ser således ud (stedet som fejlmeddelelsen referere til er markeret med +++):
<HTML>
<HEAD>
<Title></title>
</HEAD>
<BODY>
<?php
function check_pass($login, $password, $mode) {
global $password_file;
if(!$fh = fopen($password_file, "r")) { die("<P>Kunne ikke åbne password-fil!"); }
$match = 0;
while(!feof($fh)) {
$line = fgets($fh, 4096);
$from_file = explode(":", $line);
if($from_file[0] == $login) {
if($mode == "crypt"){
$salt = substr($from_file[1],0,2);
$user_pass = crypt($password,$salt);
} elseif ($mode == "md5") {
$user_pass = md5($password);
}
if(rtrim($from_file[1]) == $user_pass {
+++ $match= 1 ;
break;
}
}
}
if($match) {
return 1;
} else {
return 0;
}
fclose($fh);
}
function authenticate() {
Header("WWW-Authenticate: Basic realm=\"RESTRICTED ACCESS\" ");
Header("HTTP/1.0 401 Unauthorized");
echo ("<h1>Ugyldigt brugernavn eller password - adgang nægtet!<h1>");
exit;
}
/*** MAIN ***/
//vælg md5 eller crypt til $mode. md5 anvendes med md5-krypterede passwords, crypt anvendes ved passwords der er krypteret med Apaches httpasswd
$mode = "md5";
$password_file = "pass.txt";
if (!isset($PHP_AUTH_USER)) {
} else {
if(check_pass($PHP_AUTH_USER, $PHP_AUTH_PW, $mode)) {
?>
<h1>Accepteret!</h1>
<?
} else {
authenticate();
}
}
?>
</BODY>
</HTML>
Nogen der ved hvad er er galt ??
