Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Prywatne wiadomości
Croos22
post
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 4
Dołączył: 22.03.2010

Ostrzeżenie: (0%)
-----


Witam.
Mam problem z prywatnymi wiadomościami. Analizowałem kod kilka razy ale na nic nie wpadłem. Problem polega na tym, że gdy ktoś wysyła wiadomość to odbiorca otrzymuje dwie chodź została wysłana jedna. Niektórych wiadomości wysłanych oraz nadawczych nie można odczytać ponieważ wywala błąd:
Cytat
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /virtual/k/o/kosek.ugu.pl/odbiorcza.php on line 15
.
Wszystkie pliki znajdują się na stronie głównej czyli kosek.ugu.pl.

Oto kod odiorcza.php
  1. <?
  2. require "sesje.php";
  3. require "naglowek.php";
  4.  
  5. if($_GET["id"]){
  6. $id=intval($_GET["id"]); //zamieniamy zmienną na liczbe, zapobiega to atakom typu sql injection
  7. if(mysql_num_rows(mysql_query("select wiad_od from wiadomosci where wiad_id=$id and wiad_czyj=0 and wiad_od=".$_SESSION["zalogowany"]))){
  8. mysql_query("delete from wiadomosci where wiad_id=$id"); //sprawdzamy czy wiadomość którą użytkownik chce usunąć faktycznie ależy do niego
  9. echo "Usunięto wiadomość!<br>";
  10. }
  11. }
  12.  
  13. else if($_GET["co"]){
  14. $co=intval($_GET["co"]); //zamieniamy zmienną na liczbe, zapobiega to atakom typu sql injection
  15. if(mysql_num_rows(mysql_query("select wiad_od from wiadomosci where wiad_id=$id and wiad_czyj=0 and wiad_od=".$_SESSION["zalogowany"]))){
  16. mysql_query("update wiadomosci set wiad_przeczytane=1 where wiad_id=$co"); //po raz kolejny zostaje sprawdzony warunek,
  17. $wynik=mysql_query("select * from wiadomosci where wiad_id=$co and wiad_czyj=0"); //który również sprawdza właściciela wiadomości
  18. $rekord=mysql_fetch_array($wynik);
  19. $nadawca=mysql_fetch_array(mysql_query("select user_login from users where user_id=".$rekord["wiad_od"]));
  20. echo "<br><br><table><tr><td>Nadawca: ".$nadawca["user_login"]."</td><td>Data: ".date("d/m/Y H:i", strtotime($rekord["wiad_data"]))."</td><td><a href='odbiorcza.php?id=".$rekord["wiad_id"]."'>usuń</a></td></tr>";
  21. echo "<tr><td colspan=3>".$rekord["wiad_temat"]."</td></tr>";
  22. echo "<tr><td colspan=3>".$rekord["wiad_tresc"]."</td></tr>";
  23. echo "</table>";
  24. }
  25. }
  26.  
  27. else{
  28. $wynik=mysql_query("select * from wiadomosci where wiad_do=".$_SESSION["zalogowany"]." and wiad_czyj=0 order by wiad_data");
  29.  
  30. echo "<table><tr><td>Nadawca</td><td>Temat</td><td>Data</td><td>&nbsp;</td></tr>";
  31. if(!mysql_num_rows($wynik))echo "<tr><td colspan=4 style='text-align:center'>Nie masz żadnych wiadomości!</td></tr>";
  32. else while($rekord=mysql_fetch_array($wynik)){
  33. $nadawca=mysql_fetch_array(mysql_query("select user_login from users where user_id=".$rekord["wiad_od"]));
  34. $kw1="";$kw2="";
  35. if(!$rekord["wiad_przeczytane"]){$kw1="<b>";$kw2="</b>";}
  36. echo "<tr><td>".$nadawca["user_login"]."</td><td><a href='odbiorcza.php?co=".$rekord["wiad_id"]."'>$kw1".$rekord["wiad_temat"]."$kw2</td><td>".date("d/m/Y H:i", strtotime($rekord["wiad_data"]))."</td><td><a href='odbiorcza.php?id=".$rekord["wiad_id"]."'>usuń</a></td></tr>";
  37. }
  38. echo "</table>";
  39. }
  40. require "stopka.php";
  41. ?>


Nie wiem czy się przyda ale dam jeszcze nadawczą czyli newmsg.php
  1. <?
  2. require "sesje.php";
  3. require "naglowek.php";
  4.  
  5. if($_POST["tresc"] && $_POST["do"] && $_POST["temat"]){
  6. mysql_query("insert into wiadomosci values(NULL, '".htmlspecialchars($_POST["tresc"])."', ".$_SESSION["zalogowany"].", ".intval($_POST["do"]).", 0, NOW(), '".htmlspecialchars($_POST["temat"])."', 0)");
  7. mysql_query("insert into wiadomosci values(NULL, '".htmlspecialchars($_POST["tresc"])."', ".$_SESSION["zalogowany"].", ".intval($_POST["do"]).", 0, NOW(), '".htmlspecialchars($_POST["temat"])."', 1)");
  8. echo "<br><br>Wysłano wiadomość!<br>";
  9. }
  10. else if($_POST["submit"]){
  11. echo "<br><br>Nie uzupełniono wszystkich pól!<br>";
  12. }
  13. echo "<form action='newmsg.php' method=post>";
  14. echo "<br>Temat: <input name=temat size=30>";
  15. echo "<br>ID: <input name=do>";
  16. $wynik=mysql_query("select user_id from users order by user_id");
  17. while($rekord=mysql_fetch_array($wynik)){
  18. echo "<option value=".$rekord["user_id"].">".$rekord["user_login"];
  19. }
  20. echo "</select><br>";
  21. echo "Treść: <br><textarea name='tresc' rows=8 cols=50></textarea>";
  22. echo "<br><input type=submit value='wyślij wiadomość' name=submit>";
  23. require "stopka.php";
  24. ?>


Proszę o jakieś rady sam sobie nie mogę poradzić :<
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 15:48