Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Blokada dodawania komentarzy na pewien czas
Forum PHP.pl > Forum > PHP
Strarus
cześć:)
Chciałbym dodać taką fukcję, która uniemożliwiła by dodawanie komentarzy (oczywiście po uprzednim wpisaniu) na pewien czas np. 1 dzień. W jaki sposób mogę to zrobić? Tylko nie na cookies, ponieważ włamanie potrwa 30 sekund haha.gif Ew. na IP, ponieważ i tak już je wykorzystuje.

pozdro
ShadowD
1. Podczas wstawiania komentarza zapamiętujesz ip i datę/godzinę
2. Jeśli chce ktoś dodać komentarz to sprawdzasz czy istnieje już jego ip w bazie jeśli tak to sprawdzasz czy data z poprzedniego komentarza nie jest starsza niż X godzin jeśli nie to wyrzucasz błąd a jeśli tak pkt. 1...

Resztę znajdziesz w google...
Strarus
sęk w tym, że jadę na txt... a ew. to zadziała na txt? jak coś to skrypt:
Kod
<?php
$data = date('d.m.Y H:i:s');
$str = ($_POST['ksywa']);
$ip= ($_SERVER['REMOTE_ADDR']);
$ksywa = trim($_POST['ksywa']);
$tresc = trim($_POST['tresc']);  

if(empty($ksywa) and empty($tresc)) {
    

echo 'Twoje IP to <b>'.$ip.'</b>. Będzie ono wyświetlane innym użytkownikom.<br/>
Dzisiaj jest <b>'.$data.'</b>.<br/>
<form action="" method="post">
<p class="style1">Nick: <input class="name" type="text" name="ksywa" style="width: 100px;" maxlength="10"/>
<p class="style1">Treść komentarza:
<textarea onchange="MaxL(this);" name="tresc" class="content">
</textarea><p>
<center><input type="submit" value="Wpisz!" /> </center>
</form>';
}
else {  
     $pliczek = file_get_contents("opinia.txt");
    
$plik = fopen("opinia.txt","w");



$dane = "<table class='coment'>
<tr>
<td>
<font class='nick'><b>Dodane przez:</b> ".$ksywa."</font><font class='date'><b>Dnia:</b> ".$data."</font>
</td>
</tr>
<tr>
<td>
<font class='nick'><b>Komentarz:</b></font><font class='comments'> ".$tresc."</font>
</td>
</tr>
<tr>
<td>
<font class='date'><b>IP:</b> ".$ip."</font>
</td>
</tr>
</table>
<br />\n";
  

     fwrite($plik,$dane.$pliczek);
    
     fclose($plik);
  
    
    echo "Twój komentarz zosał dodany! Dziękujemy! <a href='index.php'>Kliknij aby przejść do strony głównej</a><br/>Kliknij <a href='comment.php'>tutaj</a> jeśli chcesz dodać następny komentarz.";

}
  include ("opinia.txt");
?>
ShadowD
Omg, zawsze możesz stworzyć katalog w którym będziesz tworzył np pliki o nazwie - ip i zawartością - data lub jeden plik w którym linia pod linią będą zapisywane te dane...

Ps Zawsze można przepisać to na mysql.
Strarus
A co polecasz? Ja myślę, że z MySQL mogę narobić sobie kłopotów, ponieważ jestem bardzo słaby... Tylko, że MySQL jest wygodny.. To jak myślisz?
ShadowD
Tz ja osobiście jak uczyłem się php myślałem, że pliki txt jest to coś super, mega ale po krótkim czasie zorientowałem, iż nie jest to coś odpowiedniego do większych aplikacje. Więc moja rada jest taka byś zamienił pliki na bazę niejest ona taka straszna a napewno daje większe możliwości...
Mize
Dobra, a co jeśli całe osiedle ma jedno IP ?
Zablokowanie komentowania/głosowania itp. jest bardzo trudne, a wręcz niemożliwe.
Ciastka? Wyłączy, IP/HOST? Zmienne albo wspólne. Dodatkowo można porównywać przeglądarke, ale to już mija się z celem.
Ja to rozwiązuje po prostu przez wymaganą rejestrację.
I blokuje danemu użytkownikowi możliwość komentowania na x minut.

Pozdrawiam.
ShadowD
No tak, do wszystkiego można się przyczepić i na pewno zgodzę się z tobą że rejestracja jest jednym z sposobów zabezpieczenia się ale można zawsze założyć nowe i znowu problem...
Strarus
Hmm... chyba coś mi nie wychodzi haha.gif Próbowałem ale jakoś mi to średnio szło (nawet z książką), więc chyba poproszę o pomoc z tymi txt biggrin.gif Jak już wcześniej wspomniałem jestem słaby w php (a o MySQL nie wspomnę) tak więc jeżeli ktoś ma pomysł jak to zrobić to niech napisze smile.gif Za porade stawiam pomoc smile.gif
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.