Location
andreas
- php
0 Alexander Foken0 toson0 toson
Hi,
ich möchte bei einer bestimmten URL Eingabe diese weiterleiten lassen
<?
If ( $SERVER_NAME == "www.adresse.com/test1" )
{
header("Location: http://www.adresse.com/test2");
}
?>
Was ist hier falsch
Dies ist als erstes auf der Seite plaziert
Ich bekomme nach dem Aufruf diese Seite wieder angezeigt und nicht die im
Verzeichnis test2
Danke
Andreas
Moin Moin !
If ( $SERVER_NAME == "www.adresse.com/test1" )
Gib mal $SERVER_NAME aus.
Alexander
Hi,
also wenn ich das meinem Server test dann klappt das, wenn ich das bei einem Kunden mache bekomme ich eine Fehlermeldung:
Warning: Cannot add header information - headers already sent by (output started at /var/vweb/htdocs/index.php:9) in /var/vweb/htdocs/index.php on line 12
#10 If ( $SERVER_NAME = "www.adresse.de/test1" )
#11 {
#12 header("Location: www.adresse.de/test2");
#13 }
Gruss
Andreas
Hallo andreas,
also wenn ich das meinem Server test dann klappt das,
mit $SERVER_NAME?
Warning: Cannot add header information - headers already sent by (output started at /var/vweb/htdocs/index.php:9) in /var/vweb/htdocs/index.php on line 12
du gibst in Zeile 9 was aus und willst in Zeile 12 einen header senden - was natürlich nicht geht.
Grüße aus Nürnberg
Tobias
Hallo
also wenn ich das meinem Server test dann klappt das,
mit $SERVER_NAME?
ja
du gibst in Zeile 9 was aus und willst in Zeile 12 einen header senden - was natürlich nicht geht.
#10 If ( $SERVER_NAME = "www.adresse.de/test1" )
#11 {
#12 header("Location: www.adresse.de/test2");
#13 }
Zeile9 ist bei mir
#9 <?
#10 If ( $SERVER_NAME = "www.adresse.de/test1" )// das gebe ich ein
#11 {
#12 header("Location: www.adresse.de/test2");//Das will ich haben
#13 }
#14 ?>
???
Andreas
Hallo andreas,
mit $SERVER_NAME?
ja
bei mir gibt $SERVER_NAME zwar was ganz anderes aus, als den Domainnamen, aber gut...
Zeile9 ist bei mir
#9 <?
entweder ist das <? (das im Übrigen besser ein <?php sein sollte) nicht ganz vorne, oder viel wahrscheinlicher gibst du in den Zeilen 1-8 was aus (alles was vor <?php steht wird ausgegeben es darf also vor <?php _nichts_ stehen).
Grüße aus Nürnberg
Tobias
tschuldigung
hatte eine andere version reingestellt
problem ist fast gelöst
Danke
und klapp´s?
mach es so, ich hat´s ausprobiert und es geht!
<?
If ( $SERVER_NAME = "http://deine URL/test.php/" ) {
$loc = "Location: http://www.google.de";
Header( $loc );
exit();
}
?>
Gruß toson
Moin Moin !
If ( $SERVER_NAME = "http://deine URL/test.php/" ) {
Auch wenn Du es noch 100 Mal postest, dieser Code IST FALSCH!
= ist kein Vergleich, = ist eine Zuweisung, header() wird deswegen IMMER aufgerufen. Für einen vergleich benutzt man == oder strcmp()!
Alexander
Hi,
ich möchte bei einer bestimmten URL Eingabe diese weiterleiten lassen
<?
If ( $SERVER_NAME == "www.adresse.com/test1" )
{
header("Location: http://www.adresse.com/test2");
}
Hi:
versuchs mal so "==" ist nicht richtig
If ( $SERVER_NAME = "www.adresse.com/test1" )
----------------------------------------------
oder so
If ( $SERVER_NAME = "http://191.168.10.7/test.php" ) {
$loc = "Location: http://190.168.10.7/";
Header( $loc );
exit();
}
gruß toson
Moin Moin !
versuchs mal so "==" ist nicht richtig
If ( $SERVER_NAME = "www.adresse.com/test1" )
Bist Du Dir ganz sicher, daß das keine Zuweisung von "www.adresse.com/test1" an $SERVER_NAME ist?
http://www.php.net/manual/de/language.operators.comparison.php sagt: == ist Vergleich.
http://www.php.net/manual/de/language.operators.assignment.php sagt: = ist Zuweisung.
Was Du vorschlägst, ist MÜLL. Ich gehe mal davon aus, das PHP einen nicht-leeren String (nämlich das Ergebnis der Zuweisung) als TRUE ansieht, deswegen wird >>header("Location: http://www.adresse.com/test2");<< IMMER ausgeführt.
Alexander
Hallo toson,
versuchs mal so "==" ist nicht richtig
doch, das ist sehr wohl richtig.
If ( $SERVER_NAME = "www.adresse.com/test1" )
damit weist du $SERVER_NAME den Wert "www.adresse.com/test1" zu, was (fast) immer true ergibt und header() dann ausführt.
"=" ist ein Zuweisungsoperator: http://www.php.net/manual/de/language.operators.assignment.php
"==" ist ein Vergleichs-Operator: http://www.php.net/manual/de/language.operators.comparison.php
@andreas: schau mal in das was phpinfo(); ausgibt, da findest du vermutlich das was du brauchst.
Grüße aus Nürnberg
Tobias
müll, lol
klappt doch ;)
<?
If ( $SERVER_NAME = "http://deinserver/test.php/" ) {
$loc = "Location: http://www.google.de";
Header( $loc );
exit();
}
?>
gurß toson
Hallo toson,
If ( $SERVER_NAME = "http://deinserver/test.php/" ) {
$loc = "Location: http://www.google.de";
Header( $loc );
dieses header() wird _immer_ ausgeführ - egal was in $SERVER_NAME drinsteht.
nur so am Rande, warum schreibst du $loc und dann header($loc) und nicht das was in $loc steht gleich in header()?
Grüße aus Nürnberg
Tobias
Hi,
um eventuell noch vars als sting anzuhängen wie z.B.
$var = "?1=$1& usw.
grüße aus Köln
toson