Probleme affichage image:php et variable taille ecran
Résoluyg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
bonjour.
j'ai creer ne image.php en utilisant cookies 8script récuperer sur le net) pour utiliser la taille/définition de l'écran.
en local cela fonctonne très bien, mais sur la web l'image:php ne s'affiche pas. je ne récupère pas les ht et lg avec les cookies.
code de mon image
<?php if(isset($_COOKIE['res_height']) ||($_COOKIE['res_width'])){ header ("Content-type: image/png"); $height = $_COOKIE['res_height']; $width = $_COOKIE['res_width']; $image = imagecreate($width, $height); //LES COULEURS $noir = imagecolorallocate($image, 0, 0, 0); $blanc = imagecolorallocate ($image, 255, 255, 255); $vert = imagecolorallocate ($image, 11, 226, 37); $violet = imagecolorallocate ($image, 217, 22, 162); $rose = imagecolorallocate ($image, 217, 22, 162); $text = "CECI EST UN TEST"; //lES POINTS DU RECTANGLE DU FOND BLANC $x1 = 0; $y1 = 0; //en haut a gauche X altura y ancho $x2 =$width; $y2 = $height; // en bas a droite ImageFilledRectangle ($image, $x1, $y1, $x2, $y2, $blanc); //lES POINTS DU RECTANGLE DU BAS VERT $x1 =000; $y1 =650; //en haut a gauche $x2 = $width; $y2 = $height; // en bas a droite ImageFilledRectangle ($image, $x1, $y1, $x2, $y2, $vert, ); // POUR METTRE UN TEXTE //imagestring($image, 4, 35, 15, $text, $noir); //POUR LE TRIANGLE VIOLET $points = array(0, 0, 0, $height, 120, $height); // 1,2 en haut a gauche - 3, 4 en bas a gauche - 5, 6 en bas a droite ImageFilledPolygon ($image, $points, 3, $violet); //imagettftext($image, 150, 100, 100, 200, $noir, $font, $text); imagepng($image); } ?>
fichier resscreen.js
// @author Cr@zy // @version 1.0 // @copyright 2009 @ crazyws.fr function Xhr_ResScreen(file){ if( window.XMLHttpRequest ){ xhr = new XMLHttpRequest(); if ( xhr.overrideMimeType ) xhr.overrideMimeType('text/html; charset=ISO-8859-1'); } else { if ( window.ActiveXObject ){ try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest."); } } } } if( (new RegExp("[?]", "gi")).test(file) ){ xhr.open("GET", file + '&rand=' + Math.random(), true); } else { xhr.open("GET", file + '?rand=' + Math.random(), true); } xhr.setRequestHeader("Content-type", "charset=ISO-8859-1"); xhr.send(null); } Xhr_ResScreen('resscreen.php?width='+screen.width+'&height='+screen.height);
fichier resscreen.php
<?php
/**
* @author Cr@zy
* @version 1.0
* @copyright 2009 @ crazyws.fr
*/
// Durée de vie du cookie (secondes)
$cookietime = 3600;
// Récupération de la résolution de l'utilisateur
$width = ( isset($_GET['width']) && is_numeric($_GET['width']) ) ? intval($_GET['width']) : '';
$height = ( isset($_GET['height']) && is_numeric($_GET['height']) ) ? intval($_GET['height']) : '';
if( !empty($width) && !empty($height) ){
$_COOKIE['res_width'] = $width;
$_COOKIE['res_height'] = $height;
setcookie("res_width", $_COOKIE['res_width'], time() + $cookietime, '/');
setcookie("res_height", $_COOKIE['res_height'], time() + $cookietime, '/');
}
?>
et le fichier incluant l'image
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <link rel="stylesheet" type="text/css" href="css/style.css"> <script type="text/javascript" src=""></script> </head> <body> <img src="" > <!--<img src="" id="rect_vert"> <img src="" id="triangle_violet">--> <?php include ("entete.php"); include ("menu.php"); ?> </body> </html>
Vous pouyvez voir le résultat ici https://lenergie-vive.com/lev/lev_2/vide.php
Quelqu'un peut il me dire pourquoi cela ne fonctionne pas sur la web et comment résoudre le problème?
Par avance je vous remercie de votre aide.
- Probleme affichage image:php et variable taille ecran
- Image iso - Guide
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
- Reduire taille image - Guide
6 réponses
Bonjour,
Essaye de renseigner le domaine dans la fonction setcookie
https://www.php.net/manual/fr/function.setcookie.php
N'hésites pas non plus à faire un var_dump de la variable $_COOKIE histoire de voir ce qu'elle contient...
Bonjour Jordane.
Merci pour ta réponse.
J'ai ajouter le nom de mon site ainsi dans le setcookies
setcookie("res_width", $_COOKIE['res_width'], time() + $cookietime, "https://lenergie-vive.com" '/'); setcookie("res_height", $_COOKIE['res_height'], time() + $cookietime, "https://lenergie-vive.com" '/');
Et var:_dump($_COOKIE['res_width']) renvoit NULL et en local
C:\wamp64\www\lenergie-vive\lev\lev_2\vide.php:10:string '774' (length=3)
Le transfert des données ne se fait pas. Je ne sais pas ou est le problème. Aurais-tu une idée?
nom de domaine corrigé
setcookie("res_width", $_COOKIE['res_width'], time() + $cookietime, "www.lenergie-vive.com" '/'); setcookie("res_height", $_COOKIE['res_height'], time() + $cookietime, "www.lenergie-vive.com" '/');}
Pour la variable cookies j'ai des doutes sur ce que j'ai fait:
<?php var_dump($cookies);?> ==> ceci est-il correct?
J'ai corriger l'inversion des variables mais je ne voit pas ou il me manque une virgule.
et pour finir Dans la console XHR rien n'apparait.
Alors non tu n'as pas corrigé le domaine et en ce qui concerne la virgule tu ne l'as toujours pas mise
Il te suffit pourtant de regarder les exemples qui se trouvent dans le lien que je t'ai donné.
Et en ce qui concerne le var_dump.. le nom de la variable n'est pas bon... Il faut le faire sur la variable $_COOKIE
Oups pour le nom du domaine.==> corrigé
Pour la virgule, je suis désolé mais je ne vois pas ou est la difference entre
setcookie("res_width", $_COOKIE['res_width'], time() + $cookietime, "lenergie-vive.com", '/' );
setcookie("res_height", $_COOKIE['res_height'], time() + $cookietime, "lenergie-vive.com", '/' );
et l exemple
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
var_dum donne array(0) { }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionbonjour,
as tu testé ta page resscreen.php ?
solutionner. MERCIIIIIII
Dans l'entête de resscreen.php
/** <== IL Y AVIAT UN ASTERISQUE DE TROP
* @author Cr@zy
* @version 1.0
* @copyright 2009 @ crazyws.fr
*/
Un petit problème supplémentaire: Mon image n'est pas adapter a la dimension de la fenetre du navigateur
Comment puis-je recuperer la taille de la fenêtre du navigaeur au lieu d ela taille de l'ecran dans le fichier resscreen.php?