Gå til innhold

Spørsmål om XHTML og XML [LØST]


Anbefalte innlegg

Videoannonse
Annonse
Skrevet

Men driver å prøver meg med stil skiftings scriptet til lokaltog.

 

Jeg får XML error på denne kodesnutten

<?php
foreach($styles as $tittel => $filnavn)
{
   echo '
<a href="'.$self.'?'.htmlspecialchars($query). '&stilark='.$filnavn.'" />'. $tittel .'</a><br />';
}
?>

 

XML sier at jeg mangler en </div>, men det stemmer ikke!

 

HTML

<body>

<div id="side">
 <div class="head">
  </div>
   <div class="meny">
    <ul class="lister">
     <li class="lister">
    <a href="index.php?side=oss">Om oss</a></li>
     <li><a href="index.php?side=produksjon">Produksjon</a></li>
    <li><a href="index.php?side=#">#</a></li>
   <li><a href="index.php?side=kontakt">Kontakt</a></li>
 <li><a href="index.php?side=gjestebok">Gjestebok</a></li>
</ul>

<p>
<h3>Farger/temaer:</h3>
</p>

<?php
foreach($styles as $tittel => $filnavn)
{
   echo '
<a href="'.$self.'?'.htmlspecialchars($query). '&stilark='.$filnavn.'" />'. $tittel .'</a><br />';
}
?>

</div>

 

noen som veit løsningen?

 

-Dan

Skrevet
<form />

og

onclick="window.open(this.href,'_blank');return false;"

 

fikser biffen

form-elementet trenger ikke å lukkes på denne måten, siden det både har en start-tag og slutt-tag. (<form> Innhold i skjemaer </form>)

 

 

Vær obs på å ha korrekt URI, og ikke "#", som verdi i href-attributten når javascript brukes til å simulere et popup-vindu:

 

<a href="http://example.org/2005/" onclick="window.open(this.href='http://example.org/','_blank');return false;">http://example.org/2005/</a>

Skrevet

Ok. Nå har jeg fått lasta opp sida på nett.

 

URL My Webpage

 

nå kan dere se for dere selv.. jeg har sittet å sett igjenom mange ganger, men finner ikke noe feil.. Man finner ikke sine egene feil like lett. :whistle:

 

Takk for all hjelp

Skrevet (endret)

En begynnelse måtte være å fjerne header()-feilen som kommer helt på toppen av dokumentet ditt.

 

Edit: den delen av scriptet mitt som lager linker til skifteren må stå inni en div, p eller et liknende element.

Edit 2: i tillegg ser det ut til at du ikke har lukket alle div-elementene dine.

Endret av Lokaltog
Skrevet

Nå står linkene som skal skifte stiler inni et <p> element, men som du ser så spør den nå etter et </p> element! Hva mente du med header() feilen?

 

Jeg har da lukket alle <div>ene mine! Tror jeg.

 

Her er hele koden

<?php
if(preg_match('/MSIE/i', $_SERVER['HTTP_USER_AGENT']))
header('Content-Type: text/html; charset=iso-8859-1');
else
header('Content-Type: application/xhtml+xml; charset=iso-8859-1');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 <?php
$stilark = & $_GET['stilark'];
$self    = & $_SERVER['PHP_SELF'];
$query   = & $_SERVER['QUERY_STRING'];
$styles = array(
   "Grønn/orange" => "alternativstyle",
   "Blå/orange" => "style"
);

$standard = 'style';

if($_COOKIE['stil'] && empty($stilark))
{
   $stil = $_COOKIE['stil'];
}
elseif(!empty($stilark))
{
   setcookie("stil", $stilark, time() + 14400000);
   $stil = $stilark;
   unset($_GET['stilark']);
   foreach ($_GET as $key => $value)
   {
       $newquery .= "&$key=$value";
   }
   header("Location: $self?$newquery");
}
else
{
   setcookie("stil", $standard, time() + 14400000);
   $stil = $standard;
}
?>
<html xml:lang="no" xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>Åsnes Gård</title>
<meta name="keywords" content="Pottis, poteter, gård, traktor, spade, korn, åsnes" />
<meta name="description" content="Åsnes Gård" />
<meta name="revised" content="Dan Lagergren, 2005-01-22" />
<?php
echo '
<link
   rel="stylesheet"
   type="text/css"
   href="style/'. $stil .'.css"
   media="screen" />

';


foreach($styles as $tittel => $filnavn)
{
   echo '
   <link
   rel="alternate stylesheet"
   type="text/css"
   href="css/'. $filnavn .'.css"
   title="'. $tittel .'"
   media="screen" />

';

}
?>
</head>
<body>

<div id="side">

<div class="head">
  </div>
  
<div class="meny">
    <ul class="lister">
     <li class="lister">
    <a href="index.php?side=oss">Om oss</a></li>
     <li><a href="index.php?side=produksjon">Produksjon</a></li>
    <li><a href="index.php?side=#">#</a></li>
   <li><a href="index.php?side=kontakt">Kontakt</a></li>
 <li><a href="index.php?side=gjestebok">Gjestebok</a></li>
</ul>
 
<p>
<h3>Farger/temaer:</h3>


<?php
foreach($styles as $tittel => $filnavn)
{
   echo '
<a href="'.$self.'?'.htmlspecialchars($query). '&stilark='.$filnavn.'" />'. $tittel .'</a><br />';
}
?>
</p>
</div>

 <div class="innehold">
 <?php
 $filnavn = $_GET['side'];
 $fil = '.php';
 if (isset($filnavn)) {
 if (eregi("^[a-z0-9]+$", $filnavn)) {
 include $filnavn . $fil;
 }
 else {
 include "404.php";
 }
 }
 else {
 include "oss.php";
 }
 ?>
 </div>

<div id="footer">
<span class="text_footer_vali">
Webmaster | <a href="mailto:[email protected]">Dan S. Lagergren</a> | Design | <a href="http://www.danweb.cjb.net">www.danweb.cjb.net</a><br />
<a href="http://jigsaw.w3.org/css-validator/">css2</a> | 
<a href="http://validator.w3.org/check?uri=referer">xhtml 1.1</a> 
</span>
</div>

</div>
</body>
</html>


Skrevet (endret)

headerfeilen skyldes at output sendes før HTTP-headerne. Det står i guiden min at denne kodeblokken MÅ stå før all output (dvs. før all HTML):

<?php
$stilark = & $_GET['stilark'];
$self    = & $_SERVER['PHP_SELF'];
$query   = & $_SERVER['QUERY_STRING'];
$styles = array(
  "Grønn/orange" => "alternativstyle",
  "Blå/orange" => "style"
);

$standard = 'style';

if($_COOKIE['stil'] && empty($stilark))
{
  $stil = $_COOKIE['stil'];
}
elseif(!empty($stilark))
{
  setcookie("stil", $stilark, time() + 14400000);
  $stil = $stilark;
  unset($_GET['stilark']);
  foreach ($_GET as $key => $value)
  {
      $newquery .= "&$key=$value";
  }
  header("Location: $self?$newquery");
}
else
{
  setcookie("stil", $standard, time() + 14400000);
  $stil = $standard;
}
?>

Endret av Lokaltog
Skrevet

Ahh.. dumme meg :wallbash:

 

men hvis du føger linken nå står det at jeg sender header 2 ganger,? Er litt grønn på dette med header info!

 

kode

 <?php
$stilark = & $_GET['stilark'];
$self    = & $_SERVER['PHP_SELF'];
$query   = & $_SERVER['QUERY_STRING'];
$styles = array(
   "Grønn/orange" => "alternativstyle",
   "Blå/orange" => "style"
);

$standard = 'style';

