header & Location
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
code
datei
email
extra index
extra login
fehler
fehlermeldung
header
host
http
inklusive header
konsole
login
miss
schema
tool
url
verwaltung
weiterleiten
zeichen
-
Hallo Zusammen,
Ich bastel mir gerade ein kleines Login-Script und möchte gerne per Header weiterleiten. Jedoch klappt es nicht so wie es soll. Was mache ich falsch?
<?php session_start(); require_once('connect/config.php'); @$db = mysqli_connect($url,$user,$pw,$dbname); $email = mysqli_real_escape_string($db, $_POST['email']); $password = hash("sha512",mysqli_real_escape_string($db, $_POST['password'])); $remember = mysqli_real_escape_string($db, $_POST['remember']); if(empty($email)){ header("Location: /pages/login.php?miss=email"); exit(); }elseif(empty($password)){ header("Location: /pages/login.php?miss=password"); exit(); }else{ $check_value = $db->query("SELECT * FROM users WHERE passwort='$password' AND email='$email'"); $check_result = $check_value->num_rows; if($check_result == 1){ if($remember == true){ } $_SESSION['userid'] = $email; header("Location: /pages/index.php"); exit(); }else{ header("Location: /pages/login.php?miss=invalid"); exit(); } } mysqli_close($db); ?>
LG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
jo, klar:
http://php.net/manual/de/function.header.php
Steht doch dabei:
Hinweis:
HTTP/1.1 verlangt einen absoluten URI inklusive dem Schema, Hostnamen und absoluten Pfad als Argument von » Location:, aber manche Clients akzeptieren auch relative URIs. Gewöhnlich können Sie mittels $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] und dirname() aus einem relativen Link einen absoluten URI selbst erstellen:
<?php /* Redirect auf eine andere Seite im aktuell angeforderten Verzeichnis */ $host = $_SERVER['HTTP_HOST']; $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); $extra = 'mypage.php'; header("Location: http://$host$uri/$extra"); exit; ?>
Beitrag zuletzt geändert: 7.4.2015 21:24:32 von burgi -
Hmm klappt immer noch nicht:
<?php session_start(); require_once('connect/config.php'); @$db = mysqli_connect($url,$user,$pw,$dbname); $email = mysqli_real_escape_string($db, $_POST['email']); $password = hash("sha512",mysqli_real_escape_string($db, $_POST['password'])); $remember = mysqli_real_escape_string($db, $_POST['remember']); $host = $_SERVER['HTTP_HOST']; $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); if(empty($email)){ $extra = "login.php"; header("Location: http://$host$uri/$extra"); exit(); }elseif(empty($password)){ $extra = "login.php"; header("Location: http://$host$uri/$extra"); exit(); }else{ $check_value = $db->query("SELECT * FROM users WHERE passwort='$password' AND email='$email'"); $check_result = $check_value->num_rows; if($check_result == 1){ if($remember == true){ } $_SESSION['userid'] = $email; $extra = "index.php"; header("Location: http://$host/pages/$extra"); exit(); }else{ $extra = "login.php"; header("Location: http://$host$uri/$extra"); exit(); } } mysqli_close($db); ?>
LG -
Alle Dateien sind UTF-8 kodiert.
Auch ohne BOM klappt es immer noch nicht, habe weder eine Fehlermeldung, nur eine weiße Seite, wenn ich aber ein Echo irgendwo hinsetze, wird dieses auch ausgegeben, also gehe ich nicht davon aus, das ein PHP Fehler vorliegt.
LG
EDIT:// Das Problem lag an der config Datei, diese war falsch kodiert.
EDIT2// Also wenn ich statt include und variablen bei mysqli alles direkt reinschreibe klappt alles aber mit der config Datei nicht. Warum nicht? Ist jetzt alles UTF-8 Ohne Bom
Beitrag zuletzt geändert: 8.4.2015 0:19:39 von marvinkleinmusic -
marvinkleinmusic schrieb:
Durch die config-Datei darf es keine Ausgabe geben. Also:
EDIT2// Also wenn ich statt include und variablen bei mysqli alles direkt reinschreibe klappt alles aber mit der config Datei nicht. Warum nicht? Ist jetzt alles UTF-8 Ohne Bom
- kein echo (in der config eigentlich selbstverständlich)
- kein BOM (hast du bestätigt)
- keine Zeichen vor
. Auch keine Leerzeichen oder Zeilenumbrüche.<?php
- keine Zeichem nach
. Hier gilt genau das gleiche.?>
Hilft alles nicht?
Ich denke, du testest auf Lima-City. Dann gehe in die Website Verwaltung und schalte für die entsprechende Domain PHP: display_errors an. Dann müsstest du eine Fehlermeldung bekommen, mit der wir mehr anfangen können. -
Also alles trifft zu, die Fehleranzeige habe ich sogar aktiviert, erhalte jedoch absolut gar nichts.
Liebe Grüße
-
Wenn du ein Tool hast, mit welchem du den Netzwerk-Traffic mitschneiden kannst (z.B. Wireshark) oder im Browser die Konsole nutzt, könntest du rausfinden, ob der Header überhaupt übertragen wurde … alternativ, falls du cURL installiert hast, wäre auch etwas wie
möglich, dann würdest du ebenfalls die vollständige Server-Antwort inklusive Header sehen. Wenn dann gar kein Locaion-Header gesetzt ist, musst du wohl irgendwo ein Zeichen ausgegeben haben, bevor du den Header gesetzt hast, oder es verbirgt sich ein anderer Fehler, der erst gefunden werden will …curl -i http://www.example.com/umleitungsseite
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage