/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
eval() how to?
Fra : Kim Emax


Dato : 18-03-06 21:45

Hey

Jeg har endnu tilgode at lege med eval(), men har brug for det nu og har
så testet på det, men noget driller...

$shop_id = md5("hest");
$test = '\$hest = \"dit shopID er $shop_id, du kan indtaste det her.\";
print " . strlen($hest) . "';

print "plain:<br>" . $test;
eval("\$test = \"$test\";");
print "<h3>eval:</h3><b>$test</b>";

printer:

plain:
\$hest = \"dit shopID er $shop_id, du kan indtaste det her.\"; print " .
strlen($hest) . "

eval:
$hest = "dit shopID er ba352acae7a4b3532fb4f9ca26f79bbd, du kan indtaste
det her."; print 0


jeg ville gerne at den printede længden af sterngen $hest, men det
driller med at bruge en tildelings operator. Nogen, der har løst denne?
Hele præcist skal jeg bruge det til at have artikler, med SQL kald i ala:

$SQL = "SELECT * FROM tabel";
$r = mysql_query($SQL);
while($row osv...

Og ja, jeg har helt styr på sikkerheden og ja, kunne også bare omgåes
dette ved at søge på nogle tags i koden og så hælde det korrekte ind,
men nu VIL jeg ha eval til at du, hvis det altså kan lade sig gøre


--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
Konsulentbistand, programmering, design & hosting.
http://www.masterminds.dk

 
 
Martin (19-03-2006)
Kommentar
Fra : Martin


Dato : 19-03-06 06:52

Kim Emax wrote:
> $shop_id = md5("hest");
> $test = '\$hest = \"dit shopID er $shop_id, du kan indtaste det her.\";
> print " . strlen($hest) . "';

Ligenu er $hest da ikke tilegnet nogen steder?
mener du
$hest = "hest";
$shop_id = md5($hest);
....

>
> print "plain:<br>" . $test;
> eval("\$test = \"$test\";");
> print "<h3>eval:</h3><b>$test</b>";
>
> printer:
>
> plain:
> \$hest = \"dit shopID er $shop_id, du kan indtaste det her.\"; print " .
> strlen($hest) . "
>
> eval:
> $hest = "dit shopID er ba352acae7a4b3532fb4f9ca26f79bbd, du kan indtaste
> det her."; print 0

print 0 = Ja det er jo klart - se ovenstående :)
PS: Så vil du altid få 32 når du har kørt det igennem en md5(), uanset
hvor lang din variabel end måtte være

Kim Emax (24-03-2006)
Kommentar
Fra : Kim Emax


Dato : 24-03-06 00:24

Martin wrote on 19-03-2006 06:51:
> Kim Emax wrote:
>> $shop_id = md5("hest");
>> $test = '\$hest = \"dit shopID er $shop_id, du kan indtaste det
>> her.\"; print " . strlen($hest) . "';
>
> Ligenu er $hest da ikke tilegnet nogen steder?
> mener du
> $hest = "hest";
> $shop_id = md5($hest);

min tanke var at $test skulle indeholde alt i '', i testfasen, det i ''
skulle komme fra database

> print 0 = Ja det er jo klart - se ovenstående :)

næhh, ikke, hvis man forventer at $test indeholder "\$hest osv...

> PS: Så vil du altid få 32 når du har kørt det igennem en md5(), uanset
> hvor lang din variabel end måtte være

vi er i test

Jeg løste det ved at smide addslashes på inden jeg rendte den igennem
eval() og stripslashes efterfølgende...

/Kim

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste