x-ray-cat Skrevet 12. mars 2006 Del Skrevet 12. mars 2006 (endret) Hei. Jeg lurer på hva jeg må gjøre får å få dette til å validere. Ville satt pris på om noen kunne ha hjulpet meg med dette. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="no"> <?php error_reporting(0); $charset = 'iso-8859-1'; $mime = 'text/html'; $declaration = '<?xml version="1.0" encoding="' . strtoupper($charset) . '"?>'."\r\n"; $fetch = apache_request_headers(); function fix_code($buffer) { return str_replace(" />", "/>", $buffer); } if(eregi('MSIE[ \/]([0-9\.]+)', $fetch['User-Agent'])) { if(!stristr($fetch['User-Agent'], 'Opera')) { $declaration = ""; } } if(stristr($fetch['Accept'], "application/xhtml+xml")) { if(preg_match("/application\/xhtml\+xml;q=0(\.[1-9]+)/i", $fetch['Accept'], $matches)) { $xhtml_q = $matches[1]; if(preg_match("/text\/html;q=0(\.[1-9]+)/i", $fetch['Accept'], $matches)) { $html_q = $matches[1]; if($xhtml_q >= $html_q) { $mime = "application/xhtml+xml"; } } } else { $mime = "application/xhtml+xml"; } } if($mime == "application/xhtml+xml") { ob_start("fix_code"); } header("Content-Type: $mime; charset=$charset"); header("Vary: Accept"); echo $declaration; ?> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" /> <title>hei</title> </head> <body> </body> </html> Endret 12. mars 2006 av x-ray-cat Lenke til kommentar
Arve Systad Skrevet 12. mars 2006 Del Skrevet 12. mars 2006 (endret) Kunne du tenke deg å laste opp fila ein plass og gi oss link til valideringa av den? edit: ja, eg er lat og såg ikkje eingong stort på koden før eg svarte Endret 12. mars 2006 av Arve Systad Lenke til kommentar
Steinmann Skrevet 12. mars 2006 Del Skrevet 12. mars 2006 trenger ikke det, den koden php koden skal komme før alt annet. Lenke til kommentar
x-ray-cat Skrevet 12. mars 2006 Forfatter Del Skrevet 12. mars 2006 (endret) Ok. Men nå mangler jeg ifølge validatoren doctype. Selv om jeg har det i dokumentet. Også hvorfor får jeg melding om at ingen character encoding blir funnet når jeg bruker iso-8859-1? Her er linken: http://validator.w3.org/check?uri=http%3A%...nline&verbose=1 Endret 12. mars 2006 av x-ray-cat Lenke til kommentar
qualbeen Skrevet 12. mars 2006 Del Skrevet 12. mars 2006 echo $declaration; kommer jo ovenfor <head>-tag. Det blir nok litt feil.. Spiller liten trille hvor i dokumentet du putter php-funksjonene, men echo må plasseres på riktig plass. Lenke til kommentar
rødøye Skrevet 12. mars 2006 Del Skrevet 12. mars 2006 En liten kommentar der: header(); MÅ sendes FØR NOE annet. Dette er ingen begrensning i PHP, men pga HTTPs arkitektur. <?php må være helt først i filen, altså ingen HTML (selv mellomrom lager feil) før den. header må komme før echo, print etc. også. Lenke til kommentar
x-ray-cat Skrevet 12. mars 2006 Forfatter Del Skrevet 12. mars 2006 Ok. Takk. Gidder noen å skrive koden i den rekkefølgen det skal være og eller utelate det som ikke skal være der? Så kan det være jeg fortstår det lettere. Lenke til kommentar
x-ray-cat Skrevet 12. mars 2006 Forfatter Del Skrevet 12. mars 2006 Skal php-koden ligge i head? Eller skal det være før all html inkludert doctype? Lenke til kommentar
Arve Systad Skrevet 12. mars 2006 Del Skrevet 12. mars 2006 Kvifor skal du skrive XHTML 1.0 Strict når du ikkje eingong forstår korleis og kvifor du gjer det? Lenke til kommentar
x-ray-cat Skrevet 12. mars 2006 Forfatter Del Skrevet 12. mars 2006 (endret) Kvifor skal du skrive XHTML 1.0 Strict når du ikkje eingong forstår korleis og kvifor du gjer det? 5742790[/snapback] Det er php'en som skaper trøbbel. Fjerner jeg skriptet, validerer det. Hvorfor skal jeg ikke skrive xhtml stict 1.0? Endret 12. mars 2006 av x-ray-cat Lenke til kommentar
qualbeen Skrevet 12. mars 2006 Del Skrevet 12. mars 2006 Ok. Takk. Gidder noen å skrive koden i den rekkefølgen det skal være og eller utelate det som ikke skal være der? Så kan det være jeg fortstår det lettere. 5742465[/snapback] <?php error_reporting(0); $charset = 'iso-8859-1'; $mime = 'text/html'; $declaration = '<?xml version="1.0" encoding="' . strtoupper($charset) . '"?>' "\r\n"; $fetch = apache_request_headers(); function fix_code($buffer){ return str_replace(" />", "/>", $buffer); } if(eregi('MSIE[ \/]([0-9\.]+)', $fetch['User-Agent'])){ if(!stristr($fetch['User-Agent'], 'Opera')){ $declaration = ""; } } if(stristr($fetch['Accept'], "application/xhtml+xml")){ if(preg_match("/application\/xhtml\+xml;q=0(\.[1-9]+)/i", $fetch['Accept'],$matches)){ $xhtml_q = $matches[1]; if(preg_match("/text\/html;q=0(\.[1-9]+)/i", $fetch['Accept'], $matches)){ $html_q = $matches[1]; if($xhtml_q >= $html_q) { $mime = "application/xhtml+xml"; } } } else { $mime = "application/xhtml+xml"; } } if($mime == "application/xhtml+xml"){ ob_start("fix_code"); } header("Content-Type: $mime; charset=$charset"); header("Vary: Accept"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="no"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" /> <title>hei</title> </head> <body> ...innhold her... <?php echo $declaration; ?> <!-- Flytt denne til der du ønsker at $declaration skal være --> ..innhold her... </body> </html> Lenke til kommentar
x-ray-cat Skrevet 12. mars 2006 Forfatter Del Skrevet 12. mars 2006 Takk. Men fikk fem nye feil nå. http://validator.w3.org/check?verbose=1&ur...Ftrudesignub%2F Hvor bør jeg sette declaration? Lenke til kommentar
Arve Systad Skrevet 12. mars 2006 Del Skrevet 12. mars 2006 Hvorfor skal jeg ikke skrive xhtml stict 1.0? Fordi du har overhodet ingenting å hente på det anna enn meir trøbbel i forhold til å skrive vanlig HTML Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå