Problem mit header("Location: seite")
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufruf
aussage
code
eingabe
erfolg
fehlermeldung
funktioniert ausgezeichnet problem
header
index
inhalt
live ausgeben
output
position
problem
sache
senden
server
session
tag
weiterleitung
-
Hab in meiner tag/index">Index Seite ne Function die, wenn alles überprüft worden is auf header("Location: admin.php") umleitet.
Nun funktioniert aber die Umleitung nicht.
Das seltsame daran, auf meinem appache server funktioniert alles einwandfrei, auf lima-city jedoch gar nicht.
es kommt nicht mal eine fehlermeldung oder ein warning
k.A. was da los ist
ausgegeben wird vorher 100%ig nichts, hab ich extra nochmal nachgeprüft
weiß wer woran das liegen könnte? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Versuchs mal mit ner absoluten URL. Realtive URLs in der location sind immer schlecht...
-
edit:
hmm seltsames problem
wenn ich ganz normal ne variable zb.:
$seite = "seite1";
und dann eben
header("Location: mmbikestore.lima-city.de/index.php?site=$seite");
schreib dann gehts seltsamerweise
wenn ich aber die
$seite = $_SESSION['seite']; ($_SESSION['seite'] hat genau den selben wert gespeichert)
und dann
header("Location: mmbikestore.lima-city.de/index.php?site=$seite");
funktionierts plötzlich nicht
was kann da sein?
Session variable kann ich überall ausgeben, kommt auch immer der richtige wert raus
Beitrag zuletzt geändert: 21.4.2009 21:26:28 von mmbikestore -
Kommt eine Fehlermeldung oder funktioniert es einfach nicht? :P
Ansonsten stilistisch besser (Manchmal sind die banalsten Dinge, die wichtigsten.. Ich hatte vor kurzem einen Fehler, bei dem die Position des Codes in einer Funktion Ausschlag gebend war. Wär es eine, die über einen Buffer arbeitet... aber nein..es war einfach eine Ausgabe..das war sehr merkwürdig. ^^)
header('Location: mmbikestore.lima-city.de/index.php?site=' . $seite); -
hab jtz mal doof herumgespielt, und es scheint so als würde meine $_Session['site'] einfach so überschrieben werden
kein plan wie oder warum xD aber ich hab einfach mal jede zweite zeile ein echo $_Session['site'] eingebaut und i-wo is die variable dann einfach mal ne andere was aber irgendwie unmöglich ist, weils nirgends überschrieben wird, erst ganz zum schluss der seite xD
is das rein theoretisch möglich das wenn ich die Session variable ganz oben im skript ausgebe und ganz unten überschreibe, dann oben der überschrieben wert ausgegeben wird?
sollte doch eigentlich nicht so sein da PHP das skript ja zeilenweise abarbeitet -
Nein, das kann nicht sein.
Mit was für einem Wert wird es denn überschrieben? Einem von dir oder einem dir unbekannten?
PS: Hatte auch mal ienen ganz doofen Fehler. Da wurde ein Query zwei Mal ausgeführt. Hab da mehrere Tage dran gesessen und jedes Zeichen einzeln auskommentiert... dann hab ich festgestellt, dass ich einfach ein <img src="" /> hatte weswegen die Seite zwei Mal geladen wurde... -
naja in die Session['site'] variable hab ich die vorherige seite gespeichert
und irgendwo im oberen bereich wird dann statt der vorheriegen seite die jtz gerade aktive seite drübergeschrieben
obwohl das erst am ende des skripts passieren sollte -
lima-city verwendet wahrscheinlich eine andere Version von PHP als du auf deinen Appache Server. Würde es dir etwas ausmachen den ganzen Code zu zeigen?
Ich sehe gerade, dass ich das gleiche Problem bei lima-city habe.
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/koronsan/html/header.php:24) in /home/webpages/lima-city/koronsan/html/doLogin.php on line 37
Ich habe das Problem jetzt gelöst, indem ich mich für eine Weiterleitung mit dem <meta> Tag entschieden haben.
Beitrag zuletzt geändert: 23.4.2009 19:44:44 von koronsan -
hab das problem schon gelöst, war ne variable dran schuld ;)
-
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/koronsan/html/header.php:24) in /home/webpages/lima-city/koronsan/html/doLogin.php on line 37
ob_start()
Vor dem senden von headerinformationen dürfen keine Aussagen erfolgen. Nichteinmal ein Leerzeichen. ob_start() aktiviert das Buffering von PHP, wodurch man dann auch mitten im Code den Header modifizieren kann.
-
fvagsk schrieb:
Zu der Sache mit den Variablen: AM besten, Du läßt Dir den Inhalt einer Variablen wirklich durch ein einfaches Php-Skript auf dem Server "live" ausgeben. Dann bist Du wirklich ganz sicher, ob in der Variablen tatsächliche der gewünschte Wert gespeichert ist.
Wenn Du diesen Thread aufmerksam gelesen hättest, wäre Dir aufgefallen, das der Inhalt der Variablen aus $_SESSION kommt und somit Serverseitig gespeichert ist, wo Manipulationen in den meisten Fällen so gut wie unmöglich sind. Erst bei einer Eingabe von einem Benutzer sollte man auf Schadcode prüfen, alles andere ist Bockmist und kostet nur Rechenzeit und Nerven. -
adrians schrieb:
Vielen Dank! Das funktioniert ausgezeichnet.
ob_start()
Vor dem senden von headerinformationen dürfen keine Aussagen erfolgen. Nichteinmal ein Leerzeichen. ob_start() aktiviert das Buffering von PHP, wodurch man dann auch mitten im Code den Header modifizieren kann.
-
problem zwar schon gelöst, aber warum nimmst du nicht einfach zwei sessions? eine für die aktuell angezeigte seite.. und eine für die vorherige aufgerufene. bei jedem aufruf einer neuen (anderen) seite wird einfach die letzte in die session für die vorherige geschrieben :-)
Beitrag zuletzt geändert: 5.4.2011 11:02:33 von nick8719 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage