Probleme affichage image:php et variable taille ecran

Résolu
mont_dani Messages postés 232 Date d'inscription   Statut Membre Dernière intervention   -  
yg_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.

A voir également:

6 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 

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


0
mont_dani Messages postés 232 Date d'inscription   Statut Membre Dernière intervention  
 

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?

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 

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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

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

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

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   Statut Membre Dernière intervention  
 

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.

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 

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   Statut Membre Dernière intervention  
 

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

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 

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   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

bonjour,

as tu testé ta page resscreen.php ?

0
mont_dani Messages postés 232 Date d'inscription   Statut Membre Dernière intervention  
 

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   Statut Membre Dernière intervention  
 

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?

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 

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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 

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