si mon script php tourne dans le vide...
Non, il ne tourne pas dans le vide. Je dirais qu'il est plutôt mal utilisé.
Je t'invite à lire le manuel php, et essayer de faire en premier lieu des tutoriaux plus simples.
merci de m'avoir répondu aussi vite [...]
Tout en attendant que quelqu'un me réponde sur le post
Tu attends quoi comme réponse exactement ?
Le tutorial est très bien expliqué, je ne vois pas pourquoi tu veux essayer de chercher midi à quatorze heures pour faire exactement la même chose.
Je vais décomposer plus simplement ce tuto pour que tu comprennes mieux.
1. Le visiteur fait une requête vers le serveur, c'est-à-dire l'ordinateur ou sont stockés tes fichiers php. Il exécute ces fichiers php pour renvoyer au visiteur un code source HTML généré dynamiquement. Autrement dit, le visiteur ne va recevoir aucun code php sur son navigateur (d'ailleurs, tu peux le constater en affichant le code source de ta page dans le navigateur - CTRL + U sous Firefox). Il recoit donc un code HTML statique en fonction de ton code php,qui le génère à chaque appel ou rafraichissement de la page (F5).
2. Le navigateur du visiteur va interpréter ce code statique (qui a été généré par PHP sur le serveur).
Si ce code appelle du javascript, le navigateur va utiliser son moteur javascript pour l'éxécuter.
Le php ayant déjà été éxecuté, il n'y donc aucune collaboration directe entre php et javascript (outre la transmission de variables par formulaire ou redirection - donc à condition donc de changer de page).
En l'occurence ici, le visiteur qui vient sur ton site arrive sur "
www.site.fr/index.php"
Le php analyse l'url demandée, et voit qu'il n'y a pas de de variables GET (si il y en avaient l'url serait du type index.php?height=800&width=600 par ex)
Le php renvoie donc un code HTML avec <body onload="resolution()">, comme codé dans cettre structure conditionnelle. Une structure conditionnelle est le type de structure qui permet d'éxécuter différentes instructions selon les paramètres que nous lui indiquons. Dans ce tuto, cette "structure" est :
Code : Tout sélectionner
if(!isset($_GET['width']) and !isset($_GET['height'])){ // Si des variables GET sont présentes
echo '<body onload="resolution();">'; // Renvoyer cette balise html qui appelera la fonction javascript
}else{ // Sinon, donc si aucune variables GET n'est présente, soit l'arrivée sur le site
echo '<body>'; // renvoyer cette balise qui ne fera pas appel à la fonction javascript
echo 'Votre résolution est ' . $_GET['width'] . ' * ' . $_GET['height']; // Afficher la résolution
} // Fin de la ~"condition"
Tu peux regarder
ici dans le manuel php si tu ne comprends pas bien cette structure.
Dans notre cas, il n'ya pas de variables GET, donc le code qui nous est renvoyé contient <body onload="resolution()">. Au chargement de la page, le navigateur va donc exécuter la fonction javascript résolution() qui nous redirigera vers la page actuelle, mais cette fois munie de variables GET.
3. Nous chargeons à nouveau la page suite à la redirection depuis javascript. Un nouvelle requête est donc envoyée au serveur, cette fois-ci avec l'url "index.php?height=...".
Le code php renverra donc cette fois-ci lorsqu'il rencontre notre structure conditionnelle <body> et pas <body onload="resolution()">, donc la fonction javascript sera bien présente dans le code mais pas appelée, donc pas exécutée par le navigateur du visiteur lorsque la page sera chargée.
Après, libre à toi de te servir de tes variables $_GET['height'] et $_GET['width'] pour faire autre chose que de les afficher (fonction echo() ). Mais attention de bien vérifier qu'elles existent (fonction isset($variable) qui renvoie 1 ou true si la variable est définie, et 0 ou false sinon). Tu peux te passer de cette vérification dans la structure conditionnelle, car une portion de code sera exécuté si les variables sont là, et un autre sinon. Tu sais donc dans quel cas de figure tu te trouves lorsque tu rentres ton code dans les accolades { }.
Maintenant que tu as compris ça, tu peux afficher un css différent selon les variables GET de résolution transmises,
au lieu de simpelemnt afficher "Votre résolution est ...".