php foutmelding

Status
Niet open voor verdere reacties.

djwouter

Gebruiker
Lid geworden
23 aug 2008
Berichten
142
hallo, een week geleden ongeveer had ik ook een vraagje en die is opgelost ! :D maar nu was ik weer bezig met een nieuw script en dat blijft maar een foutmelding aan geven maar hij werkt wel dat is het aparte hij werkt wel maar geeft foutmelding dus ik die regel wat aan gepast want het leek er op dat bij de variablen niet kon vinden maar nu krijg ik bug in andere regel waar die variabelen NIET in voor komt en het script werkt nu ook niet meer hier onder de scripts
dit is de fout met de variabelen

PHP:
if ($actie == "show"){


HTML:
Notice: Undefined variable: actie in D:\website\UsbWebserver - kopie (2)\Root\nieuws\nieuws1.php on line 105


dit is die fout na het weizigen van de variabelen
PHP:
$query2 = mysql_query("SELECT * FROM nieuws WHERE id='" .$_GET["id"] ."'");
foutmelding
HTML:
Notice: Undefined index: id in D:\website\UsbWebserver - kopie (2)\Root\nieuws\nieuws1.php on line 107
 
Dat betekent gewoon dat de variabele waar je een handeling mee uitvoert niet bestaat. Check met isset() altijd of een variabele wel bestaat.

PHP:
<?php

if(isset($_GET['id']){
  
  // $_GET['id'] bestaat.

}else{

  // $_GET['id'] bestaat niet.

}

?>
 
PHP:
$query2 = mysql_query("SELECT * FROM nieuws WHERE id='" .$_GET["id"] ."'");
Die code zou ik zo niet gebruiken, lijkt me zo lek als een mandje.
Als je gehackt wilt worden is het mss wel leuk, anders niet.

Je wilt nu zonder controle een variabele uit de url je database insturen?

voorbeeld misbruik:
www.jouwurl.nl/jouwphp.php?id=1' or '1 = 1'
geeft alle resultaten weer tegelijkertijd.

Maar je kan ook simpel het select commando beëindigen en een "delete * from" commando er achteraan plakken. Dan is plots je database leeg omdat er een willekeurige pipo grappig was om een dergelijk iets uit te proberen.

je kunt het bijvoorbeeld beveiligen door:
PHP:
$id = mysql_real_escape_string($_GET['id']);
$query2 = mysql_query("SELECT * FROM nieuws WHERE id='" .$id ."'");

of simpeler als $_GET['id'] altijd nummeriek moet zijn:
PHP:
$query2 = mysql_query("SELECT * FROM nieuws WHERE id='" .(int)$_GET["id"] ."'");
 
bedankt maar het probleem is nog niet opgelost hij blijft aan geveven dat hij geen variablen kan vinden ! :S maar nu heb ik nog iets jij had het over die beveiliging maar die heb ik neit nodig het is juist de bedoeling dat de mensen het zo kunnen openen ;) omdat het om een nieuws script

hier onder het hele script :

PHP:
<?php
$aantal = mysql_num_rows(mysql_query("SELECT * FROM nieuws"));
?>
      <?php
include("config.php");
?>
<?php
include("ubb.php");
?>
<html>
<br>
<center>
<?php


if ($actie == "show"){

$query2 = mysql_query("SELECT * FROM nieuws WHERE id='" .(int)$_GET["id"] ."'");  
while($show = mysql_fetch_object($query2)){

echo ("
<table width=\"500\">
<tr>
<td background=\"smileys/bg.gif\"class=\"nieuws\">
<font color=#000080>» <b>$show->titel</b></font>
</tr>
<tr>
<td class=\"nieuws\" bgcolor=\"#000080\">
<font size=1> <front color=#000080><b>Door:</b> $show->naam</font>
<br><br>");
echo ubb($show->bericht);
echo ("
<br><br>
</td>
</tr>
<tr>
<td align=right background=\"smileys/bg.gif\" class=\"nieuws\">
<font size=1><b>Datum:</b> $show->datum <b>Tijd:</b> $show->tijd</font>
</td>
</tr>
</table>
<br><br>");
}
}else{

$query = mysql_query("select * from nieuws ORDER BY id DESC LIMIT 5");
while($nieuws = mysql_fetch_object($query)){
echo ("
<table width=\"500\">
<tr>
<td background=\"smileys/bg.gif\" class=\"nieuws\">
<font color=yellowgreen>»</font> <b>$nieuws->titel</b>
</td>
</tr>
<tr>
<td class=\"nieuws\" bgcolor=\"#000080\">
<font size=1><b>Door:</b> $nieuws->naam</font>
<br><br>");
echo ubb($nieuws->bericht);
echo ("<br><br>
</td>
</tr>
<tr>
<td align=right background=\"smileys/bg.gif\" class=\"nieuws\">
<font size=1><b>Datum:</b> $nieuws->datum <b>Tijd:</b> $nieuws->tijd</font>
</td>
</tr>
</table>
<br><br>");
}
}
?>
<?php
echo "<font color=yellowgreen>»</font> <a href=\"nieuwsarchief.php\">meer nieuws</a> ($aantal nieuwsberichten)";
?>


wat kan het zijn ?????? :S

alvast bedankt !
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan