Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: POSTDATA - jak wysłać tylko raz?
Forum PHP.pl > Forum > Przedszkole
legorek
Witam!

Używam formularza do dodawania wpisów do bazy danych (forum dyskusyjne). Schemat dodawania wpisu wygląda tak:
Kod
temat.php?id=100 ->K>L>I>K-> dodanie_wpisu.php ->P>O>S>T-> dodanie_wpisu.php ->K>L>I>K-> temat.php?id=100

temat.php - wyświetla temat
dodanie_wpisu.php - sparwdza poprawniosc danych, dodaje do bazy i wyswietla linka który pozwlal powrócić do tematu

Problem jest taki. Zauważyłem że użytkownica robią coś takiego:


Kod
temat.php?id=100 ->K>L>I>K-> dodanie_wpisu.php ->P>O>S>T-> dodanie_wpisu.php ->K>L>I>K-> temat.php?id=100 ->W>S>T>E>C>Z-> dodanie_wpisu.php


I to widzą takie coś:


Bardzo dużo osób klika 'OK' przez co wpisy na forum mi się dublują :/
Pytanie, jak można zrobić POSTDATA było wysyłane tylko raz ?
crash
Ja robię na przykład przeładowanie strony za pomocą header() żeby wykasować dane POST.
legorek
Ok. ale kiedy mam zrobić to przeładowanie ? Możesz podać jakieś szczegóły ? Wiem że trzeba kombinować coś z nagłówkami, ale nie wiem jak :/
crash
Po wykonaniu wszystkich operacji na przesłanych z formularza danych.

Banalny przykład:
  1. <?php
  2. if(isset($_POST['submit']))
  3. {
  4. if($_POST['login'] == 'crashu')
  5. {
  6.  // coś robimy. dodajemy dane do bazy etc.
  7.  header('Location: '.$_SERVER['PHP_SELF']); // lub podobne...
  8. }
  9. }
  10. ?>
legorek
Działa, dzięki wielkie :-)
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.