if($_COOKIE['stil'] && empty($stilark))
{
   $stil = $_COOKIE['stil'];
}
elseif(!empty($stilark))
{
   setcookie("stil", $stilark, time() + 14400000);
   $stil = $stilark;
   unset($_GET['stilark']);
   foreach ($_GET as $key => $value)
   {
       $newquery .= "&$key=$value";
   }
   header("Location: $self?$newquery");
}
else
{
   setcookie("stil", $standard, time() + 14400000);
   $stil = $standard;
}
?>

<?php
if(preg_match('/MSIE/i', $_SERVER['HTTP_USER_AGENT']))
header('Content-Type: text/html; charset=iso-8859-1');
else
header('Content-Type: application/xhtml+xml; charset=iso-8859-1');   ||||||38||||
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xml:lang="no" xmlns="http://www.w3.org/1999/xhtml">

<head>

 

står at feilen er på linje 38

Skrevet

Om du ser på linje 1 i koden din så er det en tom linje, den må vekk. Deretter rundt linje 34 er det på ny et "hvittegn" (mellomrom, linjeskift, etc).

 

INGEN slike ting kan du ha før du sender ut en header ellers skjærer alt seg. Tingen er det at du sender 2 forskjellige headere, men du sender begge etter at du har startet å sende ting til klienten og ettersom header informasjon er det første som må sendes (se PHP dokumentasjon) oppstår det problemer når du prøver å sende det etterpå.

 

Coq Rouge (gjør alltid samme feil selv)

Skrevet

Jeg er ikke sikker på hvordan jeg skal kunne sende de andre header'ene før, når stilskift scriptet skal ligge helt på toppen?

 

her er koden

<?php
$stilark = & $_GET['stilark'];
$self    = & $_SERVER['PHP_SELF'];
$query   = & $_SERVER['QUERY_STRING'];
$styles = array(
   "Grønn/orange" => "alternativstyle",
   "Blå/orange" => "style"
);
$standard = 'style';

if($_COOKIE['stil'] && empty($stilark))
{
   $stil = $_COOKIE['stil'];
}
elseif(!empty($stilark))
{
   setcookie("stil", $stilark, time() + 14400000);
   $stil = $stilark;
   unset($_GET['stilark']);
   foreach ($_GET as $key => $value)
   {
       $newquery .= "&$key=$value";
   }
   header("Location: $self?$newquery");
}
else
{
   setcookie("stil", $standard, time() + 14400000);
   $stil = $standard;
}
?>
<?php
if(preg_match('/MSIE/i', $_SERVER['HTTP_USER_AGENT']))
header('Content-Type: text/html; charset=iso-8859-1');
else
header('Content-Type: application/xhtml+xml; charset=iso-8859-1');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="no" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Åsnes Gård</title>
<meta name="keywords" content="Pottis, poteter, gård, traktor, spade, korn, åsnes" />
<meta name="description" content="Åsnes Gård" />
<meta name="revised" content="Dan Lagergren, 2005-01-22" />
<?php
echo '
<link
   rel="stylesheet"
   type="text/css"
   href="style/'. $stil .'.css"
   media="screen" />

';


foreach($styles as $tittel => $filnavn)
{
   echo '
   <link
   rel="alternate stylesheet"
   type="text/css"
   href="css/'. $filnavn .'.css"
   title="'. $tittel .'"
   media="screen" />

';

}
?>
</head>
<body>

<div id="side">
 <div class="head">
  </div>
   <div class="meny">
    <ul class="lister">
     <li class="lister">
    <a href="index.php?side=oss">Om oss</a></li>
     <li><a href="index.php?side=produksjon">Produksjon</a></li>
    <li><a href="index.php?side=#">#</a></li>
   <li><a href="index.php?side=kontakt">Kontakt</a></li>
 <li><a href="index.php?side=gjestebok">Gjestebok</a></li>
</ul>
 
<p>
<h3>Farger/temaer:</h3>


