2011-04-23 3 views
2

J'ai ce code qui empêche les utilisateurs de faire plusieurs demandes sur une page et il enregistre l'adresse IP dans un fichier texte avec une chaîne de chiffres je suppose que c'est un horodatage mais je ne suis pas sûr ressemble à ceci 173.1.1.100 - Requested on: 1303521541 comment puis-je changer cela en temps lisible avec une date?demande de page de limite avec php

$ipLog='log.txt'; //Logfile 
$timeout='1'; //Wait Time 
$goHere=$headers; //Page To Access 

$register_globals = (bool) ini_get('register_gobals'); 
if ($register_globals) $vis_ip = getenv(REMOTE_ADDR); 
else $vis_ip = $_SERVER['REMOTE_ADDR']; 


function recordData($vis_ip,$ipLog,$goHere) 
{ 
    $log=fopen("$ipLog", "a+"); 
    fputs ($log,$vis_ip." - Requested on: ".time()."\n"); 
    fclose($log); 

    // 
    // 
    // 

    exit(0); 
} 

function checkLog($vis_ip,$ipLog,$timeout) 
{ 
    global $valid; $ip=$vis_ip; 
    $data=file("$ipLog"); $now=time(); 

    foreach ($data as $record) 
    { 
     $subdata=explode(" - Requested on: ",$record); 
     if ($now < ($subdata[1]+600*$timeout) && $ip == $subdata[0]) 
     { 
      $valid=0; echo "$timeout min wait."; 
      break; 
     } 
    } 
} 

checkLog($vis_ip,$ipLog,$timeout); 
if ($valid!="0") recordData($vis_ip,$ipLog,$goHere); 
+0

pas lié à votre question, mais si vous avez contrôlez vos paramètres PHP, faites-vous plaisir et rendez-vous sur http://php.net/manual/fr/security.globals.php – Thilo

Répondre

3

Lorsque le fichier a été enregistré, sauf une date

fputs ($log,$vis_ip." - Requested on: ".date("Y-M-d H:m:s")."\n"); 

lorsque son extrait, revenir à horodater et de garder la logique

$subdata=explode(" - Requested on: ",$record); 
$subdata[1]= strtotime($subdata[1]); //convert date to timestamp 
+0

Merci !! travailler comme un charme – jennifer