Jump to content
php.lv forumi

Recommended Posts

Posted

Sveiki!

Kāds varētu ludzu iedot scriptu kas lauj pievienot komentaru nu vienas ip adreses tikai ik pa 5minutem.

Lūk komentaru pievienosanas kods:

 

 

<?php

$var1 = rand(1,5);

$var2 = rand(1,5);

$equation = $var1 . " + " . $var2 . " =";

$validation_answer = $var1 + $var2;

$kamid = secureString(($_GET['id']),true);

$komentars = secureString(($_POST['komentars']),true);

$vards = secureString(($_POST['vards']),true);

$laiks = secureString(date("Y.m.d H:i:s",time()),true);

$ip = secureString(($_SERVER['REMOTE_ADDR']),true);

if(isset($_POST['piev']))

{

$sql = "SELECT vards,komentars FROM komentaari ORDER BY id DESC";

$res=mysql_query($sql) or die(mysql_error());

$prev=mysql_fetch_array($res);

if($_POST['validation'] != $_POST['validation_answer']){

echo "<div class='wrong'>Izpildi matematisko uzdevumu.</div>";

}

elseif(empty($vards) OR (empty($komentars)))

{

echo"<div class='wrong'>Lūdzu neatstāj tukšus laukumus.</div>";

}

elseif($prev['komentars']==$komentars)

{

echo"<div class='wrong'>Bez dubultpostiem</div>";

}

else{

$add = "INSERT INTO komentaari(kamid, vards, komentars, laiks, ip) VALUES('$kamid','$vards','$komentars','$laiks','$ip')";

mysql_query($add) or die(mysql_error());

js_redirect('?lapa=anekdotes&id='.$_GET['id'].'');

}

}

?>

<div id="comments_add">

<form method="POST">

<table>

<tr>

<td>Segvārds / Vārds</td>

</tr>

<tr>

<td><input type="text" name="vards" style="width: 250px;"></td>

</tr>

<tr>

<td>Tava komentārs</td>

</tr>

<tr>

<td><textarea name="komentars" style="width: 250px; height: 60px;"></textarea></td>

</tr>

<tr>

<td>Valdidācija<font color="#00CD05">*</font></td>

</tr>

<tr>

<td> <font size="3"><?=$equation; ?></font> <input type="text" name="validation" style="width:15px;" maxlength="2" />

<? echo "<input type='hidden' name='validation_answer' value='$validation_answer' />"; ?></td>

</tr>

<tr>

<td><input type="submit" name="piev" value="Pievienot"></td>

</tr>

</table>

</form>

</div>

<br>

 

 

Velos zinat kaads kods man ir japievieno, lai darbotos augstaak mineetaa lieta!

 

Paldies!

Posted (edited)

Beidzot kāda jauna atbilde.

$min5 = time()+60*5 // 60 sekundes * 5
# izvelkam pedejo laiku, kad tikka komentēts no šīs IP
if($pedejais_laiks > $min5)
{
// woops. tu spamo!
}

Edited by anonīms
Posted

Beidzot kāda jauna atbilde.

$min5 = time()+60*5 // 60 sekundes * 5
# izvelkam pedejo laiku, kad tikka komentēts no šīs IP
if($pedejais_laiks > $min5)
{
// woops. tu spamo!
}

 

taatad so kodu vienkaarsi pievienot klaat scriptam ja?

Posted

taatad so kodu vienkaarsi pievienot klaat scriptam ja?

 

Jā, vienkārši iemet pašā apakšā un viss strādās!

 

NOT!!!

 

Pielāgot gan pašam nāksies. Kaut kur ir jāglabā laiks, kad pēdējo reizi no konkrētās IP ir rakstīts komentārs. Tad attiecīgi salīdzini un vai ļauj pievienot komentāru, vai neļauj.

Posted

Nē! Sāc darīt.

Vispirms sāc ar to, ka pēc $_POST izvelc pēdējo laiku, kad tika komentēts.

Jāizmanto SQL vaicājumu - SELECT ar papildus atribūtu WHERE.

WHERE atribūtā nepieciešama IP. tātad $_SERVER['REMOTE_ADDR']

Posted

Tas ir programmēšanas pirmais līmenis...

Es kkā tam manuprāt tiku cauri, jo skatījos kodus un skolā, kladē, JĀ kladē, rakstīju komentāru pievienošanas skriptus. Tad tas likās wow. A tagad, kā 2 pirkstus apmī*t :D. Vienīgi, ja kkas grūts bija (pārsvarā kveirja vaicājums), tad gan mēģināju izdabūt gatavu kodu.

Posted

viss sākumā vienmēr liekas grūts! Bet kad esi iemācījies tad gandrīz ar aizsietām acīm vari uzrakstīt un nakts laikā ja kāds uzmodina tad vari atbildēt :D

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...