<?php
foreach($styles as $tittel => $filnavn)
{
   echo '
<a href="'.$self.'?'.htmlspecialchars($query). '&stilark='.$filnavn.'" />'. $tittel .'</a><br />';
}
?>
</p>
</div>

 <div class="innehold">
 <?php
 $filnavn = $_GET['side'];
 $fil = '.php';
 if (isset($filnavn)) {
 if (eregi("^[a-z0-9]+$", $filnavn)) {
 include $filnavn . $fil;
 }
 else {
 include "404.php";
 }
 }
 else {
 include "oss.php";
 }
 ?>
 </div>

<div id="footer">
<span class="text_footer_vali">
Webmaster | <a href="mailto:[email protected]">Dan S. Lagergren</a> | Design | <a href="http://www.danweb.cjb.net">www.danweb.cjb.net</a><br />
<a href="http://jigsaw.w3.org/css-validator/">css2</a> | 
<a href="http://validator.w3.org/check?uri=referer">xhtml 1.1</a> 
</span>
</div>
</div>
</body>
</html>


 

Er som sagt ikke så god på PHP:no:

 

takk for eventulle svar

Skrevet

Spiller ingen rolle hvilken som ligger øverst, så lenge headerne sendes før all output. Prøv å forandre hele den øverste kodeblokken din til dette:

<?php
// Stilskifter her
$stilark = & $_GET['stilark'];
$self    = & $_SERVER['PHP_SELF'];
$query   = & $_SERVER['QUERY_STRING'];
$styles = array(
  "Grønn/orange" => "alternativstyle",
  "Blå/orange" => "style"
);
$standard = 'style';

if($_COOKIE['stil'] && empty($stilark))
{
  $stil = $_COOKIE['stil'];
}
elseif(!empty($stilark))
{
  setcookie("stil", $stilark, time() + 14400000);
  $stil = $stilark;
  unset($_GET['stilark']);
  foreach ($_GET as $key => $value)
  {
      $newquery .= "&$key=$value";
  }
  header("Location: $self?$newquery");
}
else
{
  setcookie("stil", $standard, time() + 14400000);
  $stil = $standard;
}

// Browser-sniffing her:
if(preg_match('/MSIE/i', $_SERVER['HTTP_USER_AGENT']))
header('Content-Type: text/html; charset=iso-8859-1');
else
header('Content-Type: application/xhtml+xml; charset=iso-8859-1');
?>

Skrevet

Har nå prøvd din verson Lokaltog, men jeg får XML error på stil skifteren din..

 

kode (tar nå bare med <body>)

 

<body>

<div id="side">
 <div class="head">
  </div>
   <div class="meny">
    <ul class="lister">
     <li class="lister">
    <a href="index.php?side=oss">Om oss</a></li>
     <li><a href="index.php?side=produksjon">Produksjon</a></li>
    <li><a href="index.php?side=#">#</a></li>
   <li><a href="index.php?side=kontakt">Kontakt</a></li>
 <li><a href="index.php?side=gjestebok">Gjestebok</a></li>
</ul>
 
<p>
<h3>Farger/temaer:</h3>


<?php
foreach($styles as $tittel => $filnavn)
{
   echo '
<a href="'.$self.'?'.htmlspecialchars($query). '&stilark='.$filnavn.'" />'. $tittel .'</a><br />';
}
?>
</p>
</div>

 <div class="innehold">
 <?php
 $filnavn = $_GET['side'];
 $fil = '.php';
 if (isset($filnavn)) {
 if (eregi("^[a-z0-9]+$", $filnavn)) {
 include $filnavn . $fil;
 }
 else {
 include "404.php";
 }
 }
 else {
 include "oss.php";
 }
 ?>
 </div>

<div id="footer">
<span class="text_footer_vali">
Webmaster | <a href="mailto:[email protected]">Dan S. Lagergren</a> | Design | <a href="http://www.danweb.cjb.net">www.danweb.cjb.net</a><br />
<a href="http://jigsaw.w3.org/css-validator/">css2</a> | 
<a href="http://validator.w3.org/check?uri=referer">xhtml 1.1</a> 
</span>
</div>
</div>
</body>

 

LINK til siden

 

Skjønner ikke dette :hmm: Har satt stilskift linkene inn i et <p> element, men får error ennå!

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...