Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) header, php (edit)
 
Reply to this topicStart new topicStart Poll
> Header() problem
Jasson
Geschrieben am: Do 5.01.2006, 09:37
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 89
Mitglied seit: 8.06.2005


Halli hallo,

wünsche allen schon mal ein Gutes Neues Jahr biggrin.gif
uind dann habe ich noch ein Problem dry.gif Musste ja kommen.

Ich habe gerade bemerkt das bei PHP 5.1.1 die funktion header(Location: "seiteblabla.php") nicht mehr funktioniert.
Wie kann man das noch lösen?

Danke
Jasson
Top
PMEmail PosterUsers Website
Top
 
 
Ansgar Berhorn
TOPdesk Deutschland
#2 Geschrieben am: Do 5.01.2006, 09:42 (+00:05)
Report PostQuote Post

AyomRank 6
Group Icon

Gruppe: Experten Entwicklung (Mod)
Beiträge: 857
Mitglied seit: 8.10.2004


QUOTE
Ich habe gerade bemerkt das bei PHP 5.1.1 die funktion header(Location: "seiteblabla.php") nicht mehr funktioniert.

Sie funktioniert sicher noch, nur benutzt du sie eventuell falsch?

CODE
header(Location: "seiteblabla.php")


Die Doku beschreibt die Funktion wie folgt:
CODE
void header ( string string [, bool replace [, int http_response_code]] )

Also muss ein der Funktion ein String übergeben werden.

CODE
header("Location: seiteblabla.php")

sollte funktionieren.
Vermutlich ist Syntaxüberprüfung strenger. Warum es allerdings vorher nicht auch schon Syntaxfehler gab, ist fraglich.


--------------------
Top
PMUsers Website
Top
 
Jasson
#3 Geschrieben am: Do 5.01.2006, 09:45 (+00:02)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 89
Mitglied seit: 8.06.2005


Also momentan habe ich folgendes:

CODE
header("Location: ticker_liste_admin.php");


und da kommt der Fehler

CODE
Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\ticker\ticker_neu.php:12) in C:\Programme\xampp\htdocs\ticker\ticker_neu.php on line 50
Top
PMEmail PosterUsers Website
Top
 
Jasson
#4 Geschrieben am: Do 5.01.2006, 10:05 (+00:19)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 89
Mitglied seit: 8.06.2005


Habe nun eine kleine Funktion gefunden die das löst:

CODE
function Redirect($url) {
      if(headers_sent()) {
              echo "<script type='text/javascript'>location.href='$url';</script>";
      } else {
              header("Location: $url");
      }
}
Top
PMEmail PosterUsers Website
Top
 
Joel
Enzian Media GmbH
#5 Geschrieben am: Do 5.01.2006, 10:11 (+00:06)
Report PostQuote Post

AyomRank 7
**************

Gruppe: Member (aktiv)
Beiträge: 1441
Mitglied seit: 17.06.2004


Es wäre natürlich besser, wenn du den Header einfach vor allen anderen Ausgaben ( z.B. mit echo "HTML / TEXT"; ) ausgibst, dann wird der Fehler auch nicht erscheinen.

Weil Redirects mit JavaScript sind unprofessionell. Suchmaschinen und Browser mit ausgeschaltetem JavaScript beachten dies nicht, wobei das mit dem Header immer funktioniert. Ausserdem könnte dadurch der Back-Button im Browser unbrauchbar gemacht werden.


--------------------
EagleFind.com - Die visuelle Suchmaschine
Enzian Media bietet Entwicklung von Websites, Videos und Webcam-Streaming.

Suxedoo- Werbekampagne im Wert von 5000.- jetzt Gewinnen! Nur für im Handelsregister eingetragene Frimen!
Top
PMUsers WebsiteICQ
Top
 
Jasson
#6 Geschrieben am: Do 5.01.2006, 10:22 (+00:10)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 89
Mitglied seit: 8.06.2005


QUOTE
Es wäre natürlich besser, wenn du den Header einfach vor allen anderen Ausgaben ( z.B. mit echo "HTML / TEXT"; ) ausgibst, dann wird der Fehler auch nicht erscheinen.


Also das habe ich jetzt nicht ganz verstanden. unsure.gif

Die neue Seite darf ja erst an einem gewissen Punkt aufgerufen werden.
Top
PMEmail PosterUsers Website
Top
 
Josh
#7 Geschrieben am: Do 5.01.2006, 12:43 (+02:20)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Moderatoren
Beiträge: 2143
Mitglied seit: 19.10.2003


