[RESOLU] erreur php sur mon site , à l'aide svp

Mammouth du PHP | 702 Messages

12 déc. 2012, 18:12

ok donc pour résumer il ne parvient pas à récupérer la taille du fichier dynamiquement.

à la ligne ou tu as $resultat1 = fread...

remplace juste après l'ouverture de ton accolade tu rajoute
if ($continu==1) {
le code suivant:
   $tmp = fopen("datacount.php", "r");
   $resultat1 = fread ($tmp, filesize ("datacount.php"));
   fclose($tmp);
   $ligneajout = "\$Adresse[] = \"".$nomadr."\";\n \$Compteur[] = 1;\n ?>";
   $resultat2 = fopen("datacount.php", "w+");
   $ligneajout2 = str_replace("?>", $ligneajout, $resultat1);
   fputs ($resultat2, $ligneajout2);
   fclose($resultat2);
par le code suivant:
 $file = 'datacount.php';
   $tmp = fopen("$file", "w+");
   rewind($file); 
   $size = strlen($data);
   $resultat1 = fread ($tmp, $size);
   fclose($tmp);
   $ligneajout = "\$Adresse[] = \"".$nomadr."\";\n \$Compteur[] = 1;\n ?>";
   $resultat2 = fopen("datacount.php", "w+");
   $ligneajout2 = str_replace("?>", $ligneajout, $resultat1);
   fputs ($resultat2, $ligneajout2);
   fclose($resultat2);

Eléphanteau du PHP | 11 Messages

12 déc. 2012, 18:21

ok donc voici le nouveau code compteur.php selon tes indications que je viens de corriger ( regarde si j'ai bien compris ce que tu me demandais et si je n'ai pas faiot d'erreur stp )
<?php 

function ecrire_lien()
{
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$nomadr = $path_parts['basename'];

include("datacount.php");
$continu=1;
$nb_lien = count($Adresse);
for($i = 0; $i < $nb_lien; $i++) {
 if ($Adresse[$i]==$nomadr) {      
   $Compteur[$i]++;
   $resultat2 = fopen("datacount.php", "w+");
   $ligneajout = "<?php \n";
  for($j = 0; $j < $nb_lien; $j++) { 
   $ligneajout .= "\$Adresse[] = \"".$Adresse[$j]."\";\n \$Compteur[] = ".$Compteur[$j].";\n ";      
  }
   $ligneajout .=  "?>";
   fputs ($resultat2, $ligneajout);  
   fclose($resultat2); 
  $continu=0;
  break;  
 }
 else
 {
  $continu=1;
 }
}





if ($continu==1) {
   $file = 'datacount.php';
   $tmp = fopen("$file", "w+");
   rewind($file);
   $size = strlen($data);
   $resultat1 = fread ($tmp, $size);
   fclose($tmp);
   $ligneajout = "\$Adresse[] = \"".$nomadr."\";\n \$Compteur[] = 1;\n ?>";
   $resultat2 = fopen("datacount.php", "w+");
   $ligneajout2 = str_replace("?>", $ligneajout, $resultat1);
   fputs ($resultat2, $ligneajout2);
   fclose($resultat2);
  }


}  // fin fonction ecrire_lien()

?>


mais voila a present les erreurs que j'obtiens sur mon site :

Warning: rewind(): supplied argument is not a valid stream resource in /mnt/162/sdb/a/c/countrywesterntroup/compteur.php on line 38

Warning: fread() [function.fread]: Length parameter must be greater than 0. in /mnt/162/sdb/a/c/countrywesterntroup/compteur.php on line 40

Mammouth du PHP | 702 Messages

12 déc. 2012, 18:24

ici
$size = strlen($data);
c'est
$size = strlen($file);

Eléphanteau du PHP | 11 Messages

12 déc. 2012, 18:32

ici
$size = strlen($data);
c'est
$size = strlen($file);

j'ai pas compris , il faut que je change le
$size = strlen($data);


par celui ci :
$size = strlen($file);


???


si oui voila donc l'erreur qu y il a sur le site à présent :

Warning: rewind(): supplied argument is not a valid stream resource in /mnt/162/sdb/a/c/countrywesterntroup/compteur.php on line 38

Mammouth du PHP | 702 Messages

12 déc. 2012, 18:34

oui car la variable
$data
n'est pas initialisée ou sinon tu change le nom de ta variable
 $file = 'datacount.php';
par
 $data = 'datacount.php';

Mammouth du PHP | 702 Messages

12 déc. 2012, 18:38

désolé, supprime cette ligne
rewind($file);

Eléphanteau du PHP | 11 Messages

12 déc. 2012, 18:44

désolé, supprime cette ligne
rewind($file);

Super , le message d'erreur a disparu !! felicitations !! merci infiniment !!!

merci merci et encore merci de ta disponibilité ! :D

Mammouth du PHP | 702 Messages

12 déc. 2012, 18:53

je suis passé par la je me souviens de mes débuts ^^...

la le problème (je ne sais d'ou il vient) c'est qu'il n'arrive pas à récupérer dynamiquement la taille du fichier.

On a juste utiliser une autre méthode.