Page 1 sur 1

syntax error ...

Posté : 31 mai 2014, 10:16
par fb78
Bonjour,

A l'aide Mrs les gourous, j'ai l'erreur suivante dans mon code :
"Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE or '$' in /mnt/168/sda/3/4/chez.fb/formulaire.php on line 16"
Pouvez-vous m'aider car je ne comprend pas pourquoi :(
Merci beaucoup :D

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="language" content="fr"> <title>Formulaire de t&eacute;l&eacute;chargement</title> <script language="JavaScript" type="text/javascript"></script> </head> <body> <?php $fichier = 'install_prog.exe'; $dest1 = 'dest'; $dest2 = 'dom'; $dest3 = 'fr'; if (isset(_SERVER['HTTP_CLIENT_IP'])) { <----------------- ligne déclarée en erreur par PHP !!! $adresse = _SERVER['HTTP_CLIENT_IP']; } elseif (isset(_SERVER['HTTP_X_FORWARDED_FOR'])) { $adresse = _SERVER['HTTP_X_FORWARDED_FOR']; } else { $adresse = (isset(_SERVER['REMOTE_ADDR']) ? _SERVER['REMOTE_ADDR'] : 'inconnue'); } echo $adresse; $sujet = 'Téléchargement'; // création du mail en HTML $entete = 'MIME-Version: 1.0'.'\n'.'Content-type: text/html; charset=iso-8859-1'.'\n'; $destinataire = $dest1.'@'.$dest2.'.'.$dest3; $contenu = 'Téléchargement du fichier "'.$fichier.'" le '.date(d\/m\/Y \à H\:i).'\n'; $contenu .= 'Nom : '.$nom.'\n'.'Prénom : '.$prenom.'\n'.'Email : '.$email.'\n'.'IP : '.$adresse.'\n'; $contenu .= 'Utilisation : '.$selection.'\n'.'Message : '.$message; mail($destinataire,$sujet,$contenu,$entete); ?> <script> . . . .

Re: syntax error ...

Posté : 31 mai 2014, 11:25
par sirakawa
ce serait pas $_SERVER par hasard?

Re: syntax error ...

Posté : 31 mai 2014, 11:44
par fb78
ça à l'air d'être bon mais maintenant, j'ai ces erreurs :
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /mnt/168/sda/3/4/chez.fb/formulaire.php on line 29
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /mnt/168/sda/3/4/chez.fb/formulaire.php on line 29
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /mnt/168/sda/3/4/chez.fb/formulaire.php on line 29
Parse error: syntax error, unexpected T_STRING in /mnt/168/sda/3/4/chez.fb/formulaire.php on line 29

et la ligne 29, c'est ça :
$contenu = 'T&eacute;l&eacute;chargement du fichier "'.$fichier.'" le '.date(d\/m\/Y \à H\:i).'\n';

merci pour votre aide.

Re: syntax error ...

Posté : 31 mai 2014, 13:37
par sirakawa
essayez \\ à la place de \ (caractère d'échappement)

Re: syntax error ...

Posté : 31 mai 2014, 14:06
par fb78
pas bon : ça double les erreurs

le but, vous l'avez compris, est tout simplement de formater la date et l'heure pour avoir ceci comme résultat :
Téléchargement du fichier "Nom_du_fichier" le 31/05/2014 à 14:06

Re: syntax error ...

Posté : 31 mai 2014, 14:39
par xTG
Devrait fonctionner :
date("d/m/Y à H:i")
Sinon :
date("d/m/Y") . " à " . date("H:i")
;)

Re: syntax error ...

Posté : 31 mai 2014, 15:32
par fb78
Merci à sirakawa et xTG pour leurs réponses

bon, il semblerai que PHP n'aime pas trop le mélange entre des variables en littéral (ex: "un littéral") et des caractères d'échappement (ex: \n)
ça, ça ne marche pas : $MaVariableComplete = "var1".\n."var2".\n; :evil:
La solution est de déclarer la séquence d'échappement (ex: \n ou \rn ou autres) dans une variable (ex: $NL = "\n";) puis d'utiliser celle-ci :
:P
$MaVariableComplete = "var1".$NL."var2".$NL;
=D>

Re: [RESOLU] syntax error ...

Posté : 01 juin 2014, 09:32
par sirakawa
Mais ça ça marche parfaitement
car les séquences d'échappement sont des chaines de caractères
<?PHP
$var1 = "21";
$var2 = "1912";
$MaVariableComplete = "$var1\n$var2\n";
var_dump($MaVariableComplete);
?>
ou
<?PHP
$var1 = "21";
$var2 = "1912";
$MaVariableComplete = $var1."\n".$var2."\n";
var_dump($MaVariableComplete);
?>

Re: [RESOLU] syntax error ...

Posté : 01 juin 2014, 09:58
par fb78
oui, je suis d'accord mais ce que je dis c'est :
variables en littéral (ex: "un littéral")
tel que :
$MaVariableComplete = "var1".\n."var2".\n;
ce qui pose problème c'est le mélange littéral et échappement en direct, à partir du moment ou l'un ou l'autre est une variable nommée, c'est OK.

Re: [RESOLU] syntax error ...

Posté : 01 juin 2014, 10:55
par sirakawa
Eh bien, voici:
<?PHP
$MaVariableComplete = "var1\nvar2\n";
var_dump($MaVariableComplete);
?>

Re: [RESOLU] syntax error ...

Posté : 01 juin 2014, 11:04
par fb78
et si vous essayez ceci :
$MaVariableComplete = "var1".\n."var2".\n;

Re: [RESOLU] syntax error ...

Posté : 01 juin 2014, 11:12
par sirakawa
J'avais testé en premier.
J'obtiens une erreur parce que n n'est pas une constante; en effet \n est un caractère et doit se trouver entre quotes (simples ou doubles)

Re: [RESOLU] syntax error ...

Posté : 01 juin 2014, 11:21
par fb78
ok, on s'est compris ...
bon W.E.