Menu

Echapper la touche dollar avec cat EOF [Résolu/Fermé]

Messages postés
65
Date d'inscription
jeudi 1 décembre 2016
Statut
Membre
Dernière intervention
21 août 2018
-
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...

Afficher la suite 

4 réponses

Messages postés
29
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
2 avril 2019
1
0
Merci
merci pour votre poste c est tres utile
Messages postés
17700
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 mai 2019
6077
0
Merci
hello
avec 'EOF'
$ cat <<EOF > z1
> $hello
> EOF
$ cat z1

$ cat <<'EOF' > z1
$hello
EOF
$ cat z1
$hello
Integreur
Messages postés
65
Date d'inscription
jeudi 1 décembre 2016
Statut
Membre
Dernière intervention
21 août 2018
-
'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.
dubcek
Messages postés
17700
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 mai 2019
6077 -
je continu a me prendre une erreur
à la création du script ou lors de son exécution ?
Integreur
Messages postés
65
Date d'inscription
jeudi 1 décembre 2016
Statut
Membre
Dernière intervention
21 août 2018
-
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.
Messages postés
65
Date d'inscription
jeudi 1 décembre 2016
Statut
Membre
Dernière intervention
21 août 2018
0
Merci
Pas d'idée concernant cette erreur PHP qui s'affiche seulement quand je tente d'écrire le fichier automatiquement ?
dubcek
Messages postés
17700
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 mai 2019
6077 -
montre la ligne 2 du fichier créé
0
Merci
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...
:(
Integreur
Messages postés
65
Date d'inscription
jeudi 1 décembre 2016
Statut
Membre
Dernière intervention
21 août 2018
-
Si tu as une autre solution pour écrire un fichier php a la volée je suis preneur.
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 ?