Comportement des balises onload et onunload ...

Fermé
Bobparis Messages postés 5 Date d'inscription samedi 26 mai 2001 Statut Membre Dernière intervention 11 juillet 2001 - 11 juil. 2001 à 07:48
 djullius - 27 mars 2009 à 17:26
B'jour

J'essaie d'écrire dans un fichier texte une simple ligne à l'arrivé et à la sortie d'un visiteur d'une de mes pages.

Le souci est le suivant :

Je demande d'écrire ue ligne dans ce fichier avec la balise "Onload" en lui demandant d'exécuter une fonction php et une autre ligne avec la balise "OnUnload" en lui demandant d'exécuter une autre fonction php...

Lorsque je lance mon test, j'arrive sur la page est là, dès l'arrivé, les deux fonctions se réalisent, sans tenir compte des balises Onload et Onunload...

Le résultat étant, dès l'arrivé, dans mon fichier txt, "visiteur arrive sur la page à telle heure" et "visiteur part de ma page à telle heure" alors que le visiteur est toujours sur ma page !! :))

Ai-je négligé une particularité de php? Est ce tout simplement possible de réaliser celà en php?

J'avoue que je tourne un peu en rond....

Merci de votre aide éventuelle.

Bob

5 réponses

Tittom Messages postés 422 Date d'inscription mardi 30 mai 2000 Statut Membre Dernière intervention 10 janvier 2007 128
11 juil. 2001 à 08:07
Peux-tu poster un extrait de ton code source ? cela nous aiderait à te répondre.

Tittom
0
Bobparis Messages postés 5 Date d'inscription samedi 26 mai 2001 Statut Membre Dernière intervention 11 juillet 2001
11 juil. 2001 à 08:16
pas de problème :o)

donc.....

<body onload="<?php function ecrire_entrer(); ?>" onUnload="<?php function ecrire_sortie();?>" >

Je suis (presque) certain que mes fonctions ecrire_entrer et ecrire_sortie ne contiennent pas d'erreur....

Par contre, lorsque j'utilise le bout de code que je viens de donner en exemple, les fonctions ecrire_sortie et ecrire_entrer s'exécute toutes les deux dès le chargement de la page !!!! Un peu comme si la balise OnUnload avait été ignoré complètement....et que le fonction s'était excuté sans fermer la fenètre.

Pas géneant me diras tu pour la fonction de la balise Onload mais un peu plus pour celle de la fonction OnUnload :o)

Voilà :)

Et merci encore de ton aide:)

Bob
0
ca depend si php paie sa biere ou pas :o)
0
Bobparis Messages postés 5 Date d'inscription samedi 26 mai 2001 Statut Membre Dernière intervention 11 juillet 2001
11 juil. 2001 à 08:36
blague à part, php paye toujours sa bière:o) Tu devrais commencer à le savoir :o)
0
Quand tu mets une instructon php entre
<?php //Code à executer ?>
l'interpreteur php sur le serveur l'execute, il ne tient pas compte de ce que tu as écrit avant dans la chaine de carctère. si tu veux executer un script au chargement ou à la fermeture tu dois l'appelé par du javascript ou du vbscript : lui sera interprété sur le client (le navigateur) qui sait si c'est onLoad ou onUnLoad....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
salut j'ai le meme probleme si quelqu'un à réussit faite signe.

par contre sa marche c'est sur car moi sa marche en partie mon code

<?php
$remote_addr = $_SERVER["REMOTE_ADDR"];
?>

<body onload="<?php
$time = time();
if(is_file("ip_connecter.txt")){
$ip_connecter = join("",file("ip_connecter.txt"));
if(!ereg("<$remote_addr>(.*)</$remote_addr>", $ip_connecter)){
ereg("<connecter>(.*)</connecter>", $ip_connecter, $reg);
$connecter = $reg[1]+1;
$file="ip_connecter.txt";
$fh = fopen($file, "a+");
fwrite($fh, "<$remote_addr>$time</$remote_addr>");
fclose($fh);
}
}
else{
$file="ip_connecter.txt";
$fh = fopen($file, "a+");
fwrite($fh, "<$remote_addr>$time</$remote_addr>");
fclose($fh);
$connecter++;
}
?>" onunload="<?php
$time = time();
if(is_file("ip_connecter.txt")){
if(is_file("ip_connecter.txt")){
$ip_connecter = join("",file("ip_connecter.txt"));
if(ereg("<$remote_addr>(.*)</$remote_addr>", $ip_connecter, $reg)){
$ip_connecter = str_replace("$reg[0]", "", $ip_connecter);
$file="ip_connecter.txt";
$fh = fopen($file, "w+");
fwrite($fh, "$ip_connecter");
fclose($fh);
}
}
}
?>">
</body>


mon problème c'est que le code onload n'est jamais exécuter, alors que le onunload oui.
Et si je les inverse, c'est l'inverse l'inserse. c'est toujours le dernier qui marche pas. j'ai teste 2 body complètement différent même problème.

je pose la question si on peut les utiliser en semple dans la même page. Simon faut faire un frameset pour chaque body
0