| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

26-05-2008, 15:46
|
|
chefdesigner
Registrierter Benutzer
|
|
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
|
|
Problem mit header-Weiterleitung
Hallo Forum,
um URL-Manipulation vorzubeugen habe ich meine Scripte etwas erweitert und frage nun die angeforderte URL ($_SERVER['REQUEST_URI']) ab und vergleiche diese mit der, zur angeforderten ID passenden URL. Wenn die beiden URL's übereinstimmen, passt alles, wenn sie nicht übereinstimmen, wird die angeforderte URL so angepasst, dass sie zur ID passt.
Kurzes Beispiel:
angeforderte URL: www.domain.de/audi/330i/500.html
korrekte URL: www.domain.de/bmw/330i/500.html
In diesem Fall wurde zum Beispiel die URL manipuliert, indem der Hersteller BMW durch Audi ersetzt wurde. Nun ergibt meine Prüfung, dass der Hersteller des unter ID 500 abgespeicherten Autos nicht Audi sondern BMW ist und schickt folgenden header:
PHP-Code:
header("Location: ".$link_korrekter_pfad."");
Das funktioniert soweit auch ganz gut, habe alles auf einer Testdomain geprüft, hat wunderbar funktioniert. Nun wollte ich es auf der Hauptdomain einbauen, da funktioniert es auf einmal nicht mehr, obwohl ich 1:1 die gleiche Datei verwende. Domains liegen beide auf dem gleichen Server (sollten also eigentlich die gleichen technischen Voraussetzungen haben). Trotzdem führt er auf meiner Hauptdomain den header nicht aus.
Kann mir jemand sagen, an was das liegen könnte?
__________________
Das Genie überblickt das Chaos!
Wer Rechtschreibfehler findet, darf sie behalten!
|

26-05-2008, 15:50
|
jahlives
Master  
|
|
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.283
|
|
Inhalt der Variable, die du mit header() verwendest?
|

26-05-2008, 15:53
|
|
chefdesigner
Registrierter Benutzer
|
|
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
|
|
Inhalt der Variablen ist folgender:
/bmw/330i/500.html
__________________
Das Genie überblickt das Chaos!
Wer Rechtschreibfehler findet, darf sie behalten!
|

26-05-2008, 16:02
|
|
Blackgreetz
PHP Junior
|
|
Registriert seit: Oct 2005
Beiträge: 901
|
|
Probier mal eine absolute URI..
mfg
|

26-05-2008, 16:02
|
jahlives
Master  
|
|
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.283
|
|
Ganz grundsätzlich verlangt ein Redirect Header nach einer vollständigen URL inkl Protokoll
Code:
http://www.deineDomain.de/pfad/zum/file.php
|

26-05-2008, 16:12
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Falls das nicht hilft, wäre ne Testausgabe, und entsprechender Code natürlich sehr hilfreich...
|

27-05-2008, 02:07
|
|
prego
PHP Senior
|
|
Registriert seit: May 2005
Ort: Hey ropp, hinne riwwer unn wirrer zuricke!
Beiträge: 1.602
|
|
Und dran denken ne 301 (Moved permanently) Weiterleitung zu machen...
header-Location alleine macht nur ne 302 (Moved Temporarily) und damit Google nicht die alte/falsche URL indziert solltes du ne sauberen 301 machen
PHP-Code:
header('Location: http://www.example.com', true, 301);
exit();
Das mit der vollständigen URL ist natürlich absolut richtig  Du könntest dir die komplette URL zB so zusammen baun:
PHP-Code:
$valid_target = 'http://'.$_SERVER['HTTP_HOST'].'/da_solls_hin.html';
__________________
so long, der-p | 72dpi-club
Microsoft IE-Manager Dean Hachamovitch bei der Vorführung des IE7 Beta Preview 2 am 20.3.2006:
"Wir hatten mit IE ganz offensichtlich was verschlafen."
Geändert von prego (27-05-2008 um 02:09 Uhr)
|

