Debutant php

Fermé
alain - 18 mai 2001 à 13:55
 hanoub - 22 déc. 2012 à 18:58
bonjour
je debute en php et je n'arrive pas a lancer une fonction sur un unload
code:
<html>
<?php
<head>
function test()
{
echo "coucou";
}
?>
</head>
<body onUnload=test()>
</body>
</html>

si vous pouvez m'aider merci sinon merci quand m :-)
A voir également:

6 réponses

Excuse moi, mais la tu melange tout ! tu melange le javascript , le Html et bien sur le Php !!!

Lorsque tu ecrit du Php, tu te situe coté Serveur.
Ton code est interpreté cote serveur !!!!!!

Lorsque ta page reagi a un evenement Unload, tu te situe cote client, et ici, et seulement ici, tu peux executer une fonction Javascript (et non PHP) qui t'affiche un message (alert('coucou');) par exemple...

Je pense qu'il faut que tu relise (ou lise si tu ne l'a pas deja fait) a koi sert le php, comment on s'en sert et en profiter pour regarder aussi le javascript !

voila, si je peux t'aider pour autre chose, n'hesite pas !

pour ton exemple :


<html>
<head>
<?php
echo "coucou en PHP executer sur le serveur Web avant l'affichage de la page !";
?>
<script language="javascript">
function test()
{
alert('coucou en javascript sur unload !');
}
</script>
</head>
<body onUnload=test()>
</body>
</html>

0
c'est ce qu'on appelle un shoot mais pas un headsh.. voir CS :-)
Et oui c'est logique et je suis tout a fait d'accord avec toi.
Mais il n'y aurais pas un moyen de detecter que le client change de page ??
0
Slt Alain,

Aie, aie, aie tu confonds et tu mélanges du code PHP, du code Javascript et du code HTML ...

Ce n'est pas bien grave cependant ton code ne risque pas de marcher !

Il faut bien faire la distinction entre PHP et Javascript :

Le code PHP est exécuté sur le serveur où se trouve ta page HTML et donc avant qu'elle arrive sur le navigateur du client.
PHP ne sert qu'à modifier dynamiquement le contenu de la page avant son envoi au client.
Une fois que le navigateur recoit la page elle ne contient plus du tout de code PHP !

Le code Javascript lui ne sera interprété que sur le navigateur côté client donc.
Tout le code qui concerne des événements liés à la page HTML comme Onload, Onunload, OnClick ne se produit que chez le client une fois la page HTML chargée.
Le code ne peut donc pas et ne doit pas être codé en PHP mais en Javascript (ou un autre langage qui s'exécute côté client)
Par contre rien ne t'interdit de modifier dynamiquement le code JavaScript à l'aide du code PHP et pas seulement le code HTML proprement dit.

Tout le code que tu places entre les balises
<?PHP et ?> est considéré comme du code PHP.

Bien, donc ici tu as :

<?php
<head>
function test()
{
echo "coucou";
}
?>

Hors <head> n'est pas un code PHP valide ! Et pour cause c'est une balise HTML

Si tu écris :

<head>
<?php
function test()
{
echo "coucou";
}
?>

Cette fois-ci la syntaxe PHP est correcte mais ton code ne fait rien ! A part planter ensuite au niveau du onload()

En effet après exécution du code PHP voici le code qui contient ta page (le code que tu obtiendrais si tu faisais [Affichage] [Source] sous Internet Explorer)

<html>
<head>
</head>
<body onUnload=test()>
</body>
</html>

Il n'y a plus de code PHP ce qui est normal, il n'y a plus non plus la fonction test() car elle est considérée comme une fonction PHP définie par l'utilisateur : le hasard (?) veut que la syntaxe des fct soit la même en PHP qu'en JavaScript.
Mais maintenant il se produit une erreur JavaScript lors de l'appel de la fonction test() dans l'événement onunload : normal vu qu'elle n'existe pas !

En fait ds cet ex utiliser PHP ne sert à rien sauf à apprendre et c'est l'essentiel ...

Voici comment faire pour avoir une petite fenêtre d'alerte qui affiche "coucou" lorsque tu fermes la fenêtre en utilisant Javascript mais pas PHP :


<html>
<head>
<script language="JavaScript">
<!--

function test()
{
alert ( "coucou");
}

// -->
</script>
</head>
<body onUnload=test()>
</body>
</html>


Nota : les <!-- et // --> ne sont pas là pour faire joli mais pour encapsuler le code Javascript à l'intérieur d'un commentaire HTML.



Maintenant si tu veux personnaliser le message en sortie qui s'affiche avec PHP tu peux faire un mix du genre :

<html>
<head>
<script language="JavaScript">
<!--

<?php
$msg="Coucou by PHP le ".date();
?>

function test()
{
alert ("<?php echo $msg;?>");
}

// -->
</script>
</head>
<body onUnload=test()>
</body>
</html>


$msg est une variable PHP : tte les variables PHP doivent commencer par le caractère dollar.
Dans $msg on récupère entre autre la date du serveur (et pas la date du PC de l'utilisateur !) grâce à la fonction date().

Tu noteras qu'on peut mettre autant de section PHP qu'on veut
<?PHP ... ?> dans une même page et n'importe où du moment que le code à l'intérieur correspond bien à du code PHP et pas autre chose !


Voilà, j'espère avoir été assez clair et pas trop long ...

@+
Philippe
0
salut,
j'ai trouvé ta réponse concernant l'execusion du code php à la fermeture d'une page et vraiment c trées interesant ce que vous avez dit
mais moi j'ai un autre problme qui resemble à ça,je veux supprimer un dosssier au coté serveur dés qu'on ferme la page et je sais pas est ce que c'est possible ou pas
répond moi slp,c'est urgent
merci d'avance
0
Merci pour ta reponse qui ma donner une idée
pour faire exactement ce que je veut.
Est ce qu'il existe une fonction en php qui est equivalente à
window.open (en javascript) pour ouvrir l'url ds une nouvelle fenetre
Merci d'avance
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
18 mai 2001 à 16:44
Re slt

Décidemment tu y tiens à faire du Javascript avec PHP !

La réponse est NON il n'existe pas d'équivalent à window.open() ... cependant si tu veux que ton code PHP te redirige vers telle ou telle page c'est possible !

Je m'explique :

Considère la page php3 suivante :

<?php

if ($url=="1")
{
include("accueil.htm");
exit;
}

if ($url=="2")
{
include("forum.htm");
exit;
}

if ($url=="3")
{
include("etc.htm");
exit;
}


include("defaut.htm");
?>


Et bien selon la valeur de la variable PHP $url :
si $url vaut "1" alors c'est la page "accueil.htm" qui sera envoyé au client
si $url vaut "2" la page "forum.htm"
si $url vaut "3" la page "etc.htm"
si $url n'est pas défini la page "defaut.htm"



Evidemment il faut au préalable t'arranger pour donner une valeur à $url ! Cela peut se faire très facilement en passant des paramètres ou en utilisant des formulaires.
Mais comme ce n'est qu'un ex je ne sais pas ce que tu veux faire ...
Si tu veux + d'infos expose ton idée

Mais tu vois PHP c'est qd même puissant !

@+
Philippe
0

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

Posez votre question
et oui
j'avais compris l'histoire des urls mais je voulais les ouvrirs
dans une autre fenetre
En fait s'etait lors de la sortie du chat.
pour sortir je voulais ouvrir ouvrir une nouvelle fenetre
pour le logout et non l'affiche dans le nav. du client et oui si
il veut partir je vais pas lui en remetre une couche lol
Merci pour tes reponses
J'ai reussi avec ton boue de code a faire ce que je voulais
A+
0
slt
moi j'ai un autre probleme:voici un bout de mon code:

...
<script language="javascript">
function test()
{
confirm('
Êtes-vous sûr de vouloir quitter ?\n OK pour quitter, Annuler puis\n CTRL+D pour ajouter \n le site à vos favoris');
}
</script>



</head>

<body onUnload=test()> etc...
0
Et, c'est quoi ton problème ?
0
salut je suis hanoub je vais dite que tu as melange entre javascript et php
0