Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odświeżanie strony przy zmiennej ?id=1
Vinn
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.07.2008

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


Mam następującą funkcję, która ma za zadanie wyświetlić zapisane w bazie danych newsy:

funkcje_newsy.php
  1. <?php
  2. function wyswietl_liste_newsow()
  3. {
  4. polaczenie();
  5. $zapytanie = "SELECT * FROM `newsy` ORDER BY `data` DESC";
  6. $wyslij = mysql_query($zapytanie);
  7.  
  8. echo "
  9. <div class=\"newsy_naglowek_tytul\">Zapisane newsy</div>
  10. <div class=\"pojemnik_tabel\">
  11. <table class=\"tabelka\">
  12. <tr class=\"head\">
  13. <td>Id</td>
  14. <td>Tytuł newsa</td>
  15. <td>Data publikacji</td>
  16. <td>Aktywne</td>
  17. <td>Akcja</td>
  18. </tr>
  19. ";
  20. $i = 1;
  21. while ($wiersz = mysql_fetch_array($wyslij))
  22. {
  23. if ($wiersz['aktywny'] == 1)
  24. {
  25. $aktywne = "Tak";
  26. $aktywacja = "Deaktywuj";
  27. }
  28. else
  29. {
  30. $aktywne = "Nie";
  31. $aktywacja = "Aktywuj";
  32. }
  33. <tr>
  34. <td class=\"komorka_center\">".$i."</td>
  35. <td class=\"komorka\">&nbsp;".$wiersz['tytul']."</td>
  36. <td class=\"komorka_center\">".$wiersz['data']."</td>
  37. <td class=\"komorka_center\">".$aktywne."</td>
  38. <td class=\"komorka_center\">Edytuj | <a href=\"aktywacja.php?id=".$wiersz['id']."\">".$aktywacja." </a>| Usuń</td>
  39. </tr>";
  40. $i++;
  41. }
  42. </table>
  43. </div>
  44. ";
  45. }
  46. ?>


Plik aktywacja.php
  1. <?
  2. require_once('pokaz.php');
  3. require_once('funkcje_newsy.php');
  4.  
  5.  
  6. pokaz_logo();
  7. pokaz_menu();
  8. news_head();
  9.  
  10. if (is_numeric($_GET['id']) && !empty($_GET['id']))
  11. {
  12. $id = $_GET['id'];
  13. polaczenie();
  14. $zapytanie = "SELECT `aktywny` FROM `newsy` WHERE `id` = '".$id."' LIMIT 1";
  15. $wyslij = mysql_query($zapytanie);
  16. $wiersz = mysql_fetch_array($wyslij);
  17.  
  18. if ($wiersz['aktywny'] == 1)
  19. {
  20. $zapytanie = "UPDATE `newsy` SET `aktywny` = '0' WHERE `id` = '".$id."'";
  21. $wyslij = mysql_query($zapytanie);
  22.  
  23. if ($wyslij)
  24. {
  25. echo '<div class="ok">News zdeaktywowany poprawnie.</div>';
  26. }
  27. else
  28. {
  29. echo '<div class="zle">Bład przy zapisie danych do bazy danych</div>';
  30. }
  31. }
  32. else
  33. {
  34. $zapytanie = "UPDATE `newsy` SET `aktywny` = '1' WHERE `id` = '".$id."'";
  35. $wyslij = mysql_query($zapytanie);
  36.  
  37. if ($wyslij)
  38. {
  39. echo '<div class="ok">News aktywowany poprawnie.</div>';
  40. }
  41. else
  42. {
  43. echo '<div class="zle">Bład przy zapisie danych do bazy danych</div>';
  44. }
  45. header ('Location: index-adm.php');
  46. }
  47. }
  48. else
  49. echo "Zmienna nie jest identyfikatorem ID";
  50. wyswietl_liste_newsow();
  51. news_end();
  52. panel_head();
  53. pokaz_panel_logowania();
  54. pokaz_menu_admina();
  55. pokaz_rajdy();
  56. pokaz_progress();
  57. pokaz_stopke();
  58. ?>


Teraz po kliknięciu w link AKTYWUJ, który posiada adres aktywacja.php?id=1 news jest albo aktywowany/deaktywowany. Problem z tym, że jak ktoś aktywuje newsa, a następnie kliknie klawisz F5, to news zostanie ponownie zdeaktywowany/aktywowany.

Czy jest jakiś sposób, aby uniknąć tego typu działania?

Jeżeli ktoś ma jakieś wskazówki, bądź gotowe rozwiązanie - będę wdzięczny.

Z góry dziękuję za wszelkie odpowiedzi.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
-Spav-
post
Post #2





Goście







Witam.

  1. <?php
  2. header ('Location: index-adm.php');
  3. ?>
jest po wczesniejszym wywolaniu 'echo', header musi byc pierwszym outputem. Najlatwiej wywal te echo i przechodz headerem na strone przekazujac np w get parametr komunikatu.
Mozesz tez zostawic te echo i javascriptowym 'location.href' z np 5 sek timeout przechodzic na index-adm.php.

Przyklad:

  1. <?
  2. require_once('pokaz.php');
  3. require_once('funkcje_newsy.php');
  4.  
  5.  
  6. pokaz_logo();
  7. pokaz_menu();
  8. news_head();
  9.  
  10. if(isset($_GET['komunikat']))
  11. {
  12. if ($_GET['komunikat'] == 1)
  13. {
  14. echo '<div class="ok">News zdeaktywowany poprawnie.</div>';
  15. }
  16. else if( $_GET['komunikat'] == 2)
  17. {
  18. echo '<div class="ok">News aktywowany poprawnie.</div>';
  19. }
  20. elseif ( $_GET['komunikat'] == 3 )
  21. {
  22. echo '<div class="zle">Bład przy zapisie danych do bazy danych</div>';
  23. }
  24. }
  25.  
  26. if (is_numeric($_GET['id']) && !empty($_GET['id']))
  27. {
  28. $id = $_GET['id'];
  29. polaczenie();
  30. $zapytanie = "SELECT `aktywny` FROM `newsy` WHERE `id` = '".$id."' LIMIT 1";
  31. $wyslij = mysql_query($zapytanie);
  32. $wiersz = mysql_fetch_array($wyslij);
  33.  
  34. $zapytanie = "UPDATE `newsy` SET `aktywny` = '".($wiersz['aktywny']?'0':'1')."' WHERE `id` = '".$id."'";
  35. $wyslij = mysql_query($zapytanie);
  36.  
  37. $komunikat = $wiersz['aktywny'] ? '1' : '2';
  38.  
  39. header ('Location: index-adm.php?komunikat='.($wyslij ? $komunikat : '3') );
  40.  
  41. }
  42. else
  43. echo "Zmienna nie jest identyfikatorem ID";
  44. wyswietl_liste_newsow();
  45. news_end();
  46. panel_head();
  47. pokaz_panel_logowania();
  48. pokaz_menu_admina();
  49. pokaz_rajdy();
  50. pokaz_progress();
  51. pokaz_stopke();
  52. ?>


Mam nadzieje ze nie ma bledu smile.gif
Go to the top of the page
+Quote Post
batman
post
Post #3





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Temat wałkowany wiele razy na forum. Wystarczy poszukać.
Zamykam.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 16:20