Avatar billede danic Nybegynder
14. august 2004 - 16:19 Der er 8 kommentarer og
1 løsning

Variabler i tekst og tilbage igen

Jeg har en tekst i mysql, som indeholder tags for variabler, en variabel kunne se sådan her ud: hej ".$til_email." vi har...

Jeg har lavet en html form med input fleter, når man klikker submit, henter den teksten fra mysql, men den kan ikke finde ud af at udfylde variablen fra form feltet.

$til_email = $_POST['til_email'];

den skriver bare ".$til_email." som ren tekst.

Jeg har forsøgt mig med ".$$til_email." i teksten uden held.

Nogle forslag???
Avatar billede dennismp Nybegynder
14. august 2004 - 16:22 #1
kør din tekst igennem eval() - ellers bliver den ikke evalueret af php (og dermed bliver variablerne ikke erstattet med deres værdier)..

Du kunne også bruge str_replace istedet..
Avatar billede erikjacobsen Ekspert
14. august 2004 - 16:28 #2
Du kan fx lege lidt med den her ;)

  $email="no@where.dom";
  $t = 'Hej med dig, $email, det var godt du kom';
  print "$t\n";
  print eval("print \"$t\";")."\n";
Avatar billede danic Nybegynder
14. august 2004 - 16:42 #3
Hvorfor vil dette ikke virker?

    $tellfriend = eval($tellrow['tellfriend']);
    print "$tellfriend";

Den kommer med unexpected T_VARIABLE
Avatar billede dennismp Nybegynder
14. august 2004 - 16:46 #4
Gør enten som erik viser (husk print)

eller

$tellfriend = eval('return "'.$tellrow['tellfriend'].'";');
print $tellfriend;
Avatar billede danic Nybegynder
14. august 2004 - 16:48 #5
Ah jeg glemte print :-)
Avatar billede dennismp Nybegynder
14. august 2004 - 16:49 #6
umiddelbart ville jeg nok, istedet bruge

$felt = array('$til_email' => $_POST['til_email'], 'flere' => 'ting' );
print strtr($tellrow['tellfriend'],$felt);

Så bliver $til_email erstattet med en værdi og så frem.

Så undgår du også problemer med eventuelle ". (kan dog godt undgåes ved at bruge heredoc format, men det bliver noge trod).
Avatar billede danic Nybegynder
14. august 2004 - 16:58 #7
Den her virker fint: $tellfriend = eval('return "'.$tellrow['tellfriend'].'";');

Jeg kan ikke bruge print fordi den benyttes inde i phpmail sådan her:

$message        = "
".$tellfriend."
</font>
";
Avatar billede danic Nybegynder
14. august 2004 - 17:24 #8
I må gerne komme med svar :-)
Avatar billede dennismp Nybegynder
14. august 2004 - 17:35 #9
ih tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester