login  Naam:   Wachtwoord: 
Registreer je!
 Forum

gelezen berichten

Offline prorsoft - 30/04/2005 11:10 (laatste wijziging 30/04/2005 11:15)
Avatar van prorsoftPHP gevorderde hallo, ik maak een PM systeem.
ik maak ook dat als je een message opent datie het dan als gelezen berichten markeert, maar dan geeftie een error!
Code:
  1. <?php
  2.  
  3. # M E S S A G E . P H P
  4.  
  5. $id=$_GET['id'];
  6. mysql_connect("fluthost","flutuser","gaatikzeggun:P");
  7. mysql_select_db("flutdb");
  8. mysql_query("UPDATE messages SET read=1 WHERE id=$id") or die(mysql_error());
  9. $query=mysql_query("SELECT * FROM messages WHERE id=$id") or die(mysql_error());
  10. echo "<table border=\"1\">";
  11. while($res=mysql_fetch_assoc($query))
  12. {
  13. $query2=mysql_query("SELECT `username` FROM `members` WHERE id=".$res['from_id']) or die(mysql_error());
  14. $from=mysql_result($query2,0);
  15. echo "<tr><td>Subject:&nbsp;<b>".$res['subject']."</b><br />From:&nbsp;$from</td></tr><tr><td>";
  16. echo "<table border=\"0\"><tr><td valign=\"middle\" align=\"center\">No Avatar</td><td>".nl2br($res['message'])."</td></tr></table>";
  17. echo "</td></tr>";
  18. }
  19. echo "</table>";
  20. ?>

Maar hij geeft de volgende error:
Citaat:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'read='1' WHERE id=2' at line 1


kan iemand me helpen?

7 antwoorden

Gesponsorde links
Offline CelestialCelebi - 30/04/2005 11:17
Avatar van CelestialCelebi PHP gevorderde Is READ niet een gereserveerd woord?
Offline Frederic - 30/04/2005 11:19
Avatar van Frederic PHP ver gevorderde Je query's zijn wel niet hackproof ;)
wat als ik nu in de url zet

id=3 DROP TABLE users ?

http://www.phpf...amp;page=4
Offline legende - 30/04/2005 11:21
Avatar van legende Onbekend ik zou het niet weten...
Offline CelestialCelebi - 30/04/2005 11:23
Avatar van CelestialCelebi PHP gevorderde Uh ja er is wel meer fout aan dat script.. Maar ik was te lui dat te typen:

  1. <?php
  2.  
  3. # M E S S A G E . P H P
  4.  
  5. $id=$_GET['id']; // Deze bestaat niet altijd
  6. mysql_connect("fluthost","flutuser","gaatikzeggun:P"); // Hier heb je zo niks aan, sla het dan op in een variabele want die heb je nodig..
  7. mysql_select_db("flutdb"); // hier moet je de database verbinding mee geven
  8. 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
  9. $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
  10. echo "<table border=\"1\">"; // deze regel is wel goed :P
  11. while($res=mysql_fetch_assoc($query))
  12. {
  13. $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)
  14. $from=mysql_result($query2,0); // niet doen
  15. mysql_free_result($query2); // niet doen
  16. echo "<tr><td>Subject:&nbsp;<b>".$res['subject']."</b><br />From:&nbsp;$from</td></tr><tr><td>";
  17. echo "<table border=\"0\"><tr><td valign=\"middle\" align=\"center\">No Avatar</td><td>".nl2br($res['message'])."</td></tr></table>";
  18. echo "</td></tr>";
  19. }
  20. echo "</table>";
  21. ?>

Kortom, je hebt nog heel wat te leren. 
Offline prorsoft - 30/04/2005 11:24
Avatar van prorsoft PHP gevorderde thxz ik ben er nu uit!
@CC: het werkt toch?
Offline CelestialCelebi - 30/04/2005 11:26 (laatste wijziging 30/04/2005 11:26)
Avatar van CelestialCelebi PHP gevorderde "@CC: het werkt toch?"
NOG wel ja. En daar heb je het ook mee gehad..
Leer eens netjes scripten.
Jij gaat mij toch niet vertellen dat je die code overzichtelijk vindt?

Werken en functioneel zijn zijn twee heel andere dingen...
Offline prorsoft - 04/06/2005 11:30
Avatar van prorsoft PHP gevorderde @CC: dit script had ik alleen vereenvoudigd om het te posten op SM!

en waarom moet je mysql_result niet doen????
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.204s