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 -
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 :


<?

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

  1. djflexlive Messages postés 577 Statut Membre 95
     
    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();
    	
    	}
    
    }
       
    ?>
    
    1