Weiterleitung mit Header funktioniert nicht

mister_tt

Weiterleitung mit Header funktioniert nicht

Beitrag von mister_tt »

Hallo zusammen,

Ich arbeite im Moment an einer Webseite und bearbeite ein Formular. Ich habe nun eine Weiterleitung mit folgendem Befehl eingerichtet:

Code: Alles auswählen

header("Location: http://www.tradefairs.co.uk/index-b-51-1266.html/");
Leider funktioniert diese nicht. Man soll weitergeleitet werden, sobald das Formular abgeschickt wurde. Die Abfragen dafuer sollten alle stimmen, daran habe ich nichts geaendert. Vorher wurde das Formular einfach mit einem Text ersetzt, das habe ich jetzt entsprechend auskommentiert.

Habt ihr eine Idee, wo der Fehler liegen koennte?

Vielen Dank im Voraus fuer eure Hilfe,
Simon
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

*** make your own tools (wishlist :: thx)
mister_tt

Beitrag von mister_tt »

Hallo emergence,

Danke fuer deine Antwort. Ich habe das "/" gerade rausgenommen, leider ohne Erfolg. Die Weiterleitung funktioniert trotzdem nicht.

Noch irgendeine Idee?

Gruss und Danke
Simon
Zuletzt geändert von mister_tt am Mo 6. Aug 2007, 12:37, insgesamt 1-mal geändert.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

hmm...
steht was im errorlog.txt ?

nicht schaden kann auch ein

Code: Alles auswählen

die();
nach der header anweisung...
*** make your own tools (wishlist :: thx)
mister_tt

Beitrag von mister_tt »

Ein

Code: Alles auswählen

die();
bewirkt nur ein Abschneiden des Layouts. Hatte es schon einmal mit

Code: Alles auswählen

exit();
probiert.

Gute Idee, in der errorlog nachzuschauen :)
Da steht was, allerdings weiss ich trotzdem nicht, wie ich das aendern kann...

[06-Aug-2007 13:37:54] PHP Warning: Cannot modify header information - headers already sent by (output started at /srv/www/tradefairs.co.uk/contenido/classes/class.template.php:249) in /srv/www/tradefairs.co.uk/live/front_content.php(792) : eval()'d code on line 565


Danke fuer die Hilfe :)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ad fehlermeldung:
-> http://de.php.net/manual/de/function.header.php

ein workaround ist da beschrieben...
...können Sie dieses Problem umgehen, indem Sie Output Buffering benutzen, mit dem Overhead, dass alle Ihre Ausgaben an den Browser gepuffert werden, bis Sie diese senden. Um dies zu tun, verwenden Sie in Ihrem Skript ob_start() und ob_end_flush()...
*** make your own tools (wishlist :: thx)
mister_tt

Beitrag von mister_tt »

Leider komme ich an die entsprechenden Dateien nicht dran. Von daher muss ich es wohl mit einer JavaScript-Weiterleitung realisieren.

Leider zeigt Contenido aber ein rotes Laempchen, wenn ich die normal reinschreibe:

Code: Alles auswählen

<script language ="JavaScript" type="text/javascript">
<!--
window.location.replace('http://www.tradefairs.co.uk/index-b-51-1266.html');
// -->
</script>
Was ist der Fehler?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

...wenn ich die normal reinschreibe:
wenn es exakt so dort steht, dürfte es keinen fehler geben...
wie genau gibst du den code aus ?
Was ist der Fehler?
schau im errorlog.txt nach...
es sollte da 'ne aussagekräftige fehlermeldung geben...
*** make your own tools (wishlist :: thx)
mister_tt

Beitrag von mister_tt »

Naja, der Code steht in den Modulen und den Java-Script-Code habe ich halt direkt in den PHP-Code eingefuegt, das muesste doch gehen, oder?

Fehlermeldung:
[06-Aug-2007 14:29:10] PHP Parse error: syntax error, unexpected '<' in /srv/www/tradefairs.co.uk/contenido/includes/functions.mod.php(133) : eval()'d code on line 300

Und die selbe Fehlermeldung kommt ein paar mal mit unterschiedlichen Zeichen im Fettgedruckten...
Was soll mir das sagen!?

Danke schonmal...
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

also innerhalb von php code (<?php ... ?>) müsste das so aussehen

Code: Alles auswählen

echo <<<EOL
<script language ="JavaScript" type="text/javascript"> 
<!-- 
window.location.replace('http://www.tradefairs.co.uk/index-b-51-1266.html'); 
//--> 
</script>
EOL;
die php syntax ist schon zu berücksichtigen...
*** make your own tools (wishlist :: thx)
mister_tt

Beitrag von mister_tt »

Das heisst ich muss das in ein echo packen? Was soll dieses "EOL"? Wenn ich das so wie du es geschrieben hast einfuege, kommt immer noch rot...

Sorry, aber bin nicht so super fit in PHP... :?
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

Code: Alles auswählen

<?php

hier kommt der code hin

?>
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
mister_tt

Beitrag von mister_tt »

Danke kummer, das ist schon klar. Da es sich um ein schon vorhandenes Modul handelt, ist das natuerlich auch schon drin. Das Problem ist aber, dass er den Java-Script Code innerhalb des PHP-Dokuments so nicht annimmt (rotes Laempchen).
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

du machst also ein echo. innerhalb des echos musst du ja entweder einfache oder doppelte anführungszeichen setzen. wenn du einfache verwendest, musst du alle einfachen anführungszeichen im javascript-code mit einem backslash (\) escapen. wenn du doppelte anführungszeichen verwendest, musst du die doppelten anführungszeichen mit einem backslash escapen.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
mister_tt

Beitrag von mister_tt »

Danke fuer die Antwort, kummer. Dann muesste das Ganze doch so aussehen:

Code: Alles auswählen

echo'
<script language ="JavaScript" type="text/javascript">
<!--
window.location.replace(\http://www.tradefairs.co.uk/index-b-51-1266.html\);
//-->
</script>';
Dann kommt zwar ein gruenes Laempchen, die Weiterleitung funktioniert jedoch immer noch nicht.
Gesperrt