PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 28-03-2010 08:31:20

dimitri_c
Membre
Inscription : 07-08-2009
Messages : 12

• Fichier dynamique -> vide apres quelques temps?

Bonjour -


J'ai écrit un script en .PHP qui

- Récupère une "string" .XML de Flash®.
- Ouvre un fichier .XML sur le serveur et rajoute à la fin la "string" .XML (en lisant le contenu existant du file .XML, et puis rajoutant la string récuprée).

Cela fonctionne pratiquement tout le temps, mais il arrive (aléatoirement) que le fichier .XML soit tout d'un coup vide (0KB).
Y'aurait-il une raison évidente?

Est-ce que qq'un pourrait m'aider, me guider?


Merci, bonne journée.





- Dimitri



- - - - - - - - - - - - - - - - - - - - - - - -

<?php

#
# re-save cleaned .XML file    #######
#

// clearstatcache();

// Send Variable 'again' to Flash
function ParseToSWF($variable,$valeur) {
  echo "&" . $variable . "=" . utf8_encode(urlencode($valeur));
}

$xml_swf = $_POST['txtxml'];
$filename = 'notlookingforsuchpicturesrightnow/gallery.xml';
$cleanedxml = str_replace("'", "%27", $xml_swf);    // escape apostrophe

#
# read .XML file    #######
#
if (file_exists($filename)) {

  $to = "dimitri.castrique@gmail.com";
  $subject = "     Shuffle after stringreplace";
  $message .= "After stringreplace\n\n $cleanedxml";
  $message .= "\n\n- - - - - - - - -\n\nBefore treatment\n\n $xml_swf";
  $mail_sent = @mail( $to, $subject, $message );
  echo $mail_sent ? "Mail sent" : "Mail failed";

  $open = fopen( $filename, "r+");
  fseek( $open, 0 );            // place the pointer at the beginning of the XML file
  ftruncate( $open, 0);           // clean completely the contain of the XML file
  fwrite( $open, stripslashes($cleanedxml) );
  fclose( $open );
  ParseToSWF("varResultatStatus","ok");   // send a return to Flash
} else {
  #
  # file MUST exist!!!    #######
  #
  ParseToSWF("varResultatStatus","file does not exist!"); // send a return to Flash
}

?>

Dernière modification par dimitri_c (28-03-2010 08:40:21)

Hors ligne

#2 28-03-2010 09:35:06

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : • Fichier dynamique -> vide apres quelques temps?

Tu devrais vérifier la valeur de $_POST['txtxml'] avant d'exécuter un tel script.
Si la variable est vide cela devient normal d'obtenir un fichier vide à la fin.

Hors ligne

#3 30-03-2010 07:40:57

dimitri_c
Membre
Inscription : 07-08-2009
Messages : 12

Re : • Fichier dynamique -> vide apres quelques temps?

Bonjour xTG -

Merci…
OK mais pourquoi cela fonctionne 65 fois, et à la 66è fois le fichier est vide (cela pourrait très bien être à la 14è fois, il s'agit d'un simple exemple).


Bonne journée…




- Dimitri

Hors ligne

#4 30-03-2010 07:52:40

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : • Fichier dynamique -> vide apres quelques temps?

Tout simplement parce que ton script n'est pas sécurisé.
On appelle donc cela une erreur aléatoire.

Hors ligne

#5 30-03-2010 18:58:55

dimitri_c
Membre
Inscription : 07-08-2009
Messages : 12

Re : • Fichier dynamique -> vide apres quelques temps?

Bonsoir xTG -

Je ne suis pas un spécialiste du .PHP.
Qu'entends-tu par "sécurisé"?


Merci, bonne soirée…




- Dimitri

Hors ligne

#6 31-03-2010 06:04:29

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : • Fichier dynamique -> vide apres quelques temps?

Toute variable doit être testée pour vérifier que sa valeur est bien ce qu'on attend.
Dans ton cas si la variable $_POST['txtxml'] est vide ton script se lance, et vide ton fichier. ^_-

Hors ligne

Pied de page des forums