IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Supprimer un fichier sur unbeforeunload


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut [AJAX] Supprimer un fichier sur unbeforeunload
    Bonjour,

    J'aimerais savoir s'il est possible d'envoyer une commande php pour supprimer un fichier sur mon serveur lorsqu'un utilisateur ferme son navigateur.

    En bref, lors du chargement de la page un fichier .txt est créé avec l'ID de session php.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php fopen('$_SESSION['id'].'.txt', 'a+'); ?>
    Et lorsque l'utilisateur ferme son navigateur je veut supprimer sont fichier.

    J'ai vu qu'en Javascript, unBeforeUnload pourrait me donner un coup de main, et en fouillant un peu plus, le seul moyen d'arriver à mes fins est d'utilisé AJAX.

    Je sais que le code suivant n'a pas de sens, mais ca illustre un peu ce que je veux faire. et bien sûr ne fonctionne pas, a part le alert en javascript.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <head>
        <script type="text/javascript">
    	 function delete_file(<?php $id ?>)
    	 {
    	    <?php unlink($_SESSION['id'].'.txt'); ?>
    	    alert('Le fichier <?php $id ?>.txt a été effacer.');
    	 }
        </script>
    </head>
    <body onbeforeunload="delete_file(<?php $_SESSION['id'] ?>);">
    En gros je veux supprimer le fichier portant le id de session sur fermeture du navigateur et renvoyer une confirmation via un alert disant que le fichier a été supprimer.

    Auriez-vous des pistes pour moi?

    Merci à l'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut
    Update de la situation:

    Je suis maintenant capable d'effacer les fichiers crées lors de l'appel de la page sur fermeture du navigateur. Le seul hic c'est que ca fonctionne sous Firefox et non sous IE.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php session_start(); ?>
     
    <html>
        <head>
        </head>
        <body>
     
            <script text="javascript">
                window.onbeforeunload=function()
                { 
                    var xml=new XMLHttpRequest();
                    xml.open("post","delete_files.php",false);
                    xml.send("");
                    alert(xml.responseText);
                }
            </script> 
     
            <?php 
                $_SESSION['id'] = session_id();
                fopen('$_SESSION['id'].'.txt', 'a+'); 
            ?>
        </body>
    </html>
    Et mon fichier delete_files.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php session_start();
     
             delete_files(session_id());
            
             //Efface tout les fichiers csv pourtant le meme ID de session
             function delete_files($id){
                 if ($id){
                     foreach (glob("*".$id.".txt") as $filename) {
                         echo 'Effacer: '.$filename."\n";
                         unlink($filename);
                     }
                 }
                 else{ echo 'Failed!'; }
              }
    ?>
    Me reste à faire fonctionner cela avec IE. Des idées?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut
    Avec ceci ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    		<script type='text/JavaScript'>
    	 		function getXhr(){
    				var xhr = null; 
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                    return xhr
    			}
     
    			/**
    			* Méthode qui sera appelée lors de la fermeture de la page
    			*/
    			function delete_file(){
    				var xhr = getXhr()
    				xhr.open("POST","delete_files.php",false);
    				xhr.send(null);
    				alert(xhr.responseText);
    			}
     
    			window.onbeforeunload = delete_file;
    		</script>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer plusieurs fichier sur FTP
    Par DevPerl dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 16/09/2007, 23h38
  2. Comment supprimer un fichier sur un serveur
    Par visqueu dans le forum Langage
    Réponses: 1
    Dernier message: 02/04/2007, 02h47
  3. Réponses: 4
    Dernier message: 19/07/2006, 12h29
  4. Réponses: 5
    Dernier message: 12/06/2006, 08h05
  5. est-il possible de supprimer un fichier sur le serveur ?
    Par NoobX dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/10/2005, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo