Echapper la touche dollar avec cat EOF

Résolu
Integreur Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Dans mon projet en ruby, je dois créer un fichier php a la volée a la racine de mon serveur web (/var/www) , pour ce faire j'utilise cat EOF qui est un grand classique, mais en tant que gros débutant que je suis en programmation, je me suis aperçu que le dollar $ n'était pas prit en compte lors de l'écriture un fichier.Du coup c'est problématique car le script php ne lance pas vue que les variables avec le "$" ne sont pas prises en compte (erreur: 500).

Le script php a créer a la racine de /var/www est le suivant:

<?php


$maccheck=system("/usr/sbin/arp -a|grep ".$_SERVER['REMOTE_ADDR']."\)|cut -f4 -d\" \"");
function redirection($url)
{
die('<meta http-equiv="refresh" content="0;URL='.$url.'">');
};
if($maccheck == '#{$mac1}' OR $maccheck == '#{$mac2}' OR $maccheck == '#{$mac3}')
{

redirection("#{$page}.php" );
}

else
{
redirection("#{$pagebis}.php" );
}
?>


La sortie est la suivante une fois le fichier crée avec EOF, j'ai mis des commentaires pour etre plus clair.

<?php


=system("/usr/sbin/arp -a|grep ".['REMOTE_ADDR'].")|cut -f4 -d" ""); ### Variable jamais écrite avec EOF: $maccheck
function redirection()
{
die('<meta http-equiv="refresh" content="0;URL='..'">');
};
if( == '' OR == '44:78:3e:2a:fc:e8' OR == '') ## # Variable jamais écrite avec EOF: $maccheck
{

redirection("accueil.php" );
}

else
{
redirection("visitemoi.php" );
}
?>


En indiquant a EOF de quoter le dollar de la variable PHP $maccheck tel que:

\\\$


la sortie du fichier crée est exactement la meme que celle que je veux, tout y est et il y a aucune différence.Sauf que je me tape une erreur 500 avec ce retour de commande quand j'essai de lancer le script dans un terminal:

PHP Parse error: syntax error, unexpected '""' (T_CONSTANT_ENCAPSED_STRING)


Je tourne en rond depuis 2 jours a cause de ceci...

A voir également:

4 réponses

hichamaziz Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   1
 
merci pour votre poste c est tres utile
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
avec 'EOF'
$ cat <<EOF > z1
> $hello
> EOF
$ cat z1

$ cat <<'EOF' > z1
$hello
EOF
$ cat z1
$hello
0
Integreur Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
'EOF' marche bien mais je continu a me prendre une erreur avec php:
PHP Parse error:  syntax error, unexpected '""' (T_CONSTANT_ENCAPSED_STRING) in /var/www/index.php on line 2


Le script marche pourtant bien sans utiliser EOF je comprends pas ce qui cloche.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
je continu a me prendre une erreur
à la création du script ou lors de son exécution ?
0
Integreur Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
Lors se son exécution.

Pourtant si je créer moi meme ce fichier php sans 'EOF' et que je me rend sur ce fichier php dans mon navigateur (127.0.0.1/index.php) je n'ai pas de problème.
0
Integreur Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
Pas d'idée concernant cette erreur PHP qui s'affiche seulement quand je tente d'écrire le fichier automatiquement ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
montre la ligne 2 du fichier créé
0
Utilisateur anonyme
 
salut,

ça a l'air bien pourri quand même, comme démarche, d'utiliser ruby pour appeler bash pour écrire du php qui écrira du html...
:(
0
Integreur Messages postés 86 Date d'inscription   Statut Membre Dernière intervention  
 
Si tu as une autre solution pour écrire un fichier php a la volée je suis preneur.
0
Utilisateur anonyme
 
il faudrait savoir pourquoi tu as choisi cette "solution".

php est bien censé générer dynamiquement du html ? donc, comment se fait-il qu'il doive, lui, être aussi généré dynamiquement ?
0