gosc
27.09.2008, 17:40:13
Witam.
Jak mam dodawanie komentarzy, jak dodam ten komentarz jak pojawi mi się strona z dodanym komentarzem. Wcisnę F5 lub jak kto woli odświeżę stronę i dodaje mi się jeszcze raz, może ktos mi powiedzieć jak wykasować _POST?
cycofiasz
27.09.2008, 17:47:50
To już stoi po stronie przeglądarki...
melkorm
27.09.2008, 17:48:07
<?php
?>
Nie jestem pewien czy hm jest "ładne" i czy można to zapsiac inaczej ale to jest pierwsza rzecz jaka przyszła mi namyśl

chyba że nadasz submit "value =1" i dodawanie komentarza nastęje warunek
<?php
if($_POST['nazwaSubmita'])
?>
i na koeneic dodawania komentarza dać :
<?php
$_POST['nazwaSubmita'] = 0 ;
?>
melkorm -> ale wszelkie modyfikacje wprowadzone do $_POST nie są zwracane do przeglądarki, więc takie sztuczki odpadają.
Niestety, trzeba to zabezpieczyć nieco okrężnymi metodami. Za pomocą ciastek, skrypt może wysyłać takowe przy dodaniu komentarza z jakimś krótkim okresem ważności. Przy odświeżeniu ciastko będzie ustawione i to jest znak, żeby komentarza nie dodawać. Jednak to można bardzo łatwo, nawet nieświadomie obejść. Wystarczy, by na serwerze i na komputerze internauty był ustawiony inny czas i już wszystko się może skaszanić. Pewniejszym sposobem jest rejestrowanie tego gdzieś po stronie serwera, np.
1. Rejestr ostatnich operacji - jeśli z tego samego adresu IP w przeciągu ostatnich minut poszedł komentarz, to się wstrzymujemy.
2. Porównujemy treść z ostatnio dodanym komentarzem z podanego adresu IP, lecz to może być stosunkowo kosztowną operacją, jeśli użytkownicy będą się rozpisywać.
Spirit86
27.09.2008, 18:06:20
Pobierz ostatni rekord dodany przez danego użytkownika i sprawdź czy nie jest taki sam.
melkorm
27.09.2008, 18:16:14
hm fakt zapędziłem się tam powyżej ale gdybyś zrobił takie coś:
<?php
if(!isset($_POST['submit']) $_SESSION['comment'] = 1; if($_SESSION['comment'] && isset($_POST['submit']) { //dodanie komentarza
$_SESSION['comment'] = 0;
}
?>
to powinno zadziałać
bełdzio
27.09.2008, 19:10:43
zawsze mozna walnac header( ) + location :-)
batman
27.09.2008, 19:28:44
Temat był wielokrotnie poruszany na forum. Nawet jest o tym
przypięty temat.
Zamykam.