probleme avec date dans eval()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme avec date dans eval()

Re: probleme avec date dans eval()

par AB » 21 oct. 2010, 17:01

Inutile de préciser qu'il faut éviter d'employer eval puisqu'une chaine sera interprétée... à n'utiliser donc que pour des cas exceptionnels (et c'est pour cette raison que ta question nous étonnait dans ce contexte).

Re: probleme avec date dans eval()

par jeanpba » 21 oct. 2010, 12:03

ok, merci, je n'avais pas compris le return!
a+

JP

Re: probleme avec date dans eval()

par stealth35 » 21 oct. 2010, 11:10

oui , finalement c'est ce que j'ai fait mais je ne comprends pas pourquoi l'eval ne marche pas
A+

JP
$chaine = "return date('d/M/Y Hms') ; " ;
echo "<p>[".eval($chaine)."]</p>" ;
echo "<p>.[".date( 'd/M/Y Hms' )."].</p>" ;

Re: probleme avec date dans eval()

par jeanpba » 21 oct. 2010, 11:06

oui , finalement c'est ce que j'ai fait mais je ne comprends pas pourquoi l'eval ne marche pas
A+

JP

Re: probleme avec date dans eval()

par jojolapine » 21 oct. 2010, 10:30

Et pourquoi ne pas faire:
$formats_date = array(
'fr'=>'d/M/Y',
'en'=>'Y/M/d'
);

$lang = 'fr';

echo date($formats_date[$lang]);

Re: probleme avec date dans eval()

par jeanpba » 20 oct. 2010, 12:58

salut !

j'ai voulu faire :

$string1 = "date('d/M/Y') ;" ;
$string2 = "date('Y/M/d') ;" ;

et dans un test
if ( strcmp( $lang , "fr" ) ) eval $string1 ;
else
eval $string2 ;

bon, finalement, j'ai mis la chaine de la date dans un tableau indicé par le langage et ca marche bien : ok

par contre , je ne comprends par pourquoi eval ne marche pas !

A++

jean-philippe

Re: probleme avec date dans eval()

par AB » 18 oct. 2010, 16:36

Je vois pas non plus pourquoi tu as pensé qu'il fallait utiliser eval. Donnes nous un exemple un peu plus complet ...

Re: probleme avec date dans eval()

par stealth35 » 18 oct. 2010, 15:37

je fais un eval car j'ai en fait un tableau de chaines qui sont differents formatages de date et je veux les evaluer en fonction du langage du navigateur
t'as pas besoin de eval pour faire ca

Re: probleme avec date dans eval()

par jeanpba » 18 oct. 2010, 15:27

salut stealth35

je fais un eval car j'ai en fait un tableau de chaines qui sont differents formatages de date et je veux les evaluer en fonction du langage du navigateur

j'ai bien conscience du trou de sécurité mais je voudrais savoir pourquoi eval ne marche pas !

a++

Re: probleme avec date dans eval()

par stealth35 » 18 oct. 2010, 15:16

pourquoi tu fais un eval ?

probleme avec date dans eval()

par jeanpba » 18 oct. 2010, 15:14

Bonjour

je cherche à utiliser la fonction eval
j'écris ma chaine avant, ici la fonction date() avec un point vigurle à la fin,
je fais ensuite l'eval et rien ne se passe
directement, la meme fonction date() marche bien
voici mon code :

<?php

$chaine = "date('d/M/Y Hms') ; " ;

echo "<p>[".eval( $chaine )."]</p>" ;

echo "<p>.[".date( 'd/M/Y Hms' )."].</p>" ;

?>

que pensez - vous de cela ?

pendant mes recherches, j'ai aussi essayé les apostrophes inversées , comme en perl :
`$chaine`;

et rien ne se passe !

j'ai regardé dans mon php.ini, je n'ai pas déclaré eval comme etant une fonction disable
et si j'omets le point virgule, j'obtiens bien une erreur, normale !

Qu'ais-je oublié à votre avis ?

Merci de vos lumieres

JP