php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.12.2004, 03:10  
Gast
 
Beiträge: n/a
Standard Cannot modify header information

Hi,

ich wollte gerne wissen, ob jemand eine Idee hat wie man

Code:
header("location: ".$file_root."admin.php");
umgehen kann. Das Problemchen tritt in fast jeden Dokument auf, weil ich in meiner index.php am Anfang bereits header sende oder senden muss ?
In meiner index.php steht am Anfang das:

Code:
<?php    
error_reporting(7);
include "config.php"; // die Konfigurationsdateien lesen.
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
echo "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
echo "<html>\n";
Gehört das dort hin oder wo kann man diese header hinschreiben, damit nichts am Anfang gesendet wird? Wie kann man das Problem umgehen, um nicht immer diese Fehlermedung zu bekommen:

Code:
Warning: Cannot modify header information - headers already sent by ..
Danke für die Hilfe!

cu
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.12.2004, 03:30  
Erfahrener Benutzer
 
Registriert seit: 04.12.2004
Beiträge: 129
Ratte78
Standard

Also:

Du könntest wie gesagt das Script so gestalten das die Abfrage bzw. der Header alleine steht. Also evtl. auf mehrere Scripts verteilen.

Dann ginge noch ein JavaScript Befehl: location.href="neues Ziel"

oder du benutzt Output-Buffering.

ob_start();

echo "Alles was jetzt gedruckt wird wird gespeichert und nicht ausgegeben";
$x=ob_content(); // Bildschirmausgabe in Variable x
ob_clean_end(); // Ab jetzt köme wieder Output
if(... Irgendwas läuft schief ...)

header(".......");

echo $x; // Die Bildschirmausgabe.
__________________
Jede Lösung verändert das Problem.
Ratte78 ist offline  
Alt 05.12.2004, 03:51  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

wenn du sowieso mittels header weiterleiten willst, brauchst du vorher niemals etwas ausgeben, somit brauchst du auch niemals die ob-funktionen.

also sende den header, bevor du überhaupt eine ausgabe durchführst.
__________________
derHund ist offline  
Alt 05.12.2004, 10:49  
Gast
 
Beiträge: n/a
Standard

Es gibt da nen klennen Trick:

Zur aller Anfang:

PHP-Code:
<?php
ob_start
();
?>
und direkt vor dem header("xy:dlfasfldhgf");
PHP-Code:
<?php
ob_clean
();
?>
---

Allerdings ist das NUR ein TRICK. Du solltest besser versuchen erstmal keine Ausgabe zu machen. Gerade wenn du Scripte für andere schreibst, kann das manchmal nach hinten losgehen
---
Gruß
Benny
 
Alt 05.12.2004, 15:44  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

Zitat:
Es gibt da nen klennen Trick:
toller trick!

sagst du mir bitte, welche sinn das machen soll?
__________________
derHund ist offline  
Alt 05.12.2004, 19:26  
Gast
 
Beiträge: n/a
Standard

Zitat:


sagst du mir bitte, welche sinn das machen soll?
Aber sicher:

Der Server fängt bei ob_start mit dem Output Buffering an und cached somit die Ausgabe.
So kann erstmal die Bibel von Php ausgegeben werden ohne das der Client was dcavon mitbekommt
mit ob_clean wird der Output_buffer ins nirvana gekickt und somit nix an den Client geschickt. So kann auch ein bereits definierter
header neu gesetzt werden, vorrausgesetzt das Output Buffering ist eben an.

Gruß
Benny
 
Alt 05.12.2004, 19:37  
Gast
 
Beiträge: n/a
Standard

Da frage ich mich aber auch, welchen Sinn es macht, überhaupt was auszugeben, was kein Mensch sieht. Da kann man es doch auch gleich lassen.

Gruß
phpfan
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Cannot modify header information PHP-Fortgeschrittene 13 24.10.2006 20:01
Cannot modify header information nicobischof PHP Tipps 2006 3 06.01.2006 15:46
Cannot modify header information...??? imported_FlasH PHP Tipps 2007 33 12.11.2005 11:58
[Erledigt] Fehlermeldung Cannot add header information PHP Tipps 2005-2 6 07.10.2005 13:41
Warning: Cannot modify header information - headers already LP PHP Tipps 2005-2 2 12.09.2005 19:28
Fehler: Warning: Cannot modify header information - headers PHP Tipps 2005-2 14 01.09.2005 15:02
Problem: Cannot modify header information Alpha Centauri PHP Tipps 2005 11 25.04.2005 13:05
cannot modify header information!?!?! Fraylman PHP Tipps 2005 14 18.03.2005 18:14
Cannot modify header information - headers already sent PHP Tipps 2005 2 15.03.2005 22:10
Warning: Cannot modify header information ... PHP Tipps 2005 24 15.02.2005 11:07
admincontrolpanel: Cannot modify header information ? phpfortgeschrittener PHP Tipps 2004 2 23.08.2004 19:17
Warning: Cannot modify header... einbinden nicht möglich? PHP Tipps 2004 2 07.08.2004 15:06
Cannot modify header information - headers already sent by PHP Tipps 2004 2 25.07.2004 19:40
Warning: Cannot modify header information PHP Tipps 2004 8 22.07.2004 00:50
Warning: Cannot modify header information.... PHP Tipps 2004 4 18.06.2004 01:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
cannot modify header information umgehen, warning: cannot modify header information - headers already sent by umgehen, cannot modify header information - headers already sent by ob_clean

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.