Probleme avec eval()

keaton2000 Messages postés 18 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 26 janvier 2006 - 24 sept. 2005 à 14:09
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 25 sept. 2005 à 12:55
Bonjour,

je bidouille mon forum phpbb pour pouvoir insérer des scripts php dans le template ce qui s'avère moins facile que ce que je ne pensais.

Il ne me manques pas grand chose mais j'ai un soucis avec la fonction eval().

Voilà mon code :

define('SHOW_ONLINE', true);
$page_title = $lang['Home'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$filename = "../recomm_site/conf/form.php";
$handle = fopen ($filename, "r+");
$contents = fread ($handle, filesize ($filename));
$contents = eval($contents);
fclose ($handle);

$template->assign_vars(array(
'RECOMMSITE' => $contents)
);

$template->set_filenames(array(
'body'

Et voilà l'erreur qui apparait :

Parse error: parse error, unexpected '<' in /var/www/free.fr/b/8/forum2photo/forum/portal.php(142) : eval()'d code on line 1

Le fichier cible est un script de recommandtion de sites (tous droits réservés) :



<form method="post" action="./envoyer.php">

Recommander le site : <?php echo $nomsite; ?>

<?php echo $text_nom; ?>

" />

<?php echo $text_message; ?>

<textarea rows="<?php echo $nbrows; ?>" name="message_perso" cols="<?php echo $nbcols2; ?>"></textarea>

<?php

/*
Affichage des champs de type TEXT
*/

if ($nb_emails==1) {
simple_champ();
}

if ( gettype ($nb_emails/2) == "integer" && $nb_emails !=1) {
double_champ($nb_emails);
}

if ( gettype ($nb_emails/2) == "double" && $nb_emails !=1) {
double_champ($nb_emails - 1);
simple_champ();
}

?>

" />





</form>

Quelqu'un pourrait-il m'orienter sur la cause de cette erreur ? Merci d'avance.

Keaton

3 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
24 sept. 2005 à 15:47
Salut,



c'est normal que ton erreur apparaîsse, tu fais un "eval" de tout ton
fichier, et même de code non php, or tu as du html, ça passe donc en
erreur. Si je me suis mal exprimé, je veux dire que ton code html dans
ton fichier n'est pas bon :-)



ensuite il me semble que ton fichier ne doit pas comporter de php dans la template, mais juste du "template code"



Donc en gros enlève ton eval et supprime le php dans le fichier html

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
keaton2000 Messages postés 18 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 26 janvier 2006
25 sept. 2005 à 12:37
Pour le code dans le template, tout ça c'est géré, enfin normalement, Donc dans mon script, si j'ai bien compris, il faudrai que j'assigne une variable uniquement au code php de mon script et que fasse un eval de ce code uniquement. Mais comment ?
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
25 sept. 2005 à 12:55
non ce que je veux dire c'est que tu dois mettre des instructions php dans le eval, pas du code html

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
Rejoignez-nous