Array_search ou in_array qui ne fonctionne pa
Résolu
djflexlive
Messages postés
577
Statut
Membre
-
djflexlive Messages postés 577 Statut Membre -
djflexlive Messages postés 577 Statut Membre -
Bonjour,
Repostage d'un sujet précedent qui à été supprimé à ma demande (Merci Kilian)
Problème cité : Voici mon script qui ne fonctionne pas ... Le script n'arrives pas à trouver la valeur $ip dans le $contenu qui est un array établi d'après le contenu d'un fichier texte.
J'ai beau tourner la tartine dans tous les sens , je ne vois plus ... Help ! thanks :)
Ancien script :
Repostage d'un sujet précedent qui à été supprimé à ma demande (Merci Kilian)
Problème cité : Voici mon script qui ne fonctionne pas ... Le script n'arrives pas à trouver la valeur $ip dans le $contenu qui est un array établi d'après le contenu d'un fichier texte.
J'ai beau tourner la tartine dans tous les sens , je ne vois plus ... Help ! thanks :)
Ancien script :
<?
if (!isset($_GET['id']))
{
exit();
} else {
$id=$_GET['id'];
$ip = $_SERVER['REMOTE_ADDR'];
// Script anti-triche
$fichier = 'log_sites/'.$id.'.txt';
if (is_file($fichier)==TRUE) {
echo 'fichier existant';
$contenu = file('log_sites/'.$id.'.txt');
print_r($contenu);
$compteur = count($contenu);
//echo $compteur;
echo array_search($ip,$contenu);
if (!array_key_exists($ip,$contenu)) {
echo 'comptage out';
//echo array_search($ip,$contenu);
//print_r ($contenu);
include 'connect.php';
mysql_query(" UPDATE sites SET out_c=out_c+1 WHERE id='$id' ");
mysql_close();
for($i=0;$i==$compteur;$i++) {
$ecriture .= $contenu[$i];
}
$ecriture = $ip."\n".$ecriture;
$fp = fopen($fichier,"a+");
fwrite($fp, $ecriture);
fclose($fp);
}
} else {
echo 'fichier NON existant';
$fp = fopen($fichier,"a+");
fwrite($fp, $ip."\n");
fclose($fp);
include 'connect.php';
mysql_query(" UPDATE sites SET out_c=out_c+1 WHERE id='$id' ");
mysql_close();
}
}
?>
Configuration: Windows XP Firefox 2.0.0.13
1 réponse
-
Problème résolu grâce à Kilian (thanks !) , en modifiant la requete file :
file('log_sites/'.$id.'.txt');
Par :
file('log_sites/'.$id.'.txt', FILE_IGNORE_NEW_LINES);
Donc nouveau script :
<? if (!isset($_GET['id'])) { exit(); } else { $id=$_GET['id']; $ip = $_SERVER['REMOTE_ADDR']; // Script anti-triche $fichier = 'log_sites/'.$id.'.txt'; if (is_file($fichier)==TRUE) { $contenu = file('log_sites/'.$id.'.txt', FILE_IGNORE_NEW_LINES); $compteur = count($contenu); if (!in_array($ip,$contenu)) { include 'connect.php'; mysql_query(" UPDATE sites SET out_c=out_c+1 WHERE id='$id' "); mysql_close(); for($i=0;$i==$compteur;$i++) { $ecriture .= $contenu[$i]; } $ecriture = $ip."\n".$ecriture; $fp = fopen($fichier,"a+"); fwrite($fp, $ecriture); fclose($fp); } } else { $fp = fopen($fichier,"a+"); fwrite($fp, $ip."\n"); fclose($fp); include 'connect.php'; mysql_query(" UPDATE sites SET out_c=out_c+1 WHERE id='$id' "); mysql_close(); } } ?>