Aller au contenu

Intégrer du code php dans un champ de table


Sujets conseillés

Posté (modifié)

Kikou,

Ca fais des heures que j'essaie d'inclure du code php dans un champ mysql via un insert php dans une valeur $.

un exemple:

$post_content = '<? include 'http://xxx.com/'.date('Y-m-d').'.php';?>';

Il me faut le code tel quel dans le $post_content, sans que cela soit executer par php avant de l'insert dans la base.

Voila ce que je veux obtenir tel quel dans mon champ de ma table:

<? include 'http://xxx.com/'.date('Y-m-d').'.php';?>

Evidemment, je ne veux pas que <? include soit execute, mais simplement ecris comme du simple texte.

Apres j'injecte ce code dans wordpress et, il se charge du reste.

Comment faire, une solution, une astuce ...

Merci.

++

Modifié par Dudu
Posté

salut

L'erreur est dans ta ligne:

$post_content = '<? include 'http://xxx.com/'.date('Y-m-d').'.php';?>';

J'imagine que tu as dû avoir une belle Parse error: syntax error, unexpected T_STRING avec ce code.

Utilise les guillemets plutôt que les apostrophes et apprend à échapper les guillemets lorsque tu veux les inclure dans une chaine .

La syntaxe correcte est la suivante:

$post_content = "<? include \"http://xxx.com/".date("Y-m-d").".php\"; ?>";

si tu veux réellement ce bout de code dans une variable.

slender

Posté

Bonjour,

Le problème peut venir aussi de la ligne où tu déclares ta requète SQL ("insert into..."), suivant les ponctuations utilisées entre tes variables.

Si ça ne marche pas avec la ligne de slender, copie-colle nous la ligne SQL.

Par contre attention, il est dangereux de stocker du code PHP dans une base de données, et de l'interpréter... Ca pourrait servir à des personnes malveillantes, qui changeraient alors le code présent en BDD pour faire ce qu'ils veulent. ;)

Posté

Juste une petite chose : la date que tu veux insérer dans ta base de données, c'est la date du jour d'insertion ou la date de quand le code sera exécuté ? Parce que si c'est le deuxième cas, le code de Slender ne sera pas correct... ;)

Si tu veux que la date soit celle du jour auquel le code est exécuté, tu dois mettre :

$post_content = "<? include \"http://xxx.com/\".date("Y-m-d").\".php\"; ?>";

Posté (modifié)

salut,

la date que tu veux insérer dans ta base de données, c'est la date du jour d'insertion ou la date de quand le code sera exécuté ?

hum hum sarc... à ton avis serais-ce bien utile d'aller stocker du code qui contient la date du jour d'exécution pour ensuite aller la récupérer alors qu'il suffirait de créer le code à la volée. ;)

je serais plus enclin à penser que ta 1ere critique est pertinente:

Par contre attention, il est dangereux de stocker du code PHP dans une base de données, et de l'interpréter

Effectivement, il ne faut stocker en BDD uniquement l'information pertinente. Dans son cas, seule la date est pertinente, le reste c'est du code. Donc, il stocke la date et il compose son code après. Gain de place et diminution de la vulnérabilité. De plus, il peut se servir de la date pour autre chose...

$result = mysql_query("SELECT date FROM my_table WHERE my_id = ".$my_id."\"");
if ($result) {
$row = mysql_fetch_row($result);
$my_date = $row[0];
} else {
echo "Impossible d\"exécuter la requête : " . mysql_error();
exit;
}
$post_content = "<? include \"http://xxx.com/".$my_date.".php\"; ?>";

Modifié par slender
Posté

T'as pas tort, se lever tôt un dimanche matin ça n'aide pas...

Mais je cherchais en même temps l'intérêt de stocker le code, c'est pour ça. C'est vrai que s'il a besoin de la date du jour d'exécution, pas vraiment besoin de stocker du PHP :/

Enfin en tous les cas, je suis d'accord avec toi, stocker la date paraît plus judicieux et moins dangereux.

Posté

Kikou,

En faite, si je fais ca, j'appelle ce code dans un wordpress tout les jours, et je lui fais lire ce bout de code en tant que billet, ce billet à besoin d'executer ce code php, le billet lui meme est enregistrer dans ma base dans une autre table.

J'ai besoin de la date du jour d'execution du script, qui est lui même lancer par un cron quotidien.

Si vous avez une autre méthode...

+++

Posté
Juste une petite remarque: il me semble que cette manière d'utiliser include peut engendrer une vulnérabilité sur votre site.

Juste si l'include fait partie d'un script. Pas dans son cas car apparemment il génère son include à la volée.

Posté

salut,

parce que, sans faire attention, Sarc a échappé deux guillemets:

$post_content = "<? include \&quot;http://xxx.com/\".date("Y-m-d").\".php\"; ?>";

au lieu de:

$post_content = "<? include \&quot;http://xxx.com/".date("Y-m-d").".php\"; ?>";

Si tu écris son code tu récoltes une "syntax error, unexpected T_STRING"

slender

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...