Bonsoir,
ce code :provoque cette erreur :Code:<?php echo htmlentities(('---@---'));?>
Quelle est la solution ?Citation:
Parse error: syntax error, unexpected '@' in /homepages/18/d246623212/htdocs/test/envoyerunmailenp/index.php on line 128
Version imprimable
Bonsoir,
ce code :provoque cette erreur :Code:<?php echo htmlentities(('---@---'));?>
Quelle est la solution ?Citation:
Parse error: syntax error, unexpected '@' in /homepages/18/d246623212/htdocs/test/envoyerunmailenp/index.php on line 128
Bonsoir, mystère car ça fonctionne sans erreur ici (PHP5 avec E_ALL & ~E_NOTICE);
Ca serait mieux pourtant sans les double parenthèses.
Jetez un oeil juste avant la ligne 128.
Pour tester, j'ai créé un fichier test.php avec une gestion des erreurs (ce qui n'existait pas avant) :
etCode:
1
2
3
4
5 <?php ini_set('display_errors', 'on'); ini_set('error_reporting', E_ALL & ~E_NOTICE); ini_set('output_buffering', 'off'); echo htmlentities('if (document.formulaire.email.value.indexOf('@') == -1) alert("Ce n\'est pas une adresse electronique, verifiez la svp"); {');?><br/>
...???Citation:
Parse error: syntax error, unexpected '@' in /homepages/18/d246623212/htdocs/test/envoyerunmailenp/test.php on line 5
Ah alors vous voyez ligne 5 il y a une chaîne de caractères entre apostrophes.
Du coup pour insérer des apostrophes dans la dite chaîne on les précède d'un anti-slash, je pense à celles qui entourent le fameux @.
Mais ce n'est pas nécessaire dans une chaîne entre guillemets.
Illustration:
Notez qu'en HTML5 le champ <input type="email"> délègue la vérification javascript au navigateur! Du coup pas besoin de javascript côté client mais ça n'empêche pas la vérification côté serveur.Code:
1
2 echo 'L\'apostrophe'; echo "L'apostrophe";
Bonne continuation
Bonsoir,
Tout simplement, ne faut-il pas échapper ce caractère @ qui est un peu un caractère spéciel (\@) dans une chaîne qui devient alors au codage '---\@---' ?
@+ RJL2719
double parentheses ? e plus c'est meme pas échappé il suffit de regarde la coloration syntaxique, bref encore un sujet pour rien ...
Ni l'un ni l'autre désolé.produira le code javascript désiréCode:echo 'value.indexOf(\'@\')';
Ca y est ; j'ai trouvé :D:D
C'était bien une question d'échappement de caractères : comme l'@ se trouve entre 2 ' et que justement la chaine de caractères est délimitée par des ', il faut échapper ceux-ci :Code:
1
2
3<?php --- echo htmlentities('if (document.formulaire.email.value.indexOf(\'@\') == -1) alert("Ce n\'est pas une adresse electronique, verifiez la svp"); {');?><br>
et après 3000 posts ta toujours pas compris ça ? le pire c'est que t'as déjà poster ce genre de question ...
:roll: si je réponds n'importe quoi aux questions puis deviens agressif -limite insolent- alors je peux devenir modérateur?