Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] System wiadomości
Forum PHP.pl > Forum > Przedszkole
LucKy_skiLL
Posiadam taki kod na wysyłanie wiadomości, ma być to wiadomośc od zwykłego usera, gdzie w bazie bedzie wpisany nick zalogowanej osoby, po wypełnieniu pol nic się nie dzieje, proszę o pomoc.

  1. if (isset($_SESSION['login'])) { // dostęp dla niezalogowanego użytkownika
  2.  
  3. $wynik = mysql_query("SELECT * FROM uzytkonik WHERE
  4. login='{$_SESSION["login"]}'");
  5.  
  6. if ($wynik) {
  7. $informacja = mysql_fetch_array($wynik);
  8. }
  9. $_POST['nadawca'] = $informacja['login'];
  10. $_POST['odbiorca'] = asd;
  11.  
  12. if (isset($_POST['wyslij'])) {
  13. include('../../db.php');
  14.  
  15.  
  16. $zapytanie = "INSERT INTO wiadomosci (id, tytul, tresc, nadawca, odbiorca, stan, data_nadania)VALUES (0, '{$_POST['temat']}', '{$_POST['tresc']}', '{$_POST['nadawca']}', '{$_POST['odbiorca']}', 'nadana', Now())";
  17.  
  18. if (empty($_POST['temat']) or empty($_POST['tresc']) or empty($_POST['odbiorca']) or empty($_POST['nadawca'])) {
  19. echo "<div id='srodek'><font color='red'>Żadne pole nie może być puste<br/><br/></div>";
  20. echo "<a href='newmail.php'>Wróć do formularza wysyłania wiadomości.</a></center></font>";
  21. die;
  22. }
  23.  
  24. if (@mysql_query($zapytanie)) {
  25. echo "<div id='srodek'>Wiadomość została wysłana</div>";
  26. } else {
  27. echo"<div id='srodek'>Nie można wysłać wiadomości</div>";
  28. }
  29. } else {
  30. echo "<div id='srodek'><div id='tlo'>
  31. <form action='newmail.php' method='post'>
  32. <table width='460' border='0' cellspacing='0' cellpadding='0'>
  33. <tr>
  34. <th width='115' height='39' scope='col'><font size='2'>Temat:</font></th>
  35. <td width='345'>
  36. <input type='text' name='temat'>
  37. </td>
  38. </tr>
  39. <tr>
  40. <th scope='row'><font size='2'>Treść:</font></th>
  41. <td><textarea name='tresc' rows='10' cols='50'></textarea></td>
  42. </tr>
  43. </table>
  44. <p><input type='submit' class='wyslijpw' value='' /></p></form></div></div>";
  45. }
  46.  
  47. } else {
  48. echo "<div id='srodek'><div id='tlo'><center>Musisz być zalogowany</center></div></div>";
  49. }
CTRL
  1. "SELECT * FROM uzytkonik WHERE login='{$_SESSION["login"]}'"

Myślę że błąd może tkwić tutaj, spróbuj ".$_SESSION['login']."

Masz tabele uzytkonik, czy to też literówka?
LucKy_skiLL
Nie pomogło, a tabela nazywa sie uzytkownik ;d
Evinek
Temat: Jak poprawnie zadac pytanie

Usuń @ z całego skryptu. Przejrzyj link powyżej.
Niktoś
if (@mysql_query($zapytanie)) { - znów zaciemnianie kodu, tylko po co? Po za tym czy takie sprawdzenie ma sens? Fakt, że to zwróci true lub false w przypadku błędów sql , ale co się w tej kwerendzie wykonało tego ten warunek już nie sprawdzi. Możesz insertować puste znaki ,kwerenda zwróci true a kod się wykona dalej, mimo iż dane zostały błednie wprowadzone.
csharp
a gdzie masz w tym formie POSTa "wyslij"? ja nic takiego nie widzę, a masz ifa zadeklarowanego.
Druga sprawa - ten form ma akcje na jakąś stronę, wklej kod.
LucKy_skiLL
Tak wygląda mój cały plik o nazwie newmail.php

  1. <?php
  2. session_start(); // rozpoczęcie sesji
  3. include('../../gora.php');
  4. include('../../panel.php');
  5.  
  6. echo "<div id='srodek'><div id='tlo'><div class='portfel_menu'>
  7. <center><a href='mymail.php'>Skrzynka odbiorcza</a>
  8. <a href='newmail.php' class='wplata'>Wyślij wiadomość</a>
  9. <a href='sentmail.php'>Skrzynka nadawcza</a>
  10. <a href='onlynewmail.php'>Nieprzeczytane wiadomości</a>
  11. </center></div></div></div><br/><br/><br/><br/><br/>";
  12.  
  13. if (isset($_SESSION['login'])) { // dostęp dla niezalogowanego użytkownika
  14.  
  15. $wynik = mysql_query("SELECT * FROM uzytkonik WHERE
  16. login='{$_SESSION['login']}'");
  17.  
  18. if ($wynik) {
  19. $informacja = mysql_fetch_array($wynik);
  20. }
  21. $_POST['nadawca'] = $informacja['login'];
  22. $_POST['odbiorca'] = asd;
  23.  
  24. if (isset($_POST['wyslij'])) {
  25. include('../../db.php');
  26.  
  27.  
  28. $zapytanie = "INSERT INTO wiadomosci (id, tytul, tresc, nadawca, odbiorca, stan, data_nadania)VALUES (0, '{$_POST['temat']}', '{$_POST['tresc']}', '{$_POST['nadawca']}', '{$_POST['odbiorca']}', 'nadana', Now())";
  29.  
  30. if (empty($_POST['temat']) or empty($_POST['tresc']) or empty($_POST['odbiorca']) or empty($_POST['nadawca'])) {
  31. echo "<div id='srodek'><font color='red'>Żadne pole nie może być puste<br/><br/></div>";
  32. echo "<a href='newmail.php'>Wróć do formularza wysyłania wiadomości.</a></center></font>";
  33. die;
  34. }
  35.  
  36. if (mysql_query($zapytanie)) {
  37. echo "<div id='srodek'>Wiadomość została wysłana</div>";
  38. } else {
  39. echo"<div id='srodek'>Nie można wysłać wiadomości</div>";
  40. }
  41. } else {
  42. echo "<div id='srodek'><div id='tlo'>
  43. <form action='newmail.php' method='post'>
  44. <table width='460' border='0' cellspacing='0' cellpadding='0'>
  45. <tr>
  46. <th width='115' height='39' scope='col'><font size='2'>Temat:</font></th>
  47. <td width='345'>
  48. <input type='text' name='temat'>
  49. </td>
  50. </tr>
  51. <tr>
  52. <th scope='row'><font size='2'>Treść:</font></th>
  53. <td><textarea name='tresc' rows='10' cols='50'></textarea></td>
  54. </tr>
  55. </table>
  56. <p><input type='submit' class='wyslijpw' value='' /></p></form></div></div>";
  57. }
  58.  
  59. } else {
  60. echo "<div id='srodek'><div id='tlo'><center>Musisz być zalogowany</center></div></div>";
  61. }
  62. ?>
MattY
Cytat(LucKy_skiLL @ 28.06.2012, 18:58:13 ) *
po wypełnieniu pol nic się nie dzieje


tzn.?
LucKy_skiLL
Gdy naciskam "wyślij" strona jakby się odświeża, i nic więcej, a dane które wpisałem w pola znikaja.
Korab
  1. empty($_POST['odbiorca']) or empty($_POST['nadawca']


A gdzie są takie pola u Ciebie?
PS jesteś pewien, że jesteś zalgoowany? Wywal warunek na sesję i zobacz, co się stanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.