Anti flood basique avec table MySQL

      Information

Les anti flood sont importants pour vos sites web. Cela interdit aux spammeurs de hacker vos sites web en donnant un temps entre chaque soumission, lorsqu'ils utilisent vos formulaires.
WARNING

   Avertissement


Ces fonctions sont utilisées dans ce code source:
mysql_num_rows()   mysql_query()   

Ces extensions étaient obsolètes en PHP 5.5.0, et ont été supprimées en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations. Alternatives à cette fonction : mysqli_connect() et PDO::__construct()

   Code source classé dans  Sécurité

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
 29    
 30    
 31    
 32    
 33    
 34    
 35    
 36    
 37    
 38    
 39    
 40    
 41    
 42    
 43    
 44    
 45    
 46    
 47    
 48    
 49    
 50    
 51    
 52    
 53    
 54    
 55    
 56    
 57    
                               
<?php
/****************************************************/
/*
     Titre : Anti flood basique avec table MySQL                                                                          
                                                                                                                          
     URL   : https://phpsources.net/code_s.php?id=201
     Auteur         :                                                                                                     
     Date edition   : 13 Jan 2007                                                                                         
*/
/*****************************************************/


// table correspondant aux requetes ci-dessous
CREATE TABLE flood (
  ip varchar(18NOT NULL default '',
  dernier int(11NOT NULL default '0',
  PRIMARY KEY  (ip)
TYPE=MyISAM;


$time_flood '30'// 30 secondes

// EXEMPLE

// requete basique pour inserer
mysql_query("INSERT INTO flood VALUES ('$_SERVER[REMOTE_ADDR]', '" time() . 
"')");
// requete basique pour supprimer
mysql_query("DELETE FROM flood WHERE dernier + $time_flood < " time());



// COMMENT PROCEDER ??


$time_flood '30'// 30 secondes

// 1° d'abord commencer par supprimer tout ceux dont le temps a expirer
mysql_query("DELETE FROM flood WHERE dernier + $time_flood < " time());

// 2° ensuite prenez l'ip du visiteur
$resultat mysql_query(
"SELECT dernier FROM flood WHERE ip='$_SERVER[REMOTE_ADDR]'");

// 3° Si l'Ip du visiteur est deja dans la table, ai !!
if(mysql_num_rows($resultat) > )
    echo 'vous spammez !';

   
// 4° sinon tout va bien, reste plus qu'a inserer l'ip de votre visiteur dans la
// table
   else mysql_query("INSERT INTO flood VALUES ('$_SERVER[REMOTE_ADDR]', '" 
time() . "')");

?>

      Documentation officielle PHP

   php.net   Description Versions PHP OUTIL
   echo Affiche une chaîne de caractères PHP 4, PHP 5, PHP 7
   key Retourne une clé d'un tableau associatif PHP 4, PHP 5, PHP 7
   mysql_num_rows Retourne le nombre de lignes d'un résultat MySQL - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLÈTE en PHP 5.5.0, et ont été supprimées en PHP 7.0.0
   mysql_query Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLÈTE en PHP 5.5.0, et ont été supprimées en PHP 7.0.0
   time Retourne le timestamp UNIX actuel PHP 4, PHP 5, PHP 7

Autres snippets


Fichier d'installation de table MySQL

Compatibilité : PHP 4, PHP 5

Principe d'un fichier d'installation de table MySQL avec création et insertion d'enregistrements dans la nouvelle table fraichement créée.

Captcha anti-spam simple et avec image

Compatibilité : PHP 4, PHP 5

Ce code permet de générer une image anti-spam, à utiliser pour bloquer l'accès des formulaires aux bots. Le code de l'image est mis dans une session.

Nuage de tags basique

Compatibilité : PHP 4, PHP 5

2019 (maj) - Tag cloud basique mais fonctionnel. Vous avez le moteur PHP des nuages de tags!! A vous de composer avec le CSS.


  • Merci de signaler tout problème rencontré avec ce code

L'ajout de commentaire est libre et ne demande pas d'inscription

[6]

  • avatar

    Furious

    19 Mars 2008 à 10:42

    Fonctionne très bien ! Par contre pour ceux qui sont un peu embrouillés, il faut prendre juste la partie : "Comment procéder". ;)

  • avatar

    Invité

    10 Jan 2010 à 18:42

    Joli

    if(mysql_num_rows($resultat) > ???)

  • avatar

    KOogar

    10 Jan 2010 à 23:21

    Merci pour le signalement. C'est corrigé, il y avait un petit problème de cache avec cette page.

  • avatar

    Invité

    13 Juin 2010 à 13:46

    bonjour, juste une question, au niveau du serveur, sa se pose dans quelle fichier et a quel place

  • avatar

    KOogar

    13 Juin 2010 à 14:33

    Pour monter la table tu peux utiliser phpMyAdmin et le reste du code c'est du pur php donc utilise un script avec une extension php  

  • avatar

    Invité

    06 Aout 2010 à 19:52

     Salut à tous, en faite il faut faire comme ça: <?php 

    $time_flood '30'// 30 secondes 
    ?>
    Merci d'avance

Suivez PHP Sources sur Twitter !

PHP débutant et initié 50 Tutoriel

Présentation de PHP

  Derniers scripts PHP

SuiteCRM 7.11.8

logo SuiteCRM
Langue langue en
Date  hier
Taille 56 Mo
Catégorie CRM

ZwiiCMS 9.2.05

logo ZwiiCMS
Langue langue fr
Date 23 Aout
Taille 3 Mo
Catégorie CMS

PHP File Manager

Script PHP / MySQL
Langue langue us
Date 21 Aout
Taille 0.47 Mo
Catégorie Administration

AfterLogic WebMail Lite 7 - Messagerie Web PHP...

Script PHP / MySQL
Langue langue us
Date 19 Aout
Taille 8 Mo
Catégorie Email-Emailing

  13 Jan 2007

11 613 Vues

Compatibilité

PHP 5+
PHP 7-