Probleme affichage image:php et variable taille ecran

Résolu/Fermé
mont_dani Messages postés 232 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 7 mai 2024 - 21 juil. 2022 à 17:51
yg_be Messages postés 22980 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 juillet 2024 - 23 juil. 2022 à 20:11

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.

A voir également:

6 réponses

jordane45 Messages postés 38221 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 juillet 2024 4 682
21 juil. 2022 à 18:28

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...


mont_dani Messages postés 232 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 7 mai 2024
Modifié le 22 juil. 2022 à 14:50

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?

jordane45 Messages postés 38221 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 juillet 2024 4 682
22 juil. 2022 à 14:54

Commence par me mettre que le domaine et pas l'URL il ne faut pas confondre les deux...

Et pour le var_dump je t'ai demandé la variable cookie et pas une sous variable à l'intérieur

0
jordane45 Messages postés 38221 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 juillet 2024 4 682 > jordane45 Messages postés 38221 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 juillet 2024
22 juil. 2022 à 14:55

En plus il te manque une virgule et tu as inversé l'ordre des variables

0
jordane45 Messages postés 38221 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 juillet 2024 4 682 > jordane45 Messages postés 38221 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 juillet 2024
22 juil. 2022 à 14:59

Ah.. et pour finir, vu que tu fais de l'ajax, il serait bien de regarder dans la console de ton navigateur si rien ne s'affiche ( à noter qu'il est préférable d'utiiliser le navigateur FireFox et de bien penser à éctiver le debugage du XHR )

0
mont_dani Messages postés 232 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 7 mai 2024
22 juil. 2022 à 15:38

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.

jordane45 Messages postés 38221 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 juillet 2024 4 682
22 juil. 2022 à 17:00

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

0
mont_dani Messages postés 232 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 7 mai 2024
23 juil. 2022 à 08:40

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) { }

jordane45 Messages postés 38221 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 juillet 2024 4 682
23 juil. 2022 à 09:37

Là... oui.. tu as bien les virgules... Pas dans le code posté précédemment..

Par contre.. tu n'as pas placé le domaine dans le bon ordre .. il se place APRES le parh.. pas avant..

0
mont_dani Messages postés 232 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 7 mai 2024 > jordane45 Messages postés 38221 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 juillet 2024
23 juil. 2022 à 10:15

Ouf enfin pour la virgule...

en mettant le nom domaine après le path

setcookie("res_width", $_COOKIE['res_width'], time() + $cookietime,  "/", "lenergie-vive.com");
    setcookie("res_height", $_COOKIE['res_height'], time() + $cookietime, "/",  "lenergie-vive.com");

ca ne change rien

0

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

Posez votre question
yg_be Messages postés 22980 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 juillet 2024 1 495
23 juil. 2022 à 09:43

bonjour,

as tu testé ta page resscreen.php ?

mont_dani Messages postés 232 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 7 mai 2024
23 juil. 2022 à 10:28

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 
*/

0
mont_dani Messages postés 232 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 7 mai 2024
23 juil. 2022 à 17:36

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?

yg_be Messages postés 22980 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 juillet 2024 1 495
23 juil. 2022 à 18:47

Je pense que, dans le fichier resscreen.js, il faut changer la ligne 33:

Xhr_ResScreen('resscreen.php?width='+ window.innerWidth +'&height='+ window.innerHeight );
0
yg_be Messages postés 22980 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 juillet 2024 1 495
23 juil. 2022 à 20:11

Evidemment, comme la fenêtre du navigateur peut changer de taille à tout moment, tu voudras probablement faire appel plus souvent à "resscreen.js".
Je me demande s'il n'existe pas de meilleures méthodes pour adapter les images à la taille de la fenêtre du navigateur.

0