Avatar billede pehory Nybegynder
17. februar 2005 - 16:18 Der er 8 kommentarer og
1 løsning

At sende sessions i mail()

Hej eksperter.

Jeg er i gang med at lave en lille kurv med sessions og hvor den så går ind og henter informationer om varene fra en db. Det virker fint. Nu skal jeg så have sådan at når kunden er færdig med at fylde kurven bliver det sendt på email.
Min kurv kode:
          <? session_start();
          if (!empty($_SESSION['varer'])) {
          $foerstelinie=true;
          $totalsum=0;
          foreach($_SESSION['varer'] as $vareid => $antal){
  if($antal>0){
    include ("mysql.php");
    $res = mysql_query("SELECT * FROM varer WHERE id = '". $vareid ."'");
    $row = mysql_fetch_array($res);
    $varesum = $antal * $row['pris'];
    $totalsum+=$varesum;
echo '<tr><td class="4"><h4 class="hkurv2">' . $antal . ' x ' . $row['navn'] . ':';
echo '</td><td class="td5"><h4 class="hkurv3">';
echo '' . $varesum . ' kr.';
echo '</td></tr>';

  }

Jeg skal altså have alle varene med pris og den samlede sum ind i min mail som $text. Som her:
$text .= session info;
$text .= mere session info;
    mail($to, Subjekt, $text, $headers);
    }


Mvh Peter
Avatar billede coderdk Praktikant
17. februar 2005 - 16:36 #1
Før din foreach():

  $text = "Hej!\r\n\r\nDu har bestilt følgende:\r\n\r\n";

efter din sidste echo:

  $text .= ' ' . $antal . ' x ' . $row['navn'] . ': ' . $varesum . " kr.\r\n";

Efter foreach():

  $text .= "\r\nAlt sammen ankommer til din adresse om 20 minutter.\r\n\r\nMed venlig hilsen\r\n\r\nButikken";

Sådan noget du mener?
Avatar billede pehory Nybegynder
17. februar 2005 - 16:52 #2
Du er inde på noget. Men jeg skal ikke maile sammentidig med ovenstående kurv. Det er bare for at vise hvordan den er lavet.
Jeg skal have skrevet alle informationerne i en mail. Altså alle varer og antal (efter at jeg har hentet det rigtige navn fra db'en) og en samlet pris. Dette skal jo så udskrives i $text.

Her er hele min mail() så i kan sætte det ind i den med det samme:
        <?php
if (isset($_POST['send'])) {
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: Hans Hansen <hans@hansen.dk>\r\n";

    include ("mysql.php");
    $res = mysql_query("select email from emails where brug = '2' order by id desc") or die(mysql_error());
    while ($row = mysql_fetch_row($res)) {
    $to = $row[0];
    $text  = 'Så er det kommet en nye ordrer.<br><br><b>Kundeoplysninger:</b><br>Navn: ';
    $text .= $_POST['navn'];
    $text .= '<br>Adresse: ';
    $text .= $_POST['adresse'];
    $text .= '<br>By: ';
    $text .= $_POST['by'];
    $text .= '<br>Postnr: ';
    $text .= $_POST['postnr'];
    $text .= '<br>Telefon: ';
    $text .= $_POST['tlf'];
    $text .= '<br>Email: ';
    $text .= $_POST['email'];
    $text .= '<br><br>Kunden har bestilt følgende varer:<br>';
    mail($to, Subjekt, $text, $headers);
    }
    echo '<h2>Odren er gennemført<br></h2>';
    }
   
?>
Avatar billede pehory Nybegynder
17. februar 2005 - 17:59 #3
Er der ikke en der kan fixe det? Jeg skal 'bare' have udskrevet mine varer i min mail ($text) ligesom i kurven.
Avatar billede coderdk Praktikant
17. februar 2005 - 18:05 #4
Hvad med noget i stil med:

<?php

    session_start();

    if (isset($_POST['send']))
    {
        $headers  = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
        $headers .= "From: Hans Hansen <hans@hansen.dk>\r\n";

        include ("mysql.php");
        $res = mysql_query("select email from emails where brug = '2' order by id desc") or die(mysql_error());
        $row = mysql_fetch_row($res);
        $to = $row[0];
        $text  = 'Så er det kommet en nye ordrer.<br><br><b>Kundeoplysninger:</b><br>Navn: ';
        $text .= $_POST['navn'];
        $text .= '<br>Adresse: ';
        $text .= $_POST['adresse'];
        $text .= '<br>By: ';
        $text .= $_POST['by'];
        $text .= '<br>Postnr: ';
        $text .= $_POST['postnr'];
        $text .= '<br>Telefon: ';
        $text .= $_POST['tlf'];
        $text .= '<br>Email: ';
        $text .= $_POST['email'];
        $text .= '<br><br>Kunden har bestilt følgende varer:<br>';

        if (!empty($_SESSION['varer']))
        {
            $totalsum=0;
            foreach( $_SESSION['varer'] as $vareid => $antal )
            {
                if ( $antal > 0 )
                {
                    $res = mysql_query("SELECT * FROM varer WHERE id = '". $vareid ."'");
                    $row = mysql_fetch_array($res);
                    $varesum = $antal * $row['pris'];
                    $totalsum+=$varesum;
                    $text .= ' ' . $antal . ' x ' . $row['navn'] . ': ' . $varesum . " kr.<br>";
                }
            }
            echo "<br>Total: $totalsum kr.<br><br><br>Mvh";
        }
        mail($to, "Ordre gennemført", $text, $headers);
        echo '<h2>Ordren er gennemført<br></h2>';
    }
 
?>

Så kan du selv tilpasse...
Avatar billede coderdk Praktikant
17. februar 2005 - 18:05 #5
Og et svar ;-)
Avatar billede coderdk Praktikant
17. februar 2005 - 18:06 #6
echo "<br>Total: $totalsum kr.<br><br><br>Mvh";

bør naturligvis være:

$test .= "<br>Total: $totalsum kr.<br><br><br>Mvh";
Avatar billede pehory Nybegynder
17. februar 2005 - 18:15 #7
Det er nydeligt. Virker helt efter hensigten.
Avatar billede coderdk Praktikant
17. februar 2005 - 18:26 #8
Godt :) Og i min sidste kommentar skulle $test naturligvis være $text :)
Avatar billede pehory Nybegynder
17. februar 2005 - 18:29 #9
Jeps. Fandt jeg ud af :-)
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