Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]Prywatne wiadomosci problem
Forum PHP.pl > Forum > Przedszkole
jacus24
Mam taki kod który wyświetla profil użytkownika i link do pliku napisz wiadomosc
  1. <?php
  2.  
  3. mysql_connect("localhost" , "uzytkownik" , "haslo") or die(mysql_error());
  4. mysql_select_db("baza") or die (mysql_error());
  5.  
  6. $login = htmlspecialchars($_GET['login']); 
  7. $query = "SELECT * FROM user WHERE login = '$login'";
  8. $result = mysql_query($query)
  9. while ($row = mysql_fetch_array($result)) {
  10. echo "<a href=newmail.php>Wyślij wiadomość<br /></a>";
  11. }
  12. ?>

I taki do pisania wiadomosci
  1. <? if (isset($_POST['wyslij']))
  2. {
  3.  
  4. $_POST['nadawca'] = $_SESSION['user_logged'];
  5.  
  6. $zapytanie = "INSERT INTO maile (mail_id, tytul, tresc, nadawca, odbiorca, stan, data_nadania)VALUES (0, '{$_POST['temat']}', '{$_POST['tresc']}', '{$_POST['nadawca']}', '{$_POST['odbiorca']}', 'nadana', Now())";
  7.  
  8. if (empty($_POST['temat']) && empty($_POST['tresc']) && empty($_POST['odbiorca']) && empty($_POST['nadawca']))
  9. {print '<center><font color="red"><h6>BŁĄD: Pola treść, temat, nadawca oraz adresat nie mogą być puste!<br /><br /></h6>';
  10. print '<a href="newmail.php">Wróć do formularza wysyłania wiadomości.</a></center></font>';
  11. die;}
  12.  
  13. if (mysql_query ($zapytanie)) {print "<center>Wiadomość została wysłana.</center>";}
  14. else {print '<font color=red><b>BŁĄD: <center></b>Nie można wysłać wiadomości!</font></center>';}
  15. mysql_close();}else{
  16. print '<form action="newmail.php" method="post">
  17. <p>Temat: <input type="text" name="temat" size="40" maxsize="100" /></p>
  18. <p>Treść: <textarea name="tresc" columns="80" rows="5" ></textarea></p>
  19. <input type="submit" name="wyslij" value="Wyślij wiadomość"/>
  20.  
  21. </form>'
  22.  
  23. ;}?>

Mam problem z polem odbiorca a manowicie żeby odbiorcą była ta osoba na której profilu byłem czyli jako zalogowany użytkownik jacus24 jestem na profilu ktos58 i klikając wyślij wiadomość była ona wysłana do tego uzytkownika.
Wieviór
Możesz zamienić:

  1. <?php
  2. echo "<a href=newmail.php>Wyślij wiadomość<br /></a>";
  3. ?>


na:

  1. <?php
  2. echo "<a href=newmail.php?login=".$row['login'].">Wyślij wiadomość<br /></a>";
  3. ?>


A zamiast:

  1. <?php
  2. print '<form action="newmail.php" method="post">
  3. <p>Temat: <input type="text" name="temat" size="40" maxsize="100" /></p>
  4. <p>Treść: <textarea name="tresc" columns="80" rows="5" ></textarea></p>
  5. <input type="submit" name="wyslij" value="Wyślij wiadomość"/>
  6.  
  7. </form>'
  8. ?>


wstaw:

  1. <?php
  2. print '<form action="newmail.php" method="post"><input type="hidden" name="odbiora" value="'.$_GET['login'].'" />
  3. <p>Temat: <input type="text" name="temat" size="40" maxsize="100" /></p>
  4. <p>Treść: <textarea name="tresc" columns="80" rows="5" ></textarea></p>
  5. <input type="submit" name="wyslij" value="Wyślij wiadomość"/>
  6.  
  7. </form>'
  8. ?>


;]
potreb
Ehh, nie zrozumiałem za cholerę pytania :/
Wieviór
Cytat(potreb @ 8.02.2008, 22:01:13 ) *
Ehh, nie zrozumiałem za cholerę pytania :/


Ja analizowałem je dwie minuty, ale chyba dobrze zinterpretowałem biggrin.gif
jacus24
Niestety nie działa.

Chodzi o to że jeśli jesteś na profilu ktos58 to wysyła wiadomość do niego bo narazie mam w bazie pole odbiorca puste
Wieviór
Cytat(jacus24 @ 8.02.2008, 22:05:05 ) *
Niestety nie działa.


No i co ja mam niby z tego wywnioskować? Dodaje się coś? Źle się dodaje? W adresie jest newmail.php?login=costam czy się nie wyświetla to "costam"? Swój kod troszkę znormalizuj, poprawnie wstaw apostrofy i średniki, potem go pokaż tutaj, bo w tym Twoim to się na ślepo leci.
jacus24
W adresie jest newmail.php?login=
Wieviór
Dobra, popatrz co robisz w tym pierwszym pliku.

Wyszukujesz jeden rekord w bazie, więc po co ten while?

Pierwszy plik
  1. <?php
  2. $query = "SELECT * FROM user WHERE login = '".$login."'";
  3. $result = mysql_query($query);
  4. $row = mysql_fetch_array($result);
  5. echo "<a href=newmail.php?login=".$row['login'].">Wyślij wiadomość<br /></a>";
  6. ?>


Teraz pokazuje w adresie po przeładowaniu coś?
jacus24
tak pokazuje newmail.php?login=jacus24 ale nie dodaje obiorcy do bazy
Wieviór
  1. <?php
  2. $zapytanie = "INSERT INTO maile (mail_id, tytul, tresc, nadawca, odbiorca, stan, data_nadania) VALUES (0, '{$_POST['temat']}', '{$_POST['tresc']}', '{$_POST['nadawca']}', '{$_POST['odbiorca']}', 'nadana', Now())";
  3. ?>


A to zapytanie w ogóle działa? Cokolwiek się dodaje?
jacus24
Tak zapytanie działa. Dzięki już naprawiłem miałem błąd w
  1. <?php
  2. <input type="hidden" name="odbiorca" value="'.$_GET['login'].'" />
  3. ?>
zamiast odbiorca miałem odbiora. Dzięki za pomoc.
nowotny
Ja tylko napiszę że zamiast pola 'login' powinieneś używać 'id' w celu wskazania odpowiedniego użytkownika...
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.