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();
}
}
?>
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 :
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();
}
}
?>