php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit Dokumenttyp-Deklaration in php-Datei


 
ah72103
27-01-2009, 14:03 
 
Hallo zusammen,

ich erstelle derzeit einen interaktiven Assistenten der vom User in mehreren aufeinanderfolgenden php-Dateien verschiedene Fragen stellt um am Ende eine Sammlung von Angaben weiterzuverarbeiten. Insgesamt werden es 12 Schritte, also 12 Dateien werden. Die vom Anwender eingegebenen Werte werden mittels form in nächste Datei übertragen und dort in $_SESSION Variable übernommen. Die ersten Dateien funktionieren problemlos, bei der fünften habe ich nun ein eigenartiges Problem. Bei Aufruf von Datei 4 zu Datei 5 bleibt der Bildschirm weiß, nicht einmal Hintergrundfarbe wird angezeigt. Wenn ich mir nun den Quelltext ansehe, ist der so gut wie nicht vorhanden und die Dokumenttyp-Deklaration ist plötzlich eine andere als die von mir gewollte.

So sieht der Anfang jeder Seite (auch der vorherigen die funktionieren) aus:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
.. usw.

Bei Betrachtung des Quelltextes aus dem IE Fenster in den funktionierenden Seiten sehe ich, dass alles korrekt ist, wenn ich mir nun den Quelltext dieser 5. Seite ansehe, dann stelle ich folgende Veränderung fest:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>
<BODY></BODY></HTML>
Und das wars - mehr gibts nicht ....

Hab schon in Selfhtml- und FOrum gesucht, ich find einfach keinen Grund warum das nicht funktionieren soll.

Bitte um Tipps.
Danke
Alexander

 
wahsaga
27-01-2009, 14:08 
 
Das ist kein "Problem mit der Dokumenttyp-Deklaration".
Den gezeigten Minimal-Quelltext generiert der IE selber, wenn er kein darstellbares Dokument erhaelt - das ist also keineswegs der Quellcode, den ihm der Server geliefert haette.

Eine "weisse Seite" deutet auf Fehler im Script hin, die zu dessen Abbruch gefuehrt haben - von denen bekommst du allerdings nichts mit, wenn display_errors nicht auf on gestellt ist. Also aendere das, und stelle auch das error_reporting auf E_ALL, wenn nicht bereits geschehen.

 
ah72103
27-01-2009, 14:31 
 
Danke wahsaga, war schon zu sehr im Ärgern drinnen ...
Hatte das Script schon mindestens 5mal durch und konnte nix finden - im Endeffekt war es eine Klammer ....

Witzig ist nur, dass display_errors auf On ist und auch reporting ist wie Du empfohlen hast, trotzdem nur weißer Schirm ....

Gruß
Alexander

 
PHP-Desaster
27-01-2009, 14:37 
 
Witzig ist nur, dass display_errors auf On ist und auch reporting ist wie Du empfohlen hast, trotzdem nur weißer Schirm ....Naja, bei einem Parse-Error können die Settings auch nicht mehr greifen. Dann musst du es in der Ini- oder einer vorgeschalteten Datei setzen.

 
Peacie
27-01-2009, 22:20 
 
Ist es nicht gerade deswegen solche einstellungen (wie das error_reporting ) nicht im hauptdokument zu setzen sondern in eine externe datei die dann im anfang includet wird?
diese wird (solange sie unberührt bleibt) ja in jedem fall ausgeführt und errors würden trotz folgendem parser fehler angezeigt (oder umgeleitet)



und ich denke genau das hast du gemeint :P. sorry

 
wahsaga
27-01-2009, 22:31 
 
Nein, wenn im Hauptscript ein Parse Error drin ist, dann wird der Parse-Vorgang abgebrochen, und es kommt auch kein include mehr zur Ausfuehrung.

 
Peacie
27-01-2009, 22:51 
 
okay, dann rede ich von etwas anderem handling :P

mein hauptscript beinhaltet immer nur wenig steuerung, alles andere wird ausgelagert.
somit tauchen parser fehler in der regel nicht im hauptscript auf, und die includete datei mit error_handling bleibt ja eh fast immer unberührt

 
PHP-Desaster
28-01-2009, 09:58 
 
mein hauptscript beinhaltet immer nur wenig steuerung, alles andere wird ausgelagert.
somit tauchen parser fehler in der regel nicht im hauptscript auf, und die includete datei mit error_handling bleibt ja eh fast immer unberührtJa, das ist aber beim TO wohl nicht der Fall ^^ 12 Formularseiten -> 12 Dateien. Mag für ihn funktionieren, ist aber - bekanntlich - nicht die einzige Lösung. Und ob es sich dabei um die beste handelt, ist auch zu bezweifeln.


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:50 Uhr.