Strarus
6.12.2008, 13:18:18
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

Ew. na IP, ponieważ i tak już je wykorzystuje.
pozdro
ShadowD
6.12.2008, 13:26:35
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
6.12.2008, 13:30:49
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
6.12.2008, 13:40:06
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
6.12.2008, 13:47:51
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
6.12.2008, 14:38:18
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...
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
6.12.2008, 15:32:56
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
6.12.2008, 15:36:37
Hmm... chyba coś mi nie wychodzi

Próbowałem ale jakoś mi to średnio szło (nawet z książką), więc chyba poproszę o pomoc z tymi txt

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

Za
porade stawiam pomoc
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.