Avatar billede needname Nybegynder
17. juni 2005 - 16:11 Der er 10 kommentarer

Mister html tags efter include med php

Hej, start med at kør denne hjemmeside:

http://www.diabolo.dk/index7.php

Ude til højre er der vist nogle links.. Disse links bliver vist med php, som kommer fra links.php. I html filen er der skrevet:

<?php include('links.php'); ?>

Hvis man kigger på kildekoden kan man se at alle de afsluttende tags der skulle komme efter include er væk.. Dvs. alt hvad der er bagefter include er væk. Der mangler måde /td /div /body osv. Hvad kan der være galt?

Links.php ser således ud:

<?php
    // MysQl forbindelsen 
    mysql_connect("localhost","root","ost") or die(mysql_error);
    mysql_select_db("diabolo_dk") or die(mysql_error);

    // henter data fra 'linkoverskrift'
    $result = mysql_query("SELECT * FROM links");


    // Ligger alt data fra 'linkoverskrifr' i et array samt kører alle rækkerne igennem
    while($row = mysql_fetch_array($result) or die(mysql_error()))
        {
        $http = "http://";
        $fuldlink = $http.$row['weblink'];           
           
            if ( $overskrift == $row['linkoverskrift'] )
            {
                echo "<div class=\"font\"><a href=\"" . $fuldlink . "\">" . $row['linktekst'] . "</a></div>";
            }
            else
            {
                echo "<div class=\"font4\">" . $row['linkoverskrift'] . "</div>";
                echo "<div class=\"font\"><a href=\"" . $fuldlink . "\">" . $row['linktekst'] . "</a></div>";
               
            }
            $overskrift = $row['linkoverskrift'];
        }
?>

Håber spørgsmålet går klart ud :)

På forhånd tak.
Avatar billede claus_joergensen Nybegynder
17. juni 2005 - 16:14 #1
Sådan her ser din html kode ud (hvis du nu ikke kender VIS KILDE)

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<!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="da">
<head>

<title>Diabolo.dk - Sig det videre</title>

<link rel="stylesheet" type="text/css" href="lol.css" />

</head>

<body>

<div class="center">

    <div class="streg">

        <div class="billed">

            <img src="logo1.JPG" alt="Diabolo.dk - Sig det videre" />

        </div>

    </div>

<div class="farve">

<div class="menu">

<table border="0" cellpadding="0" cellspacing="0" width="600">

  <tr style="text-align:center;">
  <td width="40" height="40"><div class="font">&nbsp;&nbsp;&nbsp;<a href="http://www.diabolo.dk">Forside</a>&nbsp;&nbsp;&nbsp;</div></td>
  <td style="marginwidth: 2;"><div class="font2">|</div></td>
  <td><div class="font"><a href="http://www.diabolo.dk">Kom&nbsp;igang</a></div></td>
  <td style="marginwidth: 2;"><div class="font2">|</div></td>

  <td><div class="font"><a href="http://www.diabolo.dk">1&nbsp;Diabolo</a></div></td>
  <td style="marginwidth: 2;"><div class="font2">|</div></td>
  <td><div class="font"><a href="http://www.diabolo.dk">2&nbsp;Diabolo</a></div></td>
  <td style="marginwidth: 2;"><div class="font2">|</div></td>
  <td><div class="font"><a href="http://www.diabolo.dk">&nbsp;&nbsp;Video&nbsp;&nbsp;</a></div></td>

  <td style="marginwidth: 2;"><div class="font2">|</div></td>
  <td><div class="font"><a href="http://www.diabolo.dk">Info&nbsp;&amp;&nbsp;Kontakt</a></div></td>
  <td width="3" style="background-color:white;"></td>
  <td width="20"></td>
  <td width="128" style="text-align:left;"><div class="font">Diabolo Links:</div></td>
  </tr>

</table>

<!-- Første indlæg -->

<table border="0" cellpadding="0" cellspacing="0" width="600">

  <tr>
    <td width="449"><div class="font">

<!-- Indlæg -->

<table border="0" cellpadding="0" cellspacing="0">

<!-- Indlæg 1 -->


<tr>
<td height="20" width="449" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>           
   
<tr>
<td style="background-color: #CC3333;"></td>
</tr>               

<tr>
<td height="80" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>

<tr>
<td style="background-color: #9C8E4B;"></td>
</tr>

<tr>
<td height="20" style="text-align: right;"><div class="font1">LOLDA</div></td>
</tr>



<!-- Indlæg 2 -->


<tr>
<td height="20" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>           
   
<tr>
<td style="background-color: #CC3333;"></td>

</tr>               

<tr>
<td height="80" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>

<tr>
<td style="background-color: #9C8E4B;"></td>
</tr>

<tr>
<td height="20" style="text-align: right;"><div class="font1">LOLDA</div></td>
</tr>



