Avatar billede udvikler Nybegynder
23. august 2005 - 07:17 Der er 13 kommentarer og
1 løsning

Script bug ?

Godmorgen

Jeg tror at frac har inført noget nyt på deres side, for efter at deres side har været nede i 2-3 dage har de åbenbart lavet en script tjekker til php eller lign. hehe
Når jeg åbner min index side (ikke nogle af de andre) så kommer en popup frem hvori der står "Script bug" når jeg så klikker Ok eller oppe i krydset så går den ind på php.net's hjemmeside og viser mig noget med strip_tags :S det er åbenbart dér jeg har lavet fejlen.. men kan i hjælpe mig ?

Her er min side: www.fora.frac.dk

Her er min index kode:

<a href="opret.php">Opret besked</a>
<a href="index.php">Gå til forsiden</a>
<br><br><br><br><br>


<div style="text-align: center;">
<table border="1" width="600">
<tr>
<td>


<?
//Her inkludere vi filen der indenholder database oplysningerne
include "mysql.php";

//Her indsætter vi alle vores overskrifter og laver dem om til links
//Derefter gør vi sådan at når man trykker på dem, kommer selve indlægget frem

if(isset($_GET['id'])) {
$query = mysql_query("select id, overskrift, besked from forum where id='$_GET[id]'");
while($foo = mysql_fetch_array($query)) {
echo $foo[overskrift]."<br><hr><br>".$foo[besked];
}
} else {
$query = mysql_query("select id, overskrift, besked from forum");
while($row = mysql_fetch_array($query)) {
echo "<a href=\"laes.php?id=".$row[id]."\">".$row[overskrift]."</a><br><hr><br>";
}
}
?>


</td>
</tr>
</table>
</div>
Avatar billede nielle Nybegynder
23. august 2005 - 08:01 #1
Mit umidelbare gæt er at de ikke kan lide sådan noget som:

$foo[overskrift]

Prøv at ret det til:

$foo['overskrift']
Avatar billede udvikler Nybegynder
23. august 2005 - 08:09 #2
Nope virkede ikk

Har forresten ændret det ved alle steder nu.. hvor der stor [besked] [overskrift]

osv..

Men virkede ikk
Avatar billede udvikler Nybegynder
23. august 2005 - 08:11 #3
Nu siger den:


Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /web/www/frac/users/fora/index.php on line 20
Avatar billede udvikler Nybegynder
23. august 2005 - 08:12 #4
Nej, ovenståene rettede jeg selv lige hurtigt... men script bug er der stadig
Avatar billede nielle Nybegynder
23. august 2005 - 08:16 #5
Er du 100% sikker på at du har rettet alle steder? Det er i øvrigt også en god ide at sætte "or die(mysql_error())" på dine MYSQL kald (ikke at det har noget at gøre med fejlen):

<a href="opret.php">Opret besked</a>
<a href="index.php">Gå til forsiden</a>
<br><br><br><br><br>

<div style="text-align: center;">
<table border="1" width="600">
<tr>
<td>

<?
//Her inkludere vi filen der indenholder database oplysningerne
include "mysql.php";

//Her indsætter vi alle vores overskrifter og laver dem om til links
//Derefter gør vi sådan at når man trykker på dem, kommer selve indlægget frem

if (isset($_GET['id']))
{
    $query = mysql_query("select id, overskrift, besked from forum where id='" . $_GET['id'] . "'") or die(mysql_error());
    while ($foo = mysql_fetch_array($query))
    {
        echo $foo['overskrift'] . "<br><hr><br>" . $foo['besked'];
    }
}
else
{
    $query = mysql_query("select id, overskrift, besked from forum") or die(mysql_error());
    while ($row = mysql_fetch_array($query))
    {
        echo "<a href=\"laes.php?id=" . $row['id'] . "\">" . $row['overskrift'] . "</a><br><hr><br>";
    }
}
?>

</td>
</tr>
</table>
</div>
Avatar billede udvikler Nybegynder
23. august 2005 - 08:18 #6
Har lige prøvet med dit script virkede ikk - samme fejl
Avatar billede nielle Nybegynder
23. august 2005 - 08:20 #7
Ok, så. Kan du ikke cut-og-paste den besked du får hertil?

Og du må også gerne poste det link de efterfølgende henviser til.
Avatar billede nielle Nybegynder
23. august 2005 - 08:24 #8
Behøves ikke ... jeg har været forbi din side.
Avatar billede wordwrap Nybegynder
23. august 2005 - 08:24 #9
-aco- kan du ikke vise hele din kode, lige fra <html> til </html>

den popup er en ganske alm js alert..

nielle, de henviser til http://dk2.php.net/manual/en/function.strip-tags.php
Avatar billede nielle Nybegynder
23. august 2005 - 08:25 #10
Har set det, og skulle faktisk netop til at bede om hele siden. ;^)
Avatar billede nielle Nybegynder
23. august 2005 - 08:33 #11
Min mistanke går i øjeblikket på at Frac indsætter den besked fordi at du tager datadirekte fra databasen og inkludere dem i din html-kode:

echo "<a href=\"laes.php?id=" . $row['id'] . "\">" . $row['overskrift'] . "</a><br><hr><br>";

Det er egentligt ikke helt sikkert at gøre dette, for hvis der er kommet noget grim (altså farlig) html-kode i databasen, så bliver det inkluderet på siden. Denne trussel kaldes for ”cross-site scripting”.

For at modgå denne trussel bør man filtrere sit databaseoutput for alt andet end lige de lovlige html-tags før at man skriver det til siden. Dette gør du ikke, og det kan godt være at det netop er derfor at de nu brokker sig.

I det ovenstående tilfælde skal der slet ikke være html-tags i output fradatabasen – det er jo et url – og derfor anvender du bare den version af strip_tags som frasortere alt:

echo "<a href=\"laes.php?id=" . strip_tags($row['id']) . "\">" . strip_tags($row['overskrift']) . "</a><br><hr><br>";
Avatar billede udvikler Nybegynder
23. august 2005 - 14:07 #12
Tak nielle.. den sidste besked du skrev virkede.. kig selv: www.fora.frac.dk det virker igen :)
Avatar billede udvikler Nybegynder
23. august 2005 - 14:07 #13
Læg et svar ;)
Avatar billede nielle Nybegynder
23. august 2005 - 17:09 #14
Svar :^)
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