zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden seltsames php problem

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 07.07.2008, 16:05
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.07.2008
Beiträge: 4
verstoert befindet sich auf einem aufstrebenden Ast
Standard seltsames php problem

sorry im voraus für den nichtssagenden titel, da ich aber nicht weiß, woran es genau liegt, kann ich es leider nicht genauer benennen:

ich habe in eine seite eine knappe user agent detection eingebaut, hintergrund ist, daß ich nicht möchte, daß diese zeile:

Code:
<?xml version="1.0" encoding="utf-8"?>
..für den IE ausgegeben wird. der code, der das erledigen soll, sieht so aus:

PHP-Code:
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'msie') === false) print '<?xml version="1.0" encoding="utf-8"?>'."\n";
seltsamerweise wird mir auf diese weise die fragliche markup zeile zweimal ausgegeben. richtig lustig wirds, wenn ich die zeile auskommentiere. mit dieser notation:

PHP-Code:
// if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'msie') === false) print '<?xml version="1.0" encoding="utf-8"?>'."\n";
..wird mir das hier:

Code:
<?xml version="1.0" encoding="utf-8"?>
'."\n";
?>
..ausgegeben, die letzten beiden zeilen sichtbar im browser (ganz oben). wenn ich es auf diese weise auskommentiere:

PHP-Code:
/* if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'msie') === false) print '<?xml version="1.0" encoding="utf-8"?>'."\n"; */
..wird die xml-deklaration trotzdem im quelltext ausgegeben, zwar nur einmal wie gewünscht, jedoch in allen browsern.

das ganze ist irgendwie ziemlich absurd, ich komme da gerade überhaupt nicht weiter - weiß jemand rat?

danke im voraus

Geändert von verstoert (07.07.2008 um 17:09 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 07.07.2008, 16:48
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Erstmal vorweg:
<?xml version="1.0" encoding="utf-8"?> ist überflüssig, da UTF-8 die Standardkodierung für XHTML ist, du kannst dir das also für alle Browser schenken.

Wie speicherst du deine Dateien? Ohne BOM?
Kannst du mal den genauen Code posten und am besten einen Link zu deinem Problemfall?
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 07.07.2008, 17:04
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.07.2008
Beiträge: 4
verstoert befindet sich auf einem aufstrebenden Ast
Standard

danke für deine antwort.

Zitat:
Zitat von inta Beitrag anzeigen
Erstmal vorweg:
<?xml version="1.0" encoding="utf-8"?> ist überflüssig, da UTF-8 die Standardkodierung für XHTML ist, du kannst dir das also für alle Browser schenken.
ja, zugegeben bin ich da etwas über-pedantisch.

Zitat:
Zitat von inta Beitrag anzeigen
Wie speicherst du deine Dateien? Ohne BOM?
ich benutze weaverslave als editor und speichere mit strg+s, leider weiß ich nicht, was BOM ist.. Oo

Zitat:
Zitat von inta Beitrag anzeigen
Kannst du mal den genauen Code posten und am besten einen Link zu deinem Problemfall?
der code sieht so aus:

PHP-Code:
<?php
$t 
time();
$base 'http://www.regioartline.org/';
$ral = array($base.'ral/'$base.'abh/'$base.'ral/?L=1');
$title 'Regioartline&gt; Kunstportal || Portail d\'art';
$l $_SERVER['HTTP_ACCEPT_LANGUAGE'];
if(isset(
$l)) { if(strtolower(substr($l02)) == 'fr') die(header("Location: $ral[2]")); }
if(
strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'msie') === false) print '<?xml version="1.0" encoding="utf-8"?>'."\n";
?>
danach folgt fast nur html (die nächste zeile wäre die doctype-definition, die ja im quelltext unter dem link zu sehen ist, s.u.), hier und da wird ne variable ausgeprintet, mehr php passiert da nicht - eigentlich eine supersimple sache. die website findest du unter www.regioartline.org.

