Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekierowanie po dodaniu komentarza
Forum PHP.pl > Forum > PHP
artur81
Mam taki oto prosty kodzik do dodawania komentarzy
  1. <?php
  2.  
  3. if (isset($_POST['submit'])){
  4. $id_newsa=$_POST['id_newsa'];
  5. $nick=addslashes($_POST['imie']);
  6. $tresc=addslashes($_POST['tresc']);
  7. require_once('./polacz_z_baza_newsow.php');
  8. if ( (strlen($tresc)==0) and (strlen($nick)==0)) {
  9. echo '<div align = center><h3>Musisz wypełnić formularz, aby dodać newsa</h3><div>';
  10. exit();
  11. }
  12. if (strlen($tresc)==0) {
  13. echo'<div align = center><h3>Wypełnij treść newsa!</h3><div>';
  14. exit();
  15. }
  16. if (strlen($nick)==0) {
  17. echo '<div align = center><h3>Musisz podpisać swojego newsa!</h3><div>';
  18. exit();
  19. }
  20. $zapytanie = "INSERT INTO komentarze (id_komentarza, id_newsa, nick, tresc, data_dodania)
  21.  VALUES ('', '$id_newsa' , '$nick', '$tresc', now())";
  22. $wynik = mysql_query ($zapytanie);
  23.  
  24. if (mysql_affected_rows()==1) {
  25. echo '<div align = center><h3>Dziękujemy za dodanie komentarza!!!</h3><div>';
  26. echo '<a onClick="javascript:window.close()" href="http://localhost/unia/index.php">Zamknij okno</a>';
  27.  
  28. } else
  29. {
  30. echo '<div align = center><h3>Wystąpił nieoczekiwany błąd i dodanie nowego komentarza nie jest w tej chwili
     możliwe!</h3><div>'
    ;
  31. }
  32.  
  33.  
  34. }
  35. ?>

1.W związku z nim mam, jedno pytanie. Po wypełnieniu pół i dodaniu komentarza pojawia się komunikat i link do zamknięcia okienka. Jak zrobić coś takiego żeby po zamknięciu odświeżyła mi się strona na której są wyświetlane komentarze. Dokładniej chodzi mi o to że po dodaniu mam np, w dalszym ciągu 3 komentarze, a dopiero jak dam "odśwież" to zmienia się na 4, a chcę żeby od razu było 4.

2.Poza tym czy ten formularz uniemozliwi jakiemś złośliwemu uzytkownikowi uszkodzenie bazy? Wydaje mi się że addslashes wystarcza... ale mogę się mylić.
dtb
Na początek kilka mały rada:
1. po co tworzyć tyle zmiennych pomocniczych. szkoda pamięci:
  1. <?php
  2. $id_newsa=$_POST['id_newsa'];
  3. $nick=addslashes($_POST['imie']);
  4. $tresc=addslashes($_POST['tresc']);
  5. ?>


A teraz do rzeczy:
1. Kłopot może być z pamięcią podręczną - niektóre przeglądarki (np. Opera) zapisują strony na HDD i aż nie odświerzysz strony, nie będzie ona ponownie pobierana z serwera.
2. Potraktuj ID newsa funkcją intval - zamienia ona każdą zmienna na liczbę.
shpyo
Nie lepiej zrobić tak:
1. dodaj komentarz
2. wyświetlić komunikat
3. pokazać komentarze (o ile pkt. przebiegł pomyślnie) ?
(wszystko za jednym razem)

Jeżeli chcesz pobawić się w odświeżanie strony, to użyj javascript!
Kod
document.location='__adres__';
Dex1987
Zrob header np

  1. <?php
  2. header ("location: index.php?action=news&id=". $_GET['id']);
  3. ?>
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.