Page 1 sur 1

Error: syntax error, unexpected T_IS_SMALLER_OR_EQUAL

Posté : 23 oct. 2013, 15:19
par sekiryou31
Bonjour,

Je tente de changer le chargement de pages CSS en fonction de la définition de l'utilisateur. Cependant, je suis fasse à une erreur Php que je n'arrive pas à résoudre, mon code me semble correct pourtant :? :

Voici les erreurs:

1)
Fatal Error

Error: syntax error, unexpected T_IS_SMALLER_OR_EQUAL

Cela vient apparemment de la ligne : if($_GET['Largeur']) <= 800)

2)
Undefined variable: PHP_SELF

Cette erreur s'affiche 5 seconde puis disparait pour charger le site. Elle n'est donc pas gênante, mais bien visible...


Voici le code:

Code : Tout sélectionner

<script language="Javascript"> <!-- document.write(screen.width+'x'+screen.height) //--> </script> <? if(!isset($_GET['r'])) { echo "<script language=\"JavaScript\"> <!-- document.location=\"$PHP_SELF?r=1&Largeur=\"+screen.width+\"&Hauteur=\"+screen.height; //--> </script>"; } else { // Code à afficher en cas de détection de la résolution d'affichage if(isset($_GET['Largeur']) && isset($_GET['Hauteur'])) { // Résolution détectée } else { // Résolution non détectée } } ?> <?php if(isset($_GET['Largeur'])) { if($_GET['Largeur']) <= 800){ echo $this->Html->css("custom2"); } else if ($_GET['Largeur']) >= 900){ echo $this->Html->css("custom"); } } ?>
Merci d'avance pour vos réponses,

Sekiryou

Re: Error: syntax error, unexpected T_IS_SMALLER_OR_EQUAL

Posté : 23 oct. 2013, 16:11
par blof
Bonjour,

il me semble qu'il y ait une parenthèse de trop dans if($_GET['Largeur']) <= 800)
=> if($_GET['Largeur'] <= 800)

Pareil pour if ($_GET['Largeur']) >= 900)

Re: Error: syntax error, unexpected T_IS_SMALLER_OR_EQUAL

Posté : 23 oct. 2013, 16:18
par sekiryou31
Merci beaucoup, cela fonctionne!

Par contre j'ai toujours l'erreur:

variable undefined: PHP_SELF

Sauriez vous à comment je pourrais arrêter de faire apparaitre ce message avant le chargement du site?

Re: Error: syntax error, unexpected T_IS_SMALLER_OR_EQUAL

Posté : 23 oct. 2013, 16:41
par blof
C'est parce que $PHP_SELF n'existe pas (une histoire de register_globals à off dans le php.ini)
Remplace le par $_SERVER['PHP_SELF']

echo '<script language="JavaScript">
<!--
document.location="'.$_SERVER['PHP_SELF'].'?r=1&Largeur="+screen.width+"&Hauteur="+screen.height;
//-->
</script>';

Re: Error: syntax error, unexpected T_IS_SMALLER_OR_EQUAL

Posté : 23 oct. 2013, 17:48
par sekiryou31
Avec votre ligne, j'obtiens le message d'erreur suivant:

Error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'

Comment faire :/

Re: Error: syntax error, unexpected T_IS_SMALLER_OR_EQUAL

Posté : 23 oct. 2013, 17:51
par xTG
Deux correctifs sur la portion de code concernée :
<?php // les short_tags sont dépréciés et pourraient ne pas être interprétés sur certaines configuration de serveur
if(!isset($_GET['r']))
{
echo "<script language=\"JavaScript\">
<!--
document.location=\"{$_SERVER['PHP_SELF']}?r=1&Largeur=\"+screen.width+\"&Hauteur=\"+screen.height;
//-->
</script>";

Re: Error: syntax error, unexpected T_IS_SMALLER_OR_EQUAL

Posté : 23 oct. 2013, 17:53
par sekiryou31
Autant pour moi c'est parfait, le script fonctionne :)

Merci encore pour votre aide! :D

Sekiryou

Re: Error: syntax error, unexpected T_IS_SMALLER_OR_EQUAL

Posté : 23 oct. 2013, 19:52
par sirakawa
Au passage, il ne faut pas miser sur register_globals
Cette fonctionnalité est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.
depuis:
http://www.php.net/manual/fr/security.globals.php