PB un javascript qui update une table mysql

[Fermé]
Signaler
Messages postés
46
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
17 janvier 2008
-
Messages postés
46
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
17 janvier 2008
-
Bonjour,

Je suis debutant dans la programation et je souhaiterai faire un p'tite fonction qui ferai que lorsque l'utilisateur ferme sont navigateur en etant sur mon site cela met a jour une valeur dans ma table sql.

Je sais pas trop si c'est possible et n'ai aucune idée de commen faire.

Je met ici le code que j'ai fait mais qui doit a coup sur etre inccorecte (vu que ca marche pas)

dans ma page index.php j'appel la fonction ainsi :

<script language="javascript">
<!--/*création d'une fonction ferm() qui va ouvrir le script de destruction de session*//-->

function ferm(){
<!--/ouverture de la fenêtre contenant le script//-->

window.open('Shoot.php','','toolbar=no,location=no, status=no, scrollbars=no, resizable=no, width=1, height=1, left=0, right=0');
}
</script>



puis voici ma page Shoot.php :

<?php
// On démarre la session
session_start();

include("Conect.php");

$numnad = $_SESSION['Login'];

// On détruit les variables de notre session
session_unset ();

// On détruit notre session
session_destroy ();

echo "<script language='javascript'>
<!--//on teste si la fenêtre mère a été fermée//-->
if (window.opener.closed){

<!--//si oui, on affiche un message puis on ferme cette fenêtre//-->
mysql_query('UPDATE individu SET conect='0'WHERE Num_ind='$numad'');
alert('ca marche !!!');

window.close();}


else{
<!--//sinon, on ferme la fenetre directement//-->

window.close();}
</script>";

?>



Merci a tous ceux qui tenterons de m'aider

cdt
Yull

5 réponses

Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
852
Bonjour,

Ce qui est fait dans le code plus haut me semble correct, le plus important est comment tu t'en sers ?
Comment (et ou, sur quoi, quel élément) appelle tu la fonction qui ouvre ta popup (qui elle même supprimer de la session les éléments et update une valeur dans la base de données) ?
Messages postés
46
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
17 janvier 2008
1
Merci Kij_82 de te pencher sur mon probleme ^^

Je viens de modifier un peu mon code, et je parviens desormais a modifier la valeur voulue dans ma bdd losque je ferme la fenetre.

cepandant le pop up qui apparait ne se ferme pas automatiquement apres.

voici mon code remanié :

<?php
// On démarre la session
session_start();

include("Conect.php");

$numd = $_SESSION['Login'];

mysql_query("UPDATE individu SET conect='0'WHERE Num_ind='$numd'");

// On détruit les variables de notre session
session_unset ();

// On détruit notre session
session_destroy ();


echo "<script language='javascript'>
window.close();}
</script>";

?>
Messages postés
46
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
17 janvier 2008
1
RE,

au passage, je sais que cela ne fonctionne que sous ie.

J'aimerai donc savoir si il existe aussi un moyen pour que cela fonctionne sous FF

merci de votre aide

cdt
Yull
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
852
Je dis peut etre une bétise mais je ne crois pas que tu puisse fermer la fenetre courante depuis la fenetre courante.
Tu peux fermer une popup depuis sa fenetre mère, mais pas depuis la popup en question.

Ce n'est pas sur... mais ca pourrait etre la raison pour laquelle ta popup ne se ferme pas en fin de traitement.
Messages postés
46
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
17 janvier 2008
1
pour le probleme du pop up qui ne se ferme pas je viens de trouver une solution de contournement que voici :

<head><?echo'<meta http-equiv="refresh" content="0;URL=javascript:window.close();">';?></head>


<?php
// On démarre la session
session_start();

include("Conect.php");

$numd = $_SESSION['Login'];

mysql_query("UPDATE individu SET conect='0'WHERE Num_ind='$numd'");

// On détruit les variables de notre session
session_unset ();

// On détruit notre session
session_destroy ();

?>


maintenant me reste plus qu'a trouver la solution pour que cela marche aussi sur Fire Fox, mais je commmence a avoir des doutes sur la faisabilité de la chose, vus que dans mes recherches a chaque fois quelqu'un dit que cela ne marche pas sous FF.

mais sait'on jamais peu etre que quelqu'un aura une solution de contournemet a me proposer ^^

merci en tout cas pour toute ton aide kij_82 ;-)