Rate limiting ni mbinu ya kizuizi inayotumika kudhibiti idadi ya requests zinazoweza kutumwa kwenye form katika muda fulani. Hii ni muhimu kwa kuzuia spam au abuse kwenye forms zako za PHP. Mfano huu unaonyesha jinsi ya kufanya simple rate limiting kwa kutumia IP ya mtumiaji na session.

Code Sample:

<?php
session_start();

// Weka limit na timeframe (sekunde)
$limit = 5; // max submissions
$timeframe = 60; // kila 60 seconds

if(!isset($_SESSION['form_submissions'])){
$_SESSION['form_submissions'] = [];
}

// Safisha submissions zilizopita zilizopita timeframe
$_SESSION['form_submissions'] = array_filter($_SESSION['form_submissions'], function($timestamp) use($timeframe) {
return ($timestamp + $timeframe) > time();
});

// Angalia kama rate limit imevuka
if(count($_SESSION['form_submissions']) >= $limit){
die("Umezidi idadi ya submissions. Tafadhali subiri dakika chache.");
}

// Ikiwa siyo, ruhusu submission
$_SESSION['form_submissions'][] = time();

// Mfano wa form processing
if($_SERVER['REQUEST_METHOD'] === 'POST'){
$name = $_POST['name'] ?? '';
$email = $_POST['email'] ?? '';
echo "Form imepokelewa kwa: $name, $email";
}
?>


HTML Form:

<form method="post" action="">
<input type="text" name="name" placeholder="Jina lako" required>
<input type="email" name="email" placeholder="Email yako" required>
<button type="submit">Tuma</button>
</form>


Ufafanuzi:

Code hii inahesabu submissions za mtumiaji kulingana na session.

array_filter inafuta submissions zilizopita timeframe, kuhakikisha kuwa zinahesabiwa tu submissions mpya.

Unaweza kuongeza sophistication kwa kutumia database ili kufuatilia IP au user accounts.

🔗 Links Za Kujifunza Zaidi:

🌐 Faulink Official Website:
https://www.faulink.com/

📘 Jifunze Web Design & Programming (Tutorials / Mifumo):
https://www.faulink.com/excel_mifumo.php

📲 Piga / WhatsApp kwa msaada wa haraka:
https://wa.me/255693118509