<!-- Indlæg 3 -->


<tr>
<td height="20" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>           
   
<tr>
<td style="background-color: #CC3333;"></td>
</tr>               

<tr>
<td height="80" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>

<tr>
<td style="background-color: #9C8E4B;"></td>

</tr>

<tr>
<td height="20" style="text-align: right;"><div class="font1">LOLDA</div></td>
</tr>

</table>


</div></td>
    <td width="3" style="background-color:white;"></td>
    <td width="20"></td>
    <td width="128" style="vertical-align: top; text-align: left;"><div class="font4">Diabolo</div><div class="font"><a href="http://www.diabolo.dk">diabolo.dk</a></div><div class="font"><a href="http://www.diabolo.ca">diabolo.ca</a></div><div class="font"><a href="http://www.2diabolo.net">2diabolo.net</a></div><div class="font4">Personal links</div><div class="font"><a href="http://www.listepik.net">listepik.net</a></div><div class="font"><a href="http://www.kuhlau.dk">kuhlau.dk</a></div><div class="font"><a href="http://www.troelsbay.dk">Troels Bay</a></div>

------------

Det er jo tydeligvis din opbygning den er gal med, og den stump kode, du har givet genererer vel ikke alt det jeg lige har postet ?

Kom med alt den relevante kode, tak.
Avatar billede needname Nybegynder
17. juni 2005 - 16:18 #2
Okay.. Koden ser sådan her ud:

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<!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="da">
<head>

<title>Diabolo.dk - Sig det videre</title>

<link rel="stylesheet" type="text/css" href="lol.css" />

</head>

<body>

<div class="center">

    <div class="streg">

        <div class="billed">

            <img src="logo1.JPG" alt="Diabolo.dk - Sig det videre" />

        </div>

    </div>

<div class="farve">

<div class="menu">

<table border="0" cellpadding="0" cellspacing="0" width="600">

  <tr style="text-align:center;">
  <td width="40" height="40"><div class="font">&nbsp;&nbsp;&nbsp;<a href="http://www.diabolo.dk">Forside</a>&nbsp;&nbsp;&nbsp;</div></td>
  <td style="marginwidth: 2;"><div class="font2">|</div></td>
  <td><div class="font"><a href="http://www.diabolo.dk">Kom&nbsp;igang</a></div></td>
  <td style="marginwidth: 2;"><div class="font2">|</div></td>
  <td><div class="font"><a href="http://www.diabolo.dk">1&nbsp;Diabolo</a></div></td>
  <td style="marginwidth: 2;"><div class="font2">|</div></td>
  <td><div class="font"><a href="http://www.diabolo.dk">2&nbsp;Diabolo</a></div></td>
  <td style="marginwidth: 2;"><div class="font2">|</div></td>
  <td><div class="font"><a href="http://www.diabolo.dk">&nbsp;&nbsp;Video&nbsp;&nbsp;</a></div></td>
  <td style="marginwidth: 2;"><div class="font2">|</div></td>
  <td><div class="font"><a href="http://www.diabolo.dk">Info&nbsp;&amp;&nbsp;Kontakt</a></div></td>
  <td width="3" style="background-color:white;"></td>
  <td width="20"></td>
  <td width="128" style="text-align:left;"><div class="font">Diabolo Links:</div></td>
  </tr>

</table>

<!-- Første indlæg -->

<table border="0" cellpadding="0" cellspacing="0" width="600">

  <tr>
    <td width="449"><div class="font">

<!-- Indlæg -->

<table border="0" cellpadding="0" cellspacing="0">

<!-- Indlæg 1 -->



<tr>
<td height="20" width="449" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>           
   
<tr>
<td style="background-color: #CC3333;"></td>
</tr>               

<tr>
<td height="80" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>

<tr>
<td style="background-color: #9C8E4B;"></td>
</tr>

<tr>
<td height="20" style="text-align: right;"><div class="font1">LOLDA</div></td>
</tr>



<!-- Indlæg 2 -->


<tr>
<td height="20" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>           
   
<tr>
<td style="background-color: #CC3333;"></td>
</tr>               

<tr>
<td height="80" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>

<tr>
<td style="background-color: #9C8E4B;"></td>
</tr>

<tr>
<td height="20" style="text-align: right;"><div class="font1">LOLDA</div></td>
</tr>



<!-- Indlæg 3 -->


<tr>
<td height="20" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>           
   
<tr>
<td style="background-color: #CC3333;"></td>
</tr>               

<tr>
<td height="80" style="text-align: left;"><div class="font1">LOLDA</div></td>
</tr>

<tr>
<td style="background-color: #9C8E4B;"></td>
</tr>

<tr>
<td height="20" style="text-align: right;"><div class="font1">LOLDA</div></td>
</tr>