27-05-2008, 08:51
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Wäre bei einer kaputt-manipulierten URL nicht ein 404 die richtige Antwort?
|

27-05-2008, 10:41
|
|
prego
PHP Senior
|
|
Registriert seit: May 2005
Ort: Hey ropp, hinne riwwer unn wirrer zuricke!
Beiträge: 1.602
|
|
Das muß man selbst entscheiden - ich würde da auch die Übersicht anzeigen und nen 404 mitschicken. Es giebt nun mal keinen Audi 330i
__________________
so long, der-p | 72dpi-club
Microsoft IE-Manager Dean Hachamovitch bei der Vorführung des IE7 Beta Preview 2 am 20.3.2006:
"Wir hatten mit IE ganz offensichtlich was verschlafen."
|

27-05-2008, 20:46
|
|
chefdesigner
Registrierter Benutzer
|
|
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
|
|
Besten Dank für eure Unterstützung, leider lag es nicht an der unvollständigen URL, funktioniert nach wie vor nicht.
Wie kann das denn sein, dass die gleiche Datei auf dem gleichen Server unterschiedlich funktioniert?
Es werden vorher einige Datein includiert, die sich evtl. unterscheiden, kann ich irgendwie überprüfen, ob in den Dateien Zeichen bzw. Ausgaben sind, die den Header stören?
Komisch ist jedoch, dass mir nicht die Nachricht: Header already sent angezeigt wird.
__________________
Das Genie überblickt das Chaos!
Wer Rechtschreibfehler findet, darf sie behalten!
|

27-05-2008, 20:49
|
|
chefdesigner
Registrierter Benutzer
|
|
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
|
|
Was ich vielleicht auch noch erwähnen sollte: etwas weiter oben habe ich ebenfalls eine header-Weiterleitung, die zu Beginn prüft, ob überhaupt eine gültige ID vorliegt (besteht nur aus Ziffern, ist (derzeit) kleiner als 396).
Diese Weiterleitung funktioniert ordnungsgemäß. Fehlermeldung bekomme ich bei der zwieten Weiterleitung gar keine.
__________________
Das Genie überblickt das Chaos!
Wer Rechtschreibfehler findet, darf sie behalten!
|

27-05-2008, 20:52
|
|
Blackgreetz
PHP Junior
|
|
Registriert seit: Oct 2005
Beiträge: 901
|
|
Normal kann man seine Beiträge editieren...
Ist error_reporting voll aufgedreht?
Testausgaben gemacht (wie Tobiaz sagte) ?
mfg
|

27-05-2008, 22:03
|
|
chefdesigner
Registrierter Benutzer
|
|
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
|
|
Also, hab das error_reporting mal auf E_ALL gesetzt und erhalte folgende Meldungen:
Zitat:
Notice: Undefined variable: code in /homepages/pfad/zum/htdocs/website/inc/replace_modell.php on line 38
Warning: Cannot modify header information - headers already sent by (output started at /homepages/pfad/zum/htdocs/website/inc/sql_modelle.inc.php:19) in /homepages/pfad/zum/htdocs/website/modelle.php on line 64
|
Ich versteh aber nicht, warum der header bereits gesendet sein soll. Ich habe weder ein echo, noch sonst etwas auffälliges in den Dateien gefunden.
__________________
Das Genie überblickt das Chaos!
Wer Rechtschreibfehler findet, darf sie behalten!
|

27-05-2008, 22:06
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Die Fehlermeldung ist auch eine Ausgabe !!
Also bringe erstmal den Code in Ordnung.
|

27-05-2008, 22:09
|
|
chefdesigner
Registrierter Benutzer
|
|
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
|
|
Ja das ist mir schon klar, aber wie soll ich hier sonst eine Ausgabe posten? Wie gesagt, wenn ich das error_reporting ausstelle, dann bekomme ich keine Meldungen.
__________________
Das Genie überblickt das Chaos!
Wer Rechtschreibfehler findet, darf sie behalten!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|