Hallo Jasson

Header werden immer vor jeglicher Ausgabe am Bildschirm zum Client geschickt. Hast du also irgendwo schon ein echo "xxx"; in deinem Code, gibt header(...); einen Fehler zurück.
Du musst dein Programm nun entweder so umstrukturieren, dass diese Bedingung erfüllt ist (kein Echo, bevor alle möglichen Header passiert sind), oder du verwendest eine Template-Engine wie Smarty oder patTemplate, die die Ausgabe in einer Variablen zwischenspeichern und erst am Schluss des Dokuments die display() Methode aufgerufen wird.

Grüsse
Josh


--------------------
Mein letztes Projekt: Atelier-Schmuck.ch

"Das habe ich nie getan und werden es auch nie wieder tun!" :lol:
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Johnny
#8 Geschrieben am: Do 5.01.2006, 13:23 (+00:40)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 8
Mitglied seit: 30.12.2005


Josh hat vollkommen recht.

Schreibe deinen Quellcode so dass alles ausgewertet wird und am Ende des Scripts erfolgt erst die Ausgabe (echo "bla")
So kannst du jederzeit in deinem Script die header()-Funktion nutzen. Außerdem hat es den Vorteil dass es den Quelltext übersichtlicher und sauberer hält.

Gruß, Johnny
Top
PMEmail PosterICQ
Top
 
Josh
#9 Geschrieben am: Do 5.01.2006, 13:30 (+00:06)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Moderatoren
Beiträge: 2143
Mitglied seit: 19.10.2003


Und stell dir mal vor, du willst eine Tabelle mit Daten ausgeben, oberhalb welcher du eine kurze Zusammenfassung dieser Daten anzeigen willst... Ziemlich schwierig auf dem herkömmlichen Wege, oder? ;-)


--------------------
Mein letztes Projekt: Atelier-Schmuck.ch

"Das habe ich nie getan und werden es auch nie wieder tun!" :lol:
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Jasson
#10 Geschrieben am: Do 5.01.2006, 13:30 (+00:00)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 89
Mitglied seit: 8.06.2005


Aha jetzt kapiere ich. Danke euch biggrin.gif

Greetz
Jasson
Top
PMEmail PosterUsers Website
Top
 
Jasson
#11 Geschrieben am: Do 5.01.2006, 13:49 (+00:18)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 89
Mitglied seit: 8.06.2005


nochmals kleine nachfrage. Betrifft das nur den Befehl "echo" oder auch "printf"?
Top
PMEmail PosterUsers Website
Top
 
Joel
Enzian Media GmbH
#12 Geschrieben am: Do 5.01.2006, 13:49 (+00:00)
Report PostQuote Post

AyomRank 7
**************

Gruppe: Member (aktiv)
Beiträge: 1441
Mitglied seit: 17.06.2004


QUOTE

nochmals kleine nachfrage. Betrifft das nur den Befehl "echo" oder auch "printf"?


Betrifft beides.


--------------------
EagleFind.com - Die visuelle Suchmaschine
Enzian Media bietet Entwicklung von Websites, Videos und Webcam-Streaming.

Suxedoo- Werbekampagne im Wert von 5000.- jetzt Gewinnen! Nur für im Handelsregister eingetragene Frimen!
Top
PMUsers WebsiteICQ
Top
 
Jasson
#13 Geschrieben am: Do 5.01.2006, 13:51 (+00:01)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 89
Mitglied seit: 8.06.2005


QUOTE (madox @ Do 5.1.2006, 13:49)


Betrifft beides.

oki danke
Top
PMEmail PosterUsers Website
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/9936

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
CSS Problem: position: absolut Thomas Weil 31 2 Mi 7.01.2009, 22:58
Postfix+Dovecot maildir problem rosenrot 89 2 So 4.01.2009, 02:46
Pavilion dv7-1010eg - Problem chipchip 90 3 Di 30.12.2008, 20:27
[wp] Riesen Problem nach Update Basti24 93 2 Do 25.12.2008, 20:15
Javascript problem PH 156 6 Mi 24.12.2008, 12:36
Wordpress theme Problem Urs 191 7 Mi 24.12.2008, 02:48
Blog Header Antoine Johannes 439 14 Mi 17.12.2008, 15:48
Problem MySQL-Abfrage Magical 191 2 Mo 15.12.2008, 07:48
Kleines Problem mit preg_replace... BartTheDevil89 116 3 Do 20.11.2008, 22:13
Problem bei Mail-Versand PH 420 14 Di 11.11.2008, 08:32




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]