PHP gevorderde |
|
Uh ja er is wel meer fout aan dat script.. Maar ik was te lui dat te typen:
<?php
# M E S S A G E . P H P
$id=$_GET['id']; // Deze bestaat niet altijd
mysql_connect("fluthost","flutuser","gaatikzeggun:P"); // Hier heb je zo niks aan, sla het dan op in een variabele want die heb je nodig..
mysql_select_db("flutdb"); // hier moet je de database verbinding mee geven
mysql_query("UPDATE messages SET read=1 WHERE id=$id") or die(mysql_error()); // geen or die gebruiken, database verbinding meegeven, kans op SQL injection, variabelen buiten quotes
$query=mysql_query("SELECT * FROM messages WHERE id=$id") or die(mysql_error()); // kans op SQL injection, geen or die gebruiken, variabelen buiten quotes, SELECT * is hier niet nodig, database verbinding mee geven
echo "<table border=\"1\">"; // deze regel is wel goed :P
while($res=mysql_fetch_assoc($query))
{
$query2=mysql_query("SELECT `username` FROM `members` WHERE id=".$res['from_id']) or die(mysql_error()); // blablabla + dat dit hier niet hoort, dat moet in een subquery in de query hierboven (of een JOIN)
$from=mysql_result($query2,0); // niet doen
mysql_free_result($query2); // niet doen
echo "<tr><td>Subject: <b>".$res['subject']."</b><br />From: $from</td></tr><tr><td>";
echo "<table border=\"0\"><tr><td valign=\"middle\" align=\"center\">No Avatar</td><td>".nl2br($res['message'])."</td></tr></table>";
echo "</td></tr>";
}
echo "</table>";
?>
<?php # M E S S A G E . P H P $id=$_GET['id']; // Deze bestaat niet altijd mysql_connect("fluthost","flutuser","gaatikzeggun:P"); // Hier heb je zo niks aan, sla het dan op in een variabele want die heb je nodig.. mysql_select_db("flutdb"); // hier moet je de database verbinding mee geven mysql_query("UPDATE messages SET read=1 WHERE id=$id") or die(mysql_error()); // geen or die gebruiken, database verbinding meegeven, kans op SQL injection, variabelen buiten quotes $query=mysql_query("SELECT * FROM messages WHERE id=$id") or die(mysql_error()); // kans op SQL injection, geen or die gebruiken, variabelen buiten quotes, SELECT * is hier niet nodig, database verbinding mee geven echo "<table border=\"1\">"; // deze regel is wel goed :P { $query2=mysql_query("SELECT `username` FROM `members` WHERE id=".$res['from_id']) or die(mysql_error()); // blablabla + dat dit hier niet hoort, dat moet in een subquery in de query hierboven (of een JOIN) echo "<tr><td>Subject: <b>".$res['subject']."</b><br />From: $from</td></tr><tr><td>"; echo "<table border=\"0\"><tr><td valign=\"middle\" align=\"center\">No Avatar</td><td>".nl2br($res['message'])."</td></tr></table>"; } ?>
Kortom, je hebt nog heel wat te leren. |