[AJAX] fonction php dans ajax
Bonjour, j'ai un problème pour faire fonctionner une fonction php dans ajax.
Je voudrais que lorsque je ferme ma page web, un script s'exécute coté serveur pour supprimer des fichiers temporaires.
J'ai intégré dans mon body de ma page
Code:
1 2
| <script type="text/javascript" src="js/recherche.js" charset="iso_8859-1"></script>
<body onbeforeunload="delTmpFile();"> |
dans mon recherche.js j'ai :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| function creerRequete()
{
var requete = null;
try
{
/* On tente de créer un objet XmlHTTPRequest */
requete = new XMLHttpRequest();
}
catch (microsoft)
{
/* Microsoft utilisant une autre technique, on essays de créer un objet ActiveX */
try
{
requete = new ActiveXObject('Msxml2.XMLHTTP');
}
catch(autremicrosoft)
{
/* La première méthode a échoué, on en teste une seconde */
try
{
requete = new ActiveXObject('Microsoft.XMLHTTP');
}
catch(echec)
{
/* À ce stade, aucune méthode ne fonctionne... mettez donc votre navigateur à jour ;) */
requete = null;
}
}
}
if(requete == null)
{
alert('Impossible de créer l\'objet requête,\nVotre navigateur ne semble pas supporter les object XMLHttpRequest.');
}
return requete;
}
function delTmpFile()
{
/* On crée l'objet XHR */
var requete = creerRequete();
if (requete == null)
{
return;
}
/* Définition du fichier de traitement */
var fonction = 'supression.inc';
/* Envoi de la requête à la page de traitement */
requete.open('GET', fonction, true);
requete.send(null);
} |
et dans ma page suppression.inc
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| <?php
function delTmpFiles($numSession)
{
$numSession = sprintf("%'03.u", $numSession);
$dir = "tmp/$numSession";
// ajout du slash a la fin du chemin s'il n'y est pas
if ( !preg_match( "/^.*\/$/", $dir ) )
{
$dir .= '/';
}
// Ouverture du repertoire demande
$handle = @opendir( $dir );
// si pas d'erreur d'ouverture du dossier on lance le scan
if( $handle != false )
{
// Parcours du repertoire
while( $item = readdir($handle) )
{
if (($item != ".") && ($item != ".."))
{
if ( is_dir( $dir.$item ) )
{
delTmpFiles( $dir.$item );
}
else
{
unlink( $dir.$item );
}
}
}
// Fermeture du repertoire
closedir($handle);
// suppression du repertoire
$res = rmdir( $dir );
}
else
{
$res = false;
}
return $res;
}
?> |
Désolé, je suis débutant en ajax (je sais que ma question doit être stupide...)
Vous avez une idée de mon erreur ?
Merci pour vos réponses.
Cordialement.