</table>


</div></td>
    <td width="3" style="background-color:white;"></td>
    <td width="20"></td>
    <td width="128" style="vertical-align: top; text-align: left;"><?php include('links.php'); ?>
   
</div>
</td>
   
</tr>
 

</table>

</div>
</div>
</div>

</body>

</html>

-----------------------------------------------------------

Men nemlig ja, hvis du trykker "Vis kilde", ser den ud om du har skrevet. Og det er der problemet ligger. Efter <?php include('links.php'); ?> sletter den de efterkomne tags. Så ved ikke hvad kode du leder efter?

/Mikael
Avatar billede claus_joergensen Nybegynder
17. juni 2005 - 16:29 #3
okay, først og fremmest, har du misforstået en html, det skal lige ordnes først.

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> skal står i <head></head> sektionen !
og når du bruger XHTML doctype, skal det altså står med småt, og lukkes med korrent />

Derudover tyder det på at din php fejler på en måde, og derfor annulere koden bagefter.
En include() ændre pr. default intet, medmindre der står noget i den fil som du includer.

Prøv at ændre  $result = mysql_query("SELECT * FROM links"); til  $result = mysql_query("SELECT * FROM links") or die(mysql_error());

og set error_reporting(E_ALL); i TOPPEN af din index.php
Avatar billede claus_joergensen Nybegynder
17. juni 2005 - 16:31 #4
Andet trick (til pænere kode, i "vil kilde")

Lav:

echo "<div class=\"font\"><a href=\"" . $fuldlink . "\">" . $row['linktekst'] . "</a></div>";

om til:

echo "<div class=\"font\"><a href=\"" . $fuldlink . "\">" . $row['linktekst'] . "</a></div>\n";

altså tilføj \n in enden af dine linjer, så kommer der linjeskift i "vis kilde" hvilket hjælper til debugging. Bemærk at \n skal være i dobbeltquotes , dvs. "\n" ikke '\n'
Avatar billede needname Nybegynder
17. juni 2005 - 16:58 #5
Tak for svaret, men er desværre ikk kommet helt til løsningen endnu. Jeg har ændret htmlen. Ved - $result = mysql_query("SELECT * FROM links") or die(mysql_error()); - Kan jeg ikke se hvorfor der skulle være en or die på, når der allerede er en oppe over, men har prøvet at ændre, uden ændring.

Dernæst har jeg prøvet at bruge error_reporting(E_ALL), hvor den brokkede sig over at "overskrift" i linje 17 ikke var defineret som en variabel. Men dette er også meningen at den først skal defineres til sidst, og først er defineret næste gang den løber links.php igennem.

Også har jeg prøvet \n, hvilket er ret smart, så man ikk har det ud i en lang køre.

Men desværre mister jeg stadig de efterkomne tags, efter include.
Avatar billede needname Nybegynder
18. juni 2005 - 12:10 #6
Jeg har prøvet både error_reporting(E_ALL) og display_errors ... Bare så det er klart :)
Avatar billede claus_joergensen Nybegynder
18. juni 2005 - 12:21 #7
Jeg har ihvertfald næsten opgivet, specielt efter den omgang på irc...

mht. "Dernæst har jeg prøvet at bruge error_reporting(E_ALL), hvor den brokkede sig over at "overskrift" i linje 17 ikke var defineret som en variabel. Men dette er også meningen at den først skal defineres til sidst, og først er defineret næste gang den løber links.php igennem."

SKAL DET RETTES !!! man kan ikke først definere noget til sidst, du er nød til at definere en blank variable først, og så tilpasse den senere.
Avatar billede needname Nybegynder
18. juni 2005 - 16:18 #8
Okay. Fejlen er fundet. Fejlen var en fejl der ikke kunne opdages med error tags og fejlen havde intet at gøre med den variabel.
Fejlen lå i while. Ved at sige:

while($row = mysql_fetch_array($result) or die(mysql_error()))

Blev html-tags efter include slettet pga. or die. Så hvis or die fjernes forsvinder html-tagsne ikke, jubii!

En flink person på #php.dk fandt fejlen og mange tak til ham, men også mange tak fordi du ville prøve at hjælpe claus jørgensen eller TheDeathArt :)
Avatar billede claus_joergensen Nybegynder
18. juni 2005 - 22:49 #9
lol ja, men det er jo ulovlig syntaks dette der, så php burde nu have givet en fejl på det.

or die(mysql_error() skal på mysql_query() ikke når du fetcher, da fetch kræver at query er gået perfekt igennem.
Avatar billede claus_joergensen Nybegynder
18. juni 2005 - 22:50 #10
snot er nu også dansker :) og han kickede dig altså pænt meget fra #php :)

#php.dk plejer at være endnu sygere, afhænger af deres humørsvingninger derinde.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester