Comment encapsuler du Javascript dans du Php?
Fermé
francoisch
Messages postés
258
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
16 février 2015
-
12 avril 2007 à 11:15
Francoisch - 13 juin 2007 à 21:56
Francoisch - 13 juin 2007 à 21:56
A voir également:
- Comment encapsuler du Javascript dans du Php?
- Telecharger javascript - Télécharger - Langages
- Easy php - Télécharger - Divers Web & Internet
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Bouton php - Forum PHP
- Vous devez supporter le javascript et accepter les cookies pour continuer. desactivez les plugins de type adblock qui peuvent bloquer certaines parties du service merci de reessayer ulterieurement. erreur #125 - Forum Mozilla Firefox
20 réponses
bonjour
Oui, j'ai essayé de faire attention aux apostrophes et guillemets mais ça ne suffit manifestement pas.
Sinon, du Js dans du Php, ça marche, à ma connaissance.
Merci pour votre aide.
Francois
Oui, j'ai essayé de faire attention aux apostrophes et guillemets mais ça ne suffit manifestement pas.
Sinon, du Js dans du Php, ça marche, à ma connaissance.
Merci pour votre aide.
Francois
Serge_La
Messages postés
407
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
3 mars 2009
47
16 avril 2007 à 21:56
16 avril 2007 à 21:56
pourquoi n'essaies-tu pas un exemple très simple?
Oui, Serge, c'est une excellent idée.
En fait, j'y suis presque car mon code Js n'est pas bien gros:
[code]
echo("
<script type=\"text/javascript\">
<!-- debut
function resolution() {
document.location=\"<?php echo $_SERVER['PHP_SELF']; ?>?width=\"+screen.width+\"&height=\"+screen.height;
}
// fin -->
</script>
");
[/code]
code et ajouts Php y compris, comme tu le vois.
Ca ne fonctionne pas; je cherche le truc.
Merci de ton aide.
Francois
En fait, j'y suis presque car mon code Js n'est pas bien gros:
[code]
echo("
<script type=\"text/javascript\">
<!-- debut
function resolution() {
document.location=\"<?php echo $_SERVER['PHP_SELF']; ?>?width=\"+screen.width+\"&height=\"+screen.height;
}
// fin -->
</script>
");
[/code]
code et ajouts Php y compris, comme tu le vois.
Ca ne fonctionne pas; je cherche le truc.
Merci de ton aide.
Francois
Serge_La
Messages postés
407
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
3 mars 2009
47
16 avril 2007 à 22:30
16 avril 2007 à 22:30
Mais là tu mets du php dans le javascript en plus, non? Essayes avec un javascript encore plus simple comme:
Je ne crois pas que tu aies besoin de mettre phpecho dans le javascript, de toute façon.
Serge.
alert("Bonjour!");
Je ne crois pas que tu aies besoin de mettre phpecho dans le javascript, de toute façon.
Serge.
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
618
17 avril 2007 à 03:51
17 avril 2007 à 03:51
Tout à fait.
Tu ne dois pas mettre :
<?php echo $_SERVER['PHP_SELF']; ?>
Et oui tu est encore dans echo ! Don encore dans php !
il te faute mettre :
Avec echo
ou
Sans echo
Tu ne dois pas mettre :
<?php echo $_SERVER['PHP_SELF']; ?>
Et oui tu est encore dans echo ! Don encore dans php !
il te faute mettre :
Avec echo
<?php echo(" <script type=\"text/javascript\"> <!-- debut function resolution() { document.location=\"" . $_SERVER['PHP_SELF'] . "?width=\"+screen.width+\"&height=\"+screen.height; } // fin --> </script> "); ?>
ou
Sans echo
<?php //ici du code php ?> <script type=\"text/javascript\"> <!-- debut function resolution() { document.location=\"<?php echo $_SERVER['PHP_SELF']; ?>?width=\"+screen.width+\"&height=\"+screen.height; } // fin --> </script> <?php //ici du code php ?>
francoisch
>
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
18 avril 2007 à 21:53
18 avril 2007 à 21:53
bonjour s.spark
Juste pour comprendre, la formule sans Echo ne doit pas me convenir car mon module est en Php pur, sans environnement Html (Head, Body).
Je ne me vois pas fermant le Php pour exécuter du Js, je crois que ça ne marcherait pas.
Si je suis dans le vrai, il me reste tjs la formule avec Echo.
Merci de ton aide, je vais reprendre ton code et tester.
Je te tiendrai au courant.
Francois
Juste pour comprendre, la formule sans Echo ne doit pas me convenir car mon module est en Php pur, sans environnement Html (Head, Body).
Je ne me vois pas fermant le Php pour exécuter du Js, je crois que ça ne marcherait pas.
Si je suis dans le vrai, il me reste tjs la formule avec Echo.
Merci de ton aide, je vais reprendre ton code et tester.
Je te tiendrai au courant.
Francois
francoisch
>
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
18 avril 2007 à 22:05
18 avril 2007 à 22:05
bonsoir de nouveau
J'ai mis ensemble le code Js encapsulé que tu m'as corrigé avec un petit bout de code Php de test qui tente de récupérer les valeurs width et height; voici le tout:
[code]
<?php
echo(" <script type=\"text/javascript\"> <!-- debut function resolution() { document.location=\"" . $_SERVER['PHP_SELF'] . "?width=\"+screen.width+\"&height=\"+screen.height; } // fin --> </script> ");
if(!isset ($_GET['width']) and !isset ($_GET['height'])){
echo '<body onload="resolution();">';
}else{
echo '<body>';
echo 'Votre résolution est ' . $_GET['width'] . ' * ' . $_GET['height'];
}
?>
[/code]
mais la deuxième partie ne récupère pas les valeurs.
Merci de ton aide.
Francois
J'ai mis ensemble le code Js encapsulé que tu m'as corrigé avec un petit bout de code Php de test qui tente de récupérer les valeurs width et height; voici le tout:
[code]
<?php
echo(" <script type=\"text/javascript\"> <!-- debut function resolution() { document.location=\"" . $_SERVER['PHP_SELF'] . "?width=\"+screen.width+\"&height=\"+screen.height; } // fin --> </script> ");
if(!isset ($_GET['width']) and !isset ($_GET['height'])){
echo '<body onload="resolution();">';
}else{
echo '<body>';
echo 'Votre résolution est ' . $_GET['width'] . ' * ' . $_GET['height'];
}
?>
[/code]
mais la deuxième partie ne récupère pas les valeurs.
Merci de ton aide.
Francois
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Serge_La
Messages postés
407
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
3 mars 2009
47
18 avril 2007 à 22:11
18 avril 2007 à 22:11
Il y a du code javascript qui mesure la grandeur de la fenêtre aussi. Si ce n'est pas possible avec php.
Serge, merci de ta réponse
J'aurai du expliquer ce que je veux faire: récupérer en Php les dimensions de la fenêtre.
Comme ça n'existe pas en Php, je le fais en Js.
Simplement, comme j'en ai besoin en Php pur, je dois encapsuler, ce que j'essaie de faire.
En espérant que ça aide.
Si qqun a le code en Php pour faire ça, il est bienvenu.
Francois
J'aurai du expliquer ce que je veux faire: récupérer en Php les dimensions de la fenêtre.
Comme ça n'existe pas en Php, je le fais en Js.
Simplement, comme j'en ai besoin en Php pur, je dois encapsuler, ce que j'essaie de faire.
En espérant que ça aide.
Si qqun a le code en Php pour faire ça, il est bienvenu.
Francois
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
618
18 avril 2007 à 22:48
18 avril 2007 à 22:48
Le Javascript est un langage coté client alors que le php est un langage coté serveur. Tu ne peux pas exécuter du javaisscript dans du php. Le javascript est obligatoirement dans la page avec l'html.
Tu peux en javascript écrire un cookies dans lequel tu mets les information sur la résolution de l'écran, puis en php lire le cookies (mais pour ca il faut recharger la page). Tu peux conditionner la page pour lire le cookies. Du genre si le cookie n'est pas présent on fait une redirection sur la page courante, là 1ème fois grace au javascript le cookie sera écrit et au 2ème appel de la page on lit le cookie.
Mais il faut prévoir que si la personne interdit l'écriture des cookies (c'est mon cas) que le script ne tourne pas en boucle. Même chose si le javascript est désativé (le cookies n'est jamais créé).
Maintenant je me demande à quoi ca peut bien servir de connaître la résolution des gens à par faire des statistiques.
Tu peux en javascript écrire un cookies dans lequel tu mets les information sur la résolution de l'écran, puis en php lire le cookies (mais pour ca il faut recharger la page). Tu peux conditionner la page pour lire le cookies. Du genre si le cookie n'est pas présent on fait une redirection sur la page courante, là 1ème fois grace au javascript le cookie sera écrit et au 2ème appel de la page on lit le cookie.
Mais il faut prévoir que si la personne interdit l'écriture des cookies (c'est mon cas) que le script ne tourne pas en boucle. Même chose si le javascript est désativé (le cookies n'est jamais créé).
Maintenant je me demande à quoi ca peut bien servir de connaître la résolution des gens à par faire des statistiques.
bonjour s.spark et merci de ta réponse.
Pour le Php, quand on en met dans une page Html, il s'exécute en premier sur le serveur puis la page est ensuite exécutée sur le client, je crois.
Pourquoi cela ne marcherait-il pas de la même manière en Php pur, sans Html?
Je rate qqechose?
Connaitre la résolution de l'écran pour moi est important car j'en ai besoin pour dimensionner plusieurs fenêtres que je positionne entre elels et dans l'écran et que j'ouvre ensuite.
Là, si je taille mes fenêtres pour du 1280*1024 et qu'un client en 1024*768 affiche ça, ou l'inverse, le résultat ne sera pas beau.
Donc je cherche à obtenir les valeurs de width et height en Php.
Pour le cookie, aurais tu un exemple?
Par avance merci.
Francois
Pour le Php, quand on en met dans une page Html, il s'exécute en premier sur le serveur puis la page est ensuite exécutée sur le client, je crois.
Pourquoi cela ne marcherait-il pas de la même manière en Php pur, sans Html?
Je rate qqechose?
Connaitre la résolution de l'écran pour moi est important car j'en ai besoin pour dimensionner plusieurs fenêtres que je positionne entre elels et dans l'écran et que j'ouvre ensuite.
Là, si je taille mes fenêtres pour du 1280*1024 et qu'un client en 1024*768 affiche ça, ou l'inverse, le résultat ne sera pas beau.
Donc je cherche à obtenir les valeurs de width et height en Php.
Pour le cookie, aurais tu un exemple?
Par avance merci.
Francois
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
618
20 avril 2007 à 00:27
20 avril 2007 à 00:27
Le php n'ai jamais vu par le client, une fois que tu aura intégré se concept tu comprendra tous le reste.
Pour tes problème de width et height utilise des valeurs relatives, par exemple :
#menu {width: 20%;}
#container {width: 80%;}
#footer{width: 100%;}
Pour tes problème de width et height utilise des valeurs relatives, par exemple :
#menu {width: 20%;}
#container {width: 80%;}
#footer{width: 100%;}
francoisch
>
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
26 avril 2007 à 21:47
26 avril 2007 à 21:47
bonjour s.spark et merci de ta réponse.
Oui, ma compréhension est que le code Php est d'abord exécuté sur le serveur avant que la page soit transmise au Client et exécuté là.
Effectivement, le code Php n'est pas visible chez le Client.
Oui, maintenant que tu m'y fais penser, comme le Js est exécuté en dernier, il ne peut pas passer d'informations au Php qui aura alors déjà été exécuté.
Juste?
Merci.
Francois
Oui, ma compréhension est que le code Php est d'abord exécuté sur le serveur avant que la page soit transmise au Client et exécuté là.
Effectivement, le code Php n'est pas visible chez le Client.
Oui, maintenant que tu m'y fais penser, comme le Js est exécuté en dernier, il ne peut pas passer d'informations au Php qui aura alors déjà été exécuté.
Juste?
Merci.
Francois
Jacobéo
Messages postés
304
Date d'inscription
samedi 10 mars 2007
Statut
Membre
Dernière intervention
28 août 2008
79
>
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
26 avril 2007 à 22:33
26 avril 2007 à 22:33
Bonsoir à tous,
Je pense le contraire. Cela serait possible. Je dis "serait", car je ne connais rien dans ces deux langages, mais j'ai dans ma "doc" Les Cahiers du programmeur PHP cahier2 de Philippe Chaléat, un article page 58 (et suivantes) qui écrit ceci:
...La liste des valeurs va être générée selon le principe des listes que l'on génère sans filtre, à savoir que l'on génère du code JavaScript, interprêté par le navigateur pour formater la liste.
Le script PHP utilisé pour générer la liste, ..... A partir du résultat de cette requête, il génère le code JavaScript nécessaire pour formater la liste.
J'arrête ici, c'est trop à écrire. Ce livre est disponible aux Editions Yerolles sous le n°ISBN: 2-212-11089-8 Ph. Chaléat est ingénieur pour la société INFO-LOGIC et D. Charnay ingénieur au Centre de calcul à l' INPN-PP et directeur adjoint de la Communication Scientifique au CNRS.
https://www.editions-eyrolles.com/Livre/9782212110890/php-2-ateliers-web-professionnels-avec-php-mysql-et-javascript Voir Téléchargements "atelier10"
Je pense le contraire. Cela serait possible. Je dis "serait", car je ne connais rien dans ces deux langages, mais j'ai dans ma "doc" Les Cahiers du programmeur PHP cahier2 de Philippe Chaléat, un article page 58 (et suivantes) qui écrit ceci:
...La liste des valeurs va être générée selon le principe des listes que l'on génère sans filtre, à savoir que l'on génère du code JavaScript, interprêté par le navigateur pour formater la liste.
Le script PHP utilisé pour générer la liste, ..... A partir du résultat de cette requête, il génère le code JavaScript nécessaire pour formater la liste.
J'arrête ici, c'est trop à écrire. Ce livre est disponible aux Editions Yerolles sous le n°ISBN: 2-212-11089-8 Ph. Chaléat est ingénieur pour la société INFO-LOGIC et D. Charnay ingénieur au Centre de calcul à l' INPN-PP et directeur adjoint de la Communication Scientifique au CNRS.
https://www.editions-eyrolles.com/Livre/9782212110890/php-2-ateliers-web-professionnels-avec-php-mysql-et-javascript Voir Téléchargements "atelier10"
Serge_La
Messages postés
407
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
3 mars 2009
47
27 avril 2007 à 02:52
27 avril 2007 à 02:52
Faudrait savoir ce que François veut vraiment faire. Je ne vois pas l'idée de se servir d'une fonction javascript si la page n'est pas interactive.
De plus, je me demande si la résolution mesurée par le php n'est pas simplement la grandeur de l'écran du moniteur. Faut pas oublier que les gens ouvrent souvent des fenêtres plus petites que l'écran.
De plus, je me demande si la résolution mesurée par le php n'est pas simplement la grandeur de l'écran du moniteur. Faut pas oublier que les gens ouvrent souvent des fenêtres plus petites que l'écran.
bonjour
Au départ, mon besoin:
récupérer dans une page Php la résolution de l'écran de chaque visiteur,
pour présenter la page de manière adaptée à chacun.
A ma connaissance:
- en Php, il n'existe pas de variable / fonction donnant les valeurs width et height
- par contre, ça existe en Js
Voila d'où je suis parti.
J'avais donc pensé à encapsuler un peu de code Js, qui fait juste ça, dans mon Php.
Apparement, ça ne fonctionne pas; je partage les avis donnés ci dessus.
Je cherche maintenant à faire sans ces deux valeurs.
Merci à tous de votre aide.
Francois
Au départ, mon besoin:
récupérer dans une page Php la résolution de l'écran de chaque visiteur,
pour présenter la page de manière adaptée à chacun.
A ma connaissance:
- en Php, il n'existe pas de variable / fonction donnant les valeurs width et height
- par contre, ça existe en Js
Voila d'où je suis parti.
J'avais donc pensé à encapsuler un peu de code Js, qui fait juste ça, dans mon Php.
Apparement, ça ne fonctionne pas; je partage les avis donnés ci dessus.
Je cherche maintenant à faire sans ces deux valeurs.
Merci à tous de votre aide.
Francois
Serge_La
Messages postés
407
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
3 mars 2009
47
29 avril 2007 à 01:48
29 avril 2007 à 01:48
Ah, bon. Là, tout est clair.
Ce serait possible et plutôt facile de faire ce que tu dis avec une redirection de page, ou une retélécharge de la page. Le premier coup, un javascript mesure les variables hauteur et largeur de la page et appelle une page (ou la même page) avec les variables, que le php prends en charge le second coup.
Serge.
Ce serait possible et plutôt facile de faire ce que tu dis avec une redirection de page, ou une retélécharge de la page. Le premier coup, un javascript mesure les variables hauteur et largeur de la page et appelle une page (ou la même page) avec les variables, que le php prends en charge le second coup.
Serge.
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
618
29 avril 2007 à 03:13
29 avril 2007 à 03:13
C'est exactement ce que j'ai dis plus haut, sauf que je préconise l'utilisation d'un cookies pour éviter d'avoir des page longues à charger avec des refresh systématique.
Serge_La
Messages postés
407
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
3 mars 2009
47
>
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
29 avril 2007 à 07:40
29 avril 2007 à 07:40
Oui. Des cookies seraient mieux. Quoique ma suggestion ne fait pas de pages longues et les refresh ne sont pas systématiques. Enfin, ça dépend toujours de ce qu'il voulait faire.
bonjour et merci de vos réponses.
A la réflexion, utiliser un cookie semble effectivement la bonne solution.
Je n'y connais rien en cookie mais je commence à me documenter; ça a l'air assez simple.
Donc, je prévois de:
- dans ma page Html, créer un cookie en Js avec les 2 valeurs width et height récupérées comme d'hab
- dans la page Php appellée par la page Html, lire le cookie
Ca vous parait bien? manque t il qqechose?
Par avance merci de votre aide.
Francois
A la réflexion, utiliser un cookie semble effectivement la bonne solution.
Je n'y connais rien en cookie mais je commence à me documenter; ça a l'air assez simple.
Donc, je prévois de:
- dans ma page Html, créer un cookie en Js avec les 2 valeurs width et height récupérées comme d'hab
- dans la page Php appellée par la page Html, lire le cookie
Ca vous parait bien? manque t il qqechose?
Par avance merci de votre aide.
Francois
bonjour
J'ai maintenant:
- une page Html qui crée deux cookies, pour width et height
- une page Php, appellée par la page Html, qui lit les deux cookies
Mais ça ne fonctionne, la page Php n'affiche les deux valeurs, qu'après un Refesh de la page Html.
Comment puis-je provoquer un Refesh automatiquement dans la page Html?
Par avance merci de votre aide, j'y suis presque.
Francois
J'ai maintenant:
- une page Html qui crée deux cookies, pour width et height
- une page Php, appellée par la page Html, qui lit les deux cookies
Mais ça ne fonctionne, la page Php n'affiche les deux valeurs, qu'après un Refesh de la page Html.
Comment puis-je provoquer un Refesh automatiquement dans la page Html?
Par avance merci de votre aide, j'y suis presque.
Francois
Bussy14
Messages postés
45
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
4 avril 2013
5
30 avril 2007 à 23:59
30 avril 2007 à 23:59
Salut,
pour recharger ta fenetre automatiquement, c'est du javascript:
Enfin, en t'arrangeant pour éviter de la faire recharger à répétition.
- Thibaud -
pour recharger ta fenetre automatiquement, c'est du javascript:
<script language="JavaScript"> window.location.reload(); </script>
Enfin, en t'arrangeant pour éviter de la faire recharger à répétition.
- Thibaud -
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
618
1 mai 2007 à 00:27
1 mai 2007 à 00:27
En PHP ça donne ça :
Note : la le cookie est sous forme de tableau
Garde bien en tête que je Javascript et les cookies, ça se désactive. Prévois une configuration minimal par défaut si aucun choix automatique n'est faisable et éventuellement un message qui informe le visiteur que pour une navigation optimal les cookies /javascript doit être autorisé pour ce site.
<?php //---------------------------------------------------------------------- // Si on avais écrit les cookies en PHP on aurrait fais comme ça : setCookie("tonsite[width]", 1024, (time() + 31536000)); setCookie("tonsite[height]", 768, (time() + 31536000)); //---------------------------------------------------------------------- ?>
Note : la le cookie est sous forme de tableau
<?php // On récupère le lien de la page courente (attention sans les paramettres après "?") $pagecourente = $_SERVER["SCRIPT_NAME"]; // On récupère les cookies de "tonsite" $config = $_COOKIE["tonsite"]; // On supose que les cookies se nome tonsite[width] et tonsite[height] // si les 2 cookies son vide on redirige vers la page courente, attention au boucle sans fin if (empty($config[width]) AND empty($config[width])) { header("Location: $pagecourente"); } ?>
Garde bien en tête que je Javascript et les cookies, ça se désactive. Prévois une configuration minimal par défaut si aucun choix automatique n'est faisable et éventuellement un message qui informe le visiteur que pour une navigation optimal les cookies /javascript doit être autorisé pour ce site.
francoisch
Messages postés
258
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
16 février 2015
6
3 mai 2007 à 16:04
3 mai 2007 à 16:04
bonjour et merci de vos réponses.
J'ai commencé par utiliser la réponse de Thibaud.
Effectivement, en plaçant ce code dans ma page, elle n'arrive plus à se charger; comment faire pour que ce chargement ne soit fait qu'une seule fois?
Je vais essayer la réponse de s.spark.
Je vous tiendrai au courant.
Merci encore.
Francois
J'ai commencé par utiliser la réponse de Thibaud.
Effectivement, en plaçant ce code dans ma page, elle n'arrive plus à se charger; comment faire pour que ce chargement ne soit fait qu'une seule fois?
Je vais essayer la réponse de s.spark.
Je vous tiendrai au courant.
Merci encore.
Francois
francoisch
Messages postés
258
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
16 février 2015
6
3 mai 2007 à 18:53
3 mai 2007 à 18:53
bonjour
J'ai essayé ta réponse, s.spark, mais j'ai des erreurs, il doit me manquer des billes; voila:
J'ai fait deux pages:
- proto72.php
- dans Body, je met du Javascript pour obtenir width et height
- ensuite je met le code avec les 2 setcookie
- proto72a.php
- je met l'autre morceau de code
J'ai dû faire une / des erreurs car à l'exécution, j'ai des injures: Warning: Cannot modify header information - headers already sent by (output started at /mnt/141/sda/1/6/fcproto/proto72.php:7) in /mnt/141/sda/1/6/fcproto/proto72.php on line 17
Manifestement, Php n'aime pas qqechose.
En cherchant, je voyais une leçon Php qui dit que Setcookie doit être avant tout ordre Html; si c'est vrai, comment faire pour obtenir les valeurs de Width et Height à mettre dans le cookie?
Tu vois, il me manque des billes; je peux ajouter le code dans ce forum si ça peut aider mais je n'ai pas fait de fantaisie.
Merci par avance de ton aide.
Francois
J'ai essayé ta réponse, s.spark, mais j'ai des erreurs, il doit me manquer des billes; voila:
J'ai fait deux pages:
- proto72.php
- dans Body, je met du Javascript pour obtenir width et height
- ensuite je met le code avec les 2 setcookie
- proto72a.php
- je met l'autre morceau de code
J'ai dû faire une / des erreurs car à l'exécution, j'ai des injures: Warning: Cannot modify header information - headers already sent by (output started at /mnt/141/sda/1/6/fcproto/proto72.php:7) in /mnt/141/sda/1/6/fcproto/proto72.php on line 17
Manifestement, Php n'aime pas qqechose.
En cherchant, je voyais une leçon Php qui dit que Setcookie doit être avant tout ordre Html; si c'est vrai, comment faire pour obtenir les valeurs de Width et Height à mettre dans le cookie?
Tu vois, il me manque des billes; je peux ajouter le code dans ce forum si ça peut aider mais je n'ai pas fait de fantaisie.
Merci par avance de ton aide.
Francois
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
618
4 mai 2007 à 22:22
4 mai 2007 à 22:22
Le code que je t'ai passé doit être placé tout en haut. Sans tes pages de code je ne peut rien dire.
francoisch
Messages postés
258
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
16 février 2015
6
6 mai 2007 à 14:15
6 mai 2007 à 14:15
bonjour s.spark
Voici le premier de mes 2 modules, en entier:
[code]
<html>
<head>
</head>
<body>
<!-- initialiser les variables Width et Height -->
<script type="text/javascript" language="JavaScript">
<!--
var width = screen.width;
var height = screen.height;
//-->
</script>
<?php
//----------------------------------------------------------------------
// Si on avait écrit les cookies en PHP on aurrait fait comme ça :
setCookie("tonsite[width]", 1024, (time() + 31536000));
setCookie("tonsite[height]", 768, (time() + 31536000));
//----------------------------------------------------------------------
include ("proto72a.php");
?>
</body>
</html>
[/code]
et l'autre:
[code]
<?php
// On récupère le lien de la page courante (attention sans les paramettres après "?")
$pagecourante = $_SERVER["SCRIPT_NAME"];
// On récupère les cookies de "tonsite"
$config = $_COOKIE["tonsite"];
// On suppose que les cookies se nome tonsite[width] et tonsite[height]
// si les 2 cookies son vide on redirige vers la page courente, attention au boucle sans fin
if (empty($config[width]) AND empty($config[height]))
{
header("Location: $pagecourante");
}
echo $width."<br>";
echo $height."<br>";
?>
[/code]
Merci encore de ton aide.
Francois
Voici le premier de mes 2 modules, en entier:
[code]
<html>
<head>
</head>
<body>
<!-- initialiser les variables Width et Height -->
<script type="text/javascript" language="JavaScript">
<!--
var width = screen.width;
var height = screen.height;
//-->
</script>
<?php
//----------------------------------------------------------------------
// Si on avait écrit les cookies en PHP on aurrait fait comme ça :
setCookie("tonsite[width]", 1024, (time() + 31536000));
setCookie("tonsite[height]", 768, (time() + 31536000));
//----------------------------------------------------------------------
include ("proto72a.php");
?>
</body>
</html>
[/code]
et l'autre:
[code]
<?php
// On récupère le lien de la page courante (attention sans les paramettres après "?")
$pagecourante = $_SERVER["SCRIPT_NAME"];
// On récupère les cookies de "tonsite"
$config = $_COOKIE["tonsite"];
// On suppose que les cookies se nome tonsite[width] et tonsite[height]
// si les 2 cookies son vide on redirige vers la page courente, attention au boucle sans fin
if (empty($config[width]) AND empty($config[height]))
{
header("Location: $pagecourante");
}
echo $width."<br>";
echo $height."<br>";
?>
[/code]
Merci encore de ton aide.
Francois
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
618
9 mai 2007 à 14:06
9 mai 2007 à 14:06
Tu n'as pas retravaillé le code, ça ne peut pas fonctionne comme ça.
Le cookies doit être écrit en Javascript, le code PHP que je t'ai donné n'était là qu'a titre d'exemple.
RIEN ne doit être affiché avant une modification de header. Il donc c'est nomarl comme je te l'ai dis précédament que tu ai un message d'erreur.
Mais, mais, mais, ... l'utilisation de header("Location: $pagecourante"); est une erreur de ma par.
Il faut que redirige vers la page courent en Javascript :
si le cookies n'existe pas on le crée puis on redirige vers la page courante s'il existe fin du JS.
Donc au final PHP ne fera que lire le cookies et rien d'autre.
Le cookies doit être écrit en Javascript, le code PHP que je t'ai donné n'était là qu'a titre d'exemple.
RIEN ne doit être affiché avant une modification de header. Il donc c'est nomarl comme je te l'ai dis précédament que tu ai un message d'erreur.
Mais, mais, mais, ... l'utilisation de header("Location: $pagecourante"); est une erreur de ma par.
Il faut que redirige vers la page courent en Javascript :
si le cookies n'existe pas on le crée puis on redirige vers la page courante s'il existe fin du JS.
Donc au final PHP ne fera que lire le cookies et rien d'autre.
bonsoir s.spark
Tu avais compris que je n'avais pas compris; voici quelque chose de mieux, je crois, avec un petit travail supplémentaire:
------------------le premier module ---------------------------
<html>
<head>
<script type="text/javascript" language="JavaScript">
<!--
function EcrireCookie(nom, valeur)
{
var argv=EcrireCookie.arguments;
var argc=EcrireCookie.arguments.length;
var expires=(argc > 2) ? argv[2] : null;
var path=(argc > 3) ? argv[3] : null;
var domain=(argc > 4) ? argv[4] : null;
var secure=(argc > 5) ? argv[5] : false;
document.cookie=nom+"="+escape(valeur)+
((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
((path==null) ? "" : ("; path="+path))+
((domain==null) ? "" : ("; domain="+domain))+
((secure==true) ? "; secure" : "");
}
//-->
</script>
</head>
<body>
<p>Avant.</p>
<script type="text/javascript" language="JavaScript">
<!--
var width = screen.width;
var height = screen.height;
EcrireCookie("width", width);
EcrireCookie("height", height)
//-->
</script>
<?php
include ("proto72a.php");
?>
<p>Après.</p>
</body>
</html>
-------------------------------------------------------------------
------------------le deuxième module ---------------------------
<?php
echo "Avant2."."<br>";
$width= $_COOKIE["width"];
$height= $_COOKIE["height"];
echo "Width: ".$width."<br>";
echo "Height: ".$height."<br>";
echo "Après2."."<br>";
?>
-------------------------------------------------------------------
Tout ça m'affiche:
-------------------------------------------------------------------
Avant.
Avant2.
Width: 1280
Height: 1024
Après2.
Après
-------------------------------------------------------------------
C'est rustique mais ça a l'air de marcher; simplement, je ne prend pas en compte les cas d'erreur, que je ne connais pas d'ailleurs.
Quels commentaires as tu?
Par avance merci.
Francois
Tu avais compris que je n'avais pas compris; voici quelque chose de mieux, je crois, avec un petit travail supplémentaire:
------------------le premier module ---------------------------
<html>
<head>
<script type="text/javascript" language="JavaScript">
<!--
function EcrireCookie(nom, valeur)
{
var argv=EcrireCookie.arguments;
var argc=EcrireCookie.arguments.length;
var expires=(argc > 2) ? argv[2] : null;
var path=(argc > 3) ? argv[3] : null;
var domain=(argc > 4) ? argv[4] : null;
var secure=(argc > 5) ? argv[5] : false;
document.cookie=nom+"="+escape(valeur)+
((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
((path==null) ? "" : ("; path="+path))+
((domain==null) ? "" : ("; domain="+domain))+
((secure==true) ? "; secure" : "");
}
//-->
</script>
</head>
<body>
<p>Avant.</p>
<script type="text/javascript" language="JavaScript">
<!--
var width = screen.width;
var height = screen.height;
EcrireCookie("width", width);
EcrireCookie("height", height)
//-->
</script>
<?php
include ("proto72a.php");
?>
<p>Après.</p>
</body>
</html>
-------------------------------------------------------------------
------------------le deuxième module ---------------------------
<?php
echo "Avant2."."<br>";
$width= $_COOKIE["width"];
$height= $_COOKIE["height"];
echo "Width: ".$width."<br>";
echo "Height: ".$height."<br>";
echo "Après2."."<br>";
?>
-------------------------------------------------------------------
Tout ça m'affiche:
-------------------------------------------------------------------
Avant.
Avant2.
Width: 1280
Height: 1024
Après2.
Après
-------------------------------------------------------------------
C'est rustique mais ça a l'air de marcher; simplement, je ne prend pas en compte les cas d'erreur, que je ne connais pas d'ailleurs.
Quels commentaires as tu?
Par avance merci.
Francois
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
618
>
francoisch
19 mai 2007 à 14:48
19 mai 2007 à 14:48
Voilà une idée comme une autre (merci d'utiliser la balise code pour afficher du code) :
proto72a.php
Pour compléter le code tu peux en Javascript faire une direction vers la page courante si les cookies n'existe pas.
Pour éviter que le script tourne en boucle si l'écriture des cookies est interdit tu dois tester si tu peut les écrire ou non.
Tu peux aussi mettre un noscript, si le Javascript est désactiver, tu peut conseiller de l'activer pour une utilisation optima de ton site.
<html> <head> <script type="text/javascript" language="JavaScript"> <!-- function EcrireCookie(nom, valeur) { var argv=EcrireCookie.arguments; var argc=EcrireCookie.arguments.length; var expires=(argc > 2) ? argv[2] : null; var path=(argc > 3) ? argv[3] : null; var domain=(argc > 4) ? argv[4] : null; var secure=(argc > 5) ? argv[5] : false; document.cookie=nom+"="+escape(valeur)+ ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+ ((path==null) ? "" : ("; path="+path))+ ((domain==null) ? "" : ("; domain="+domain))+ ((secure==true) ? "; secure" : ""); } //--> </script> </head> <body> <script type="text/javascript" language="JavaScript"> <!-- var width = screen.width; var height = screen.height; EcrireCookie("width", width); EcrireCookie("height", height) //--> </script> <?php include ("proto72a.php"); ?> </body> </html>
proto72a.php
<?php // On défini une taille par défaut $width=800; $height=600; // si les 2 cookies existe on défini les variables if (!empty($_COOKIE["width"]) AND !empty($_COOKIE["height"])) { $width=$_COOKIE["width"]; $height=$_COOKIE["height"]; } // Les variable on été défini echo "Width : ".$width."<br>"; echo "Height : ".$height."<br>"; ?>
Pour compléter le code tu peux en Javascript faire une direction vers la page courante si les cookies n'existe pas.
Pour éviter que le script tourne en boucle si l'écriture des cookies est interdit tu dois tester si tu peut les écrire ou non.
Tu peux aussi mettre un noscript, si le Javascript est désactiver, tu peut conseiller de l'activer pour une utilisation optima de ton site.
<noscript> <p>Pour une utilisation optimal de notre site nous vous conseillons d'activer le Javascript</p> </noscript>
bonjour
Juste une question: ces deux cookies, width et height, doivent avoir été écris sur mon disque dur.
Je ne les trouve pas, sur aucun disque.
Une idée?
Merci.
Francois
Juste une question: ces deux cookies, width et height, doivent avoir été écris sur mon disque dur.
Je ne les trouve pas, sur aucun disque.
Une idée?
Merci.
Francois
s.spark
Messages postés
2485
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
618
19 mai 2007 à 14:51
19 mai 2007 à 14:51
Sous firefox on peut afficher les cookies via le menu outil.
Sinon je crois que Internet explorer les place là :
C:\Documents and Settings\[pseudo]\Cookies\
Sinon je crois que Internet explorer les place là :
C:\Documents and Settings\[pseudo]\Cookies\
bonjour
J'ai été occupé ailleurs un moment mais je reviens en ligne pour vous remercier d'abord et dire que je vais mettre en oeuvre vos conseils.
Merrci donc de vos réponses.
Francois
J'ai été occupé ailleurs un moment mais je reviens en ligne pour vous remercier d'abord et dire que je vais mettre en oeuvre vos conseils.
Merrci donc de vos réponses.
Francois
L'exécution de code javascript ne devrait pas poser de problèmes.
Il faut cependant faire attention aux guillemets :
$codejavascript = '<script type="text/javascript">document.write("Bonjour");</script>';
echo $codejavascript;
Il faut cependant faire attention aux guillemets :
$codejavascript = '<script type="text/javascript">document.write("Bonjour");</script>';
echo $codejavascript;
nassdak
Messages postés
61
Date d'inscription
jeudi 26 octobre 2006
Statut
Membre
Dernière intervention
8 juin 2007
23
12 avril 2007 à 11:27
12 avril 2007 à 11:27
Salut!
C'est assez vague comme problème.
Mais ce qui est sûr, c'est que php est un langage côté serveur et javascript côté client. Donc je ne suis pas sûr que tu puisse faire ce que tu veux...
C'est assez vague comme problème.
Mais ce qui est sûr, c'est que php est un langage côté serveur et javascript côté client. Donc je ne suis pas sûr que tu puisse faire ce que tu veux...