Vous n'êtes pas identifié(e).
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
- - - - - - - - - - - - - - - - - - - - - - - -
#
# 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
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
Bonsoir xTG -
Je ne suis pas un spécialiste du .PHP.
Qu'entends-tu par "sécurisé"?
Merci, bonne soirée…
- Dimitri
Hors ligne
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