Avatar billede tlw Nybegynder
13. december 2005 - 22:00 Der er 11 kommentarer og
1 løsning

PHP mail sender kode istedet for indholdet af mail

Jeg arbejder på en hjemmeside hvorfra der skal sendes en ordre mail. Siden er lavet med templates og klasser.

Koden:

mail("just@mail.com", "Fra Hjemmesiden", "Fra: ". $navn. "\nEmail: ". $email. "\n". $ordreObj->create());

sender koden og ikke det indhold som jeg gerne vil se. Det er faktisk indholdet af templaten jeg modtager :(
Avatar billede jakobdo Ekspert
13. december 2005 - 23:20 #1
er det i bund og grund dette som er problemet: $ordreObj->create() ???
Avatar billede tlw Nybegynder
13. december 2005 - 23:23 #2
Det vil jeg tro. Den retunere en template som indeholder alt det som klassen skal vise.. men istedet for at erstatte $ordreObj->create() med indholdet af mailen så sender den koden.
Avatar billede jakobdo Ekspert
13. december 2005 - 23:26 #3
Du må jo have en funktion som gider dig indholdet af: $ordreObj
create lyder ikke som den rigtige!
Har du ikke en receive() info() eller lign?
Avatar billede tlw Nybegynder
13. december 2005 - 23:29 #4
Det er i min index.php hvori jeg opretter et objekt til functionen i ordre.class. I den klasse har jeg så en function som retunere værdien af klassen

function Create()
    {
        return $this->template;                                    }
Avatar billede jakobdo Ekspert
14. december 2005 - 08:46 #5
Du skal jo have en funktion som rent faktisk giver dig indholdet at ordren!
Avatar billede tlw Nybegynder
14. december 2005 - 08:49 #6
Jeg laver jo et funktions kald i klassen så det burde virke.

Har du arbejdet med templates før? Ellers kan jeg prøve at forklare lidt bedre hvordan det virker
Avatar billede jakobdo Ekspert
14. december 2005 - 09:23 #7
Jeg aner intet om det! :o)
Avatar billede tlw Nybegynder
14. december 2005 - 10:31 #8
Hehe.. så må vi se om jeg kan forklare det godt nok uden at bruge billeder.

Hele idéen er, at man deler sit program op i index.php som kalder nogle klasser som igen henter (XML)oplysninger i templatefiler.

index.php har fx. en linje som hedder

    include_once('test.class');
    $testObj = new test('./');
    $testObj->SetTitle('HEJ');

i klassen test.class vil der så være en konstrukter som henter indholdet af templatefilen og sætter $this->template til at indeholde den.

funktionen laver så en replace

  SetTitle($titel){

  $this->template = str_replace('{TITLE}', $title, $this-template);
  }

  function Create()
  {
  return $this->template;
  }

i templaten er der så en linje hvor der fx. står

  <center><h1>{TITLE}</h1></center>

osv.

Er det helt sort ? Det er lidt svært at forklare på tekst
Avatar billede jakobdo Ekspert
14. december 2005 - 19:21 #9
obj->Create() burde jo som sådan være ok så!
Prøv istedet for at sende emailen, at test om du kan få indholdet skrever ud til skærmen!
Avatar billede tlw Nybegynder
14. december 2005 - 19:26 #10
Ja. Det syntes jeg også.. men det virker bare ikke :(

Jeg har prøvet at få det ud på skærmen, men jeg får bare koden stadigvæk.

Men det gør ikke så meget, jeg har ikke mere tid til det nu :( mit projekt skal snart afleveres.. men det kan være at jeg roder lidt mere med det bagefter.

Du kan smide et svar, så får du point for good will :)
Avatar billede jakobdo Ekspert
14. december 2005 - 19:39 #11
Svar!
Avatar billede jakobdo Ekspert
14. december 2005 - 19:41 #12
Takker for point!
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