Geändert von verstoert (07.07.2008 um 17:07 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 07.07.2008, 17:20
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Sicher, dass du den nicht noch statisch drinstehen hast?
Im IE ist der XML-Prolog ein mal vorhanden, im Firefox zwei mal.

Du lieferst die Seite übrigens mit ISO-8859-1 aus.
Statt des XML-Prolog würde ich an deiner Stelle einfach den HTTP-Header richtig setzen, dann erübrigt sich dein Problem von ganz alleine.
Mit Zitat antworten
  #5 (permalink)  
Alt 07.07.2008, 17:25
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.925
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Zitat:
..für den IE ausgegeben wird
Ich würde eher verstehen, wenn alle anderen Browser den XML Prolog bekommen, nur der IE eben nicht - weil er damit nichts anfangen kann und ihn auch noch in den Quirksmodus wirft.
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
  #6 (permalink)  
Alt 07.07.2008, 17:48
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Zitat:
Zitat von Boris Beitrag anzeigen
Ich würde eher verstehen, wenn alle anderen Browser den XML Prolog bekommen, nur der IE eben nicht - weil er damit nichts anfangen kann und ihn auch noch in den Quirksmodus wirft.
Huch, ist mir gar nicht aufgefallen.
Ich habs so gelesen, dass er es für alle Browser außer dem IE ausgeben möchte. Ich denke aber auch, dass er sich nur verschrieben hat.
Mit Zitat antworten
  #7 (permalink)  
Alt 07.07.2008, 18:05
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Das Ding heißt XML-Deklaration und ist Teil des XML-Prologs, nicht jedoch der XML-Prolog selbst. Denn der besteht aus XML-Deklaration und Dokumenttypdeklaration.
__________________
Markus Wulftange
Mit Zitat antworten
  #8 (permalink)  
Alt 07.07.2008, 18:07
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.925
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Also manchmal könnte ich ... aber egal.
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
  #9 (permalink)  
Alt 07.07.2008, 20:21
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.07.2008
Beiträge: 4
verstoert befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von inta Beitrag anzeigen
Sicher, dass du den nicht noch statisch drinstehen hast?
Im IE ist der XML-Prolog ein mal vorhanden, im Firefox zwei mal.
100%ig sicher, das war das erste, was ich überprüft habe.

Zitat:
Zitat von inta Beitrag anzeigen
Du lieferst die Seite übrigens mit ISO-8859-1 aus.
das ist mir bei der validitätsprüfung auf der w3c-website auch aufgefallen.. aber wodurch tue ich das? außer in der xml-deklaration und in einem meta-tag gebe ich nirgendwo was über charsets an.

Zitat:
Zitat von Boris Beitrag anzeigen
Ich würde eher verstehen, wenn alle anderen Browser den XML Prolog bekommen, nur der IE eben nicht - weil er damit nichts anfangen kann und ihn auch noch in den Quirksmodus wirft.
Zitat:
Zitat von inta Beitrag anzeigen
Huch, ist mir gar nicht aufgefallen.
Ich habs so gelesen, dass er es für alle Browser außer dem IE ausgeben möchte. Ich denke aber auch, dass er sich nur verschrieben hat.
möglich, daß ich mich irgendwo vertippt habe. ich möchte jedenfalls, daß die deklaration für den IE nicht ausgegeben wird, eben weil er dann herumquirkt.

deklarationen und charsets mal beiseite, hat jemand eine idee zu dem php-problem? syntaktische fehler kann ich in der fraglichen zeile nicht entdecken (fällt dank syntax highlighting ja eigentlich meistens auch recht schnell auf), ein kollege im büro konnte auch keinen fehler finden.

PS: ich habe den fehler gefunden, danke an alle für die antworten.

Geändert von verstoert (07.07.2008 um 20:27 Uhr)
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 07.07.2008, 20:33
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Zitat:
Zitat von verstoert Beitrag anzeigen
das ist mir bei der validitätsprüfung auf der w3c-website auch aufgefallen.. aber wodurch tue ich das? außer in der xml-deklaration und in einem meta-tag gebe ich nirgendwo was über charsets an.
Du kannst die Kodierung mittels AddCharset oder AddDefaultCharset in der Apache Konfiguration bzw. htaccess einstellen, oder mit PHP den entsprechenden Header setzen.

Zitat:
Zitat von verstoert Beitrag anzeigen
PS: ich habe den fehler gefunden, danke an alle für die antworten.
Super, dann teil uns doch noch mit woran es lag.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
CSS, PHP, Login - Problem strousberg CSS 3 11.08.2010 10:20
PHP Upload Problem tichy Serveradministration und serverseitige Scripte 2 28.10.2008 23:56
PHP DOM XML Problem meGa Serveradministration und serverseitige Scripte 16 05.06.2008 14:34
Dateien auslagern - Include und PHP ArcVieh Serveradministration und serverseitige Scripte 17 27.03.2008 18:09


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:29 Uhr.