Probleme avec eval()

Signaler
Messages postés
18
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
26 janvier 2006
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
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

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>
Messages postés
18
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
26 janvier 2006

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 ?
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>