erreur php

Eléphant du PHP | 59 Messages

22 mai 2010, 20:47

bonjour,j'ai un erreur sur une ligne php et je n'arrive pas a réparer,pouvez vous m'aider?
merci d'avance:
quand je tape l'adresse de mon site
erreur affiché:
Parse error: syntax error, unexpected T_STRING in
voici un de code avec la lingne 5 en rouge

Code : Tout sélectionner

<?php while ($_SERVER(0,4)=="www.") [color=#0000FF] $domain=".".$_SERVER(4)substrsubstr ;[/color] $_SERVER; $license=false; $license=truelic($domain)==file_get_contents(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license")file_exists(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license"); $license=truelic($domain)==file_get_contents(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license2")file_exists(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license2"); $license=truelic($domain)==file_get_contents(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license3")file_exists(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license3"); $license=truelic($domain)==file_get_contents(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license4")file_exists(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license4"); $license=truelic($domain)==file_get_contents(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license5")file_exists(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license5"); $license=truelic($domain)==file_get_contents(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license5")file_exists(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license6"); $license=truelic($domain)==file_get_contents(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license5")file_exists(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license7"); $license=truelic($domain)==file_get_contents(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license5")file_exists(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license8"); $license=truelic($domain)==file_get_contents(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license5")file_exists(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license9"); $license=truelic($domain)==file_get_contents(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license5")file_exists(dirname("[FullPath To CurrentPhpFile] (Initial Len was: 62)")."/../config/license10"); while (!!$license) { $_SERVER; }

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 mai 2010, 22:09

Bonjour,

La ligne problématique est juste incompréhensible, et donc non rectifiable si on ne sait pas à quoi elle sert :
$domain=".".$_SERVER(4)substrsubstr ;

Adresse toi à l'auteur de ton script.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 59 Messages

22 mai 2010, 23:14

merci pour l'aide!très utile! =D>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 mai 2010, 11:32

Je suis pourtant assez d'accord avec @rthur... la syntaxe utilisée est complètement fausse et engendre inévitablement des erreurs en php. De plus la syntaxe ne correspondant à rien, il est très difficile de t'aider à la corriger sans savoir ce qu'il est sensé faire... Maintenant d'après ma boule de cristal, tu peux toujours creuser dans ce sens si tu veux débugger :

- $_SERVER est une variable super globale, pas une fonction, dès lors $_SERVER() n'existe pas.
- Cette variable contient un tableau associatif. Si tu veux tester une valeur de ce tableau, il te faut appeler l'index de ce tableau correspondant à la valeur que tu veux tester (voir la doc : http://php.net/manual/fr/reserved.variables.server.php)
- si tu veux tester une partie de la chaine pour vérifier qu'elle contient "www." il te faut utiliser la fonction substr() ou substring() ; substrsubstr ne correspond à rien
- si tu utilises une boucle while, le code qui suit s'exécutera jusqu'à ce que la condition soit remplie. Si ta condition compare deux chaines qui ne sont pas identiques, et que le code qui suit ne modifie aucune de ces deux chaines, ta boucle sera infini.
- Faire appel à une variable sans spécifier d'autre instruction ( $_SERVER; ) ne sert a rien.

Le reste de ton code n'ayant pas beaucoup plus de sens (il va lire un fichier et vérifie après seulement qu'il existe et donc qu'il peut le lire ? Il n'y a pas de séparateurs d'instructions ni de conditions, donc quelque soit le résultat trouvé il sera écrasé par les suivants ? sans parler du fait que j'ai beaucoup de mal à croire qu'un dossier nommé "[FullPath To CurrentPhpFile] (Initial Len was: 62)" existe sur ton serveur) ...

Bref, ma boule de cristal commençant à fumer, il ne va pas être possible pour moi de t'aider d'avantage à moins que tu ne nous en dise plus sur ce qu'aurait du faire ce code.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...