Login problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
account
basic
beitrag
counter
daten
dokument
erste
exit
fehler
fehlermeldung
login
opening
sekunde
session
standard
tutorial
user
username
zeile
zeilenumbruch
-
Problem zu diesem tutorial:
http://www.lima-city.de/tutorials.php?m=show&id=1360
hab daran nichts ver?ndert sondern genau so ?bernommen. und bekomm immer volgende fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/grimbo/html/access.php:9) in /home/webpages/lima-city/grimbo/html/access.php on line 38
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/grimbo/html/access.php:9) in /home/webpages/lima-city/grimbo/html/access.php on line 39
Warning: login(nopermission.htm): failed to open stream: No such file or directory in /home/webpages/lima-city/grimbo/html/access.php on line 40
Warning: login(): Failed opening 'nopermission.htm' for inclusion (include_path='.:/home/webpages/include') in /home/webpages/lima-city/grimbo/html/access.php on line 40
also liegt das problem wohl in diesen zeilen (37-41):
function login($errorfile,$site_name) {
header("WWW-Authenticate: Basic realm=\"". $site_name ."\"");
header("HTTP/1.0 401 Unauthorized");
include $errorfile;
exit;
kann mir da jemand helfen oder mir ein anderes gutes login tut geben?
Danke -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das bedeutet, der header kann nur noch ver?ndert werden, wenn Daten vom Dokument noch nicht ?bergeben wurden.
Auch wenn du einen Cookie setzen willst muss das als aller Erstes im Script erfolgen.
Sobald auch nur ein Leerzeichen oder ein Zeilenumbruch vor dem <?php stand kannst du's vergessen und dann kommt die Fehlermeldung.
H2O -
mhm ja hab ich nicht so ganz verstanden.. wo liegt denn jetzt der "fehler"? vor dem <?php ist kein Leerzeichen oder ein Zeilenumbruch.
also.. was muss ich denn da ver?ndern?
Grimbo -
Hab das so gemacht wie gesagt.. so sieht jetzt das ganze script aus:
<?php
// Hier musst du den Namen des Login- Cookies angeben
$session_cookie = 'protected_page';
// Hier gibst du die Sekunden an, die der Benutzer eingeloggt bleiben soll, standard 3600 sekunden = 1 stunde
$cookie_time = 3600;
// Hier kannst du den Namen deiner gesch?tzten Site angeben
$site_name = 'Protected';
// Hier gibst du den Namen des Fehlerfiles wenn der User auf Abbrechen dr?ckt an
$errorfile = 'nopermission.htm';
// Hier gibst du den Namen des Benutzerfiles an
$userfile = 'users.php';
// Ab hier nix mehr ver?ndern
include $userfile;
$session = array();
function login($errorfile,$site_name) {
header("WWW-Authenticate: Basic realm=\"". $site_name ."\"");
header("HTTP/1.0 401 Unauthorized");
include $errorfile;
exit;
}
if (isset($_SERVER['PHP_AUTH_USER'])) {
$session['exists'] = true;
$session['username'] = $_SERVER['PHP_AUTH_USER'];
$session['password'] = $_SERVER['PHP_AUTH_PW'];
}else{
$session['exists'] = false;
login($errorfile,$site_name);
}
$accounts=count($users);
$counter=0;
while ($accounts != $counter) {
if (!empty($users[$counter . '_username']) && $users[$counter . '_username'] == $_SERVER['PHP_AUTH_USER']) {
$user_exists=true;
break;
}else{
$counter++;
$user_exists=false;
}
}
if ($user_exists != true) {
login($errorfile,$site_name);
}
if ($users[$counter . '_password'] != $session['password']) {
login($errorfile,$site_name);
}else{
setcookie ($session_cookie, 'session_exists', time()+$cookie_time,'/',$_SERVER['HTTP_HOST']);
$login_correct=true;
}
if (!isset($_COOKIE[$session_cookie]) && $login_correct == true) {
login($errorfile,$site_name);
}
?> -
das obrige problem hab ich hinbekommen!
aber funzt trotzdem nicht.. egal.. danke!
Beitrag ge?ndert am 15.07.2005 23:54 von grimbo -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage