Avatar billede alluc Nybegynder
24. juli 2008 - 21:46 Der er 17 kommentarer og
1 løsning

Fejl i automatisk mailudskrivelse

Hej Eksperter,

Jeg har en webshop, som sender en automatisk mail/Faktura ud til kunden efter endt betaling. Men jeg har nogle problemer med at den sender de rigtige informationer til kunden og kan ikke gennemskue hvad de forskellige $_SESSION['AdresseOplysninger'][nr.] står for ? Det er nemlig den betegnelse der bliver brugt til alle informationerne som sendes - så er der en der kan fortælle mig hvad de står for - viser lige den mail hvor man kan se de forskellige SESSIONS. Kan være i skal se flere filer, men har bare ikke andre filer hvori der er beskrevet noget med AdresseOplysninger.

BetalingAcc.php
<font size='2' color='#3d9bd6'><b>»</b></font> </span> <span class='overskrift'>Betaling accepteret!</span><br /><br />

Din kvittering: <br /><br />

<?
$ordre = $_GET["Order"]; $result = mysql_query("UPDATE `testordrer` SET `betalingsstatus` = 'OK' WHERE `id`= '$ordre' LIMIT 1") or die ("Ordre UPDATE: ".mysql_error()."");

Unset($_SESSION['kurv']);

echo $_SESSION['AdresseOplysninger'][0];

$strMail =  "Hej " . $_SESSION['AdresseOplysninger'][3] . ",\r\n\r\n";

$strMail .=  "Tak for din bestilling hos " . $_SERVER['HTTP_HOST'];

$strMail .=  "\r\n\r\nOrdren indeholder følgende varer:\r\n\r\n" . $_SESSION['AdresseOplysninger'][12] . "\r\n\r\n";

$strMail .=  "Din ordre vil blive sendt til denne adresse:\r\n\r\n" . $_SESSION['AdresseOplysninger'][4] . "\r\n" . $_SESSION['AdresseOplysninger'][4] . "\r\n" . $_SESSION['AdresseOplysninger'][5] . "\r\n" . $_SESSION['AdresseOplysninger'][6] . "\r\n" . $_SESSION['AdresseOplysninger'][7] . " " . $_SESSION['AdresseOplysninger'][9] . ", DK\r\n\r\n";

$strMail .=  "Spørgsmål vedrørende bestillingen besvares af " . $_SERVER['HTTP_HOST'] . ". Vi beder dig have følgende oplysninger ved hånden:\r\n\r\n";

$strMail .=  "Ordre nummer [" . $_SESSION['AdresseOplysninger'][2] . "]\r\n\r\n";

$strMail .=  "Med Venlig Hilsen\r\n";
$strMail .=  "Navn\r\n";
$strMail .=  "Hjemmeside\r\n\r\n";

$strMail .=  $_SERVER['HTTP_HOST'] . "\r\n kundeservice@" . str_replace("www.", "", $_SERVER['HTTP_HOST']) . "\r\n\r\n";

$strMail .=  "<b>Levering</b>\r\n";
$strMail .=  "\r\n\r\n";

$strMail .=  "--------\r\n\r\n";

$strMail .=  "<b>Returret</b>\r\n";
$strMail .=  "\r\n\r\n";

$strMail .=  "--------\r\n\r\n";

$strMail .=  "<b>Ombytning</b>\r\n";
$strMail .=  "\r\n\r\n";

$strMail .=  "---------\r\n\r\n";

$strMail .=  "<b>Reklamation</b>\r\n";
$strMail .=  "\r\n\r\n";

$strMail .=  "----------- \r\n\r\n";

$strMail .=  "<b>Returnering af varer til Virksomhedsnavn</b>\r\n";
$strMail .=  "";



<b>Returadressen er:</b>

Virksomhedsnavn
v/ Navn
Adresse
Postnr. & By
\r\n";
$strMail .=  "----------- \r\n\r\n";


$to = $_SESSION['AdresseOplysninger'][4] . "<" . $_SESSION['AdresseOplysninger'][9] .">";

$from = "From:" . $_SERVER['HTTP_HOST'] . "<kundeservice@" . str_replace("www", "", $_SERVER['HTTP_HOST']) .">";

$subject = "Dit " . $_SERVER['HTTP_HOST'] . " køb!";

$message = $strMail;

$headers  = "MIME-Version: 1.0\r\n"; 

$headers .= "$from\r\n";

mail($to, $subject, $message, $headers);

#----------------------
$strMail = "";
$strMail .= "Der er registreret en bestilling hos ".$_SERVER["HTTP_HOST"].".";
$strMail .= "\r\n\r\nOrdren indeholder følgende varer:\r\n\r\n".$_SESSION["AdresseOplysninger"][12]."\r\n\r\n";
$strMail .= "Ordren skal sendes til denne adresse:\r\n\r\n".$_SESSION["AdresseOplysninger"][3]."\r\n".$_SESSION["AdresseOplysninger"][4]."\r\n".$_SESSION["AdresseOplysninger"][5]."\r\n".$_SESSION["AdresseOplysninger"][7]." ".$_SESSION["AdresseOplysninger"][9].", DK\r\n\r\n";
$strMail .=  "Ordren er tildelt ordrenummer [".$_SESSION["AdresseOplysninger"][2]."]\r\n\r\n";
$to = "Virksomhedsnavn <Mailadresse>";
$from = "From:".$_SERVER["HTTP_HOST"]."<kundeservice@".str_replace("www","",$_SERVER["HTTP_HOST"]).">";
$subject = "Ny ordre er registreret! #".$_SESSION["AdresseOplysninger"][2];
$message = $strMail;
$headers  = "MIME-Version: 1.0\r\n"; 
$headers .= "$from\r\n";
mail($to,$subject,$message,$headers);

?>

Kan man evt. gøre således at det bliver stillet op, med grafik som HTML visning?

På forhånd tak.
Avatar billede jakobdo Ekspert
24. juli 2008 - 21:51 #1
INden den fil kaldes, har du så evt. en formular, hvor køber udfylder adresse, postnummer og lign ?
Avatar billede alluc Nybegynder
24. juli 2008 - 21:55 #2
Ja en bestillingsside. Her er formularen:
<form action="index.php?side=betaling" method="post">
<table border="0" width="100%" style="border-collapse: collapse" cellpadding="0">
    <tr>
        <td width="189">Firma:<br />
<input type="text" name="firma" />

        </td>
        <td>Postnr.&nbsp; & By:<br />
<input type="text" style="width: 50px;" name="postnr" />&nbsp;<input type="text" name="by" />
        </td>
    </tr>
    <tr>
        <td width="189">Navn:<br />
<input type="text" name="navn" />
</td>
        <td>E-mail:<br />
<input type="text" name="email" />
</td>
    </tr>
    <tr>
        <td width="189">Adresse:<br />
<input type="text" name="adresse" /></td>
        <td>Telefon:<br />
<input type="text" name="telefon" />
</td>
    </tr>
    <tr>
        <td width="189">Adresse 2:<br />
<input type="text" name="adresse2" />
</td>
        <td>Mobil:<br />
<input type="text" name="mobil" />
</td>
    </tr>
</table>
<p>

<input type="submit" value="Til Betaling" />

</p>

</form>
Avatar billede jakobdo Ekspert
24. juli 2008 - 22:04 #3
Vi er på vej, men stadig ikke helt.
Kan du vise mig koden (php) som fremkommer ved kaldet:
index.php?side=betaling
Avatar billede alluc Nybegynder
24. juli 2008 - 22:10 #4
<?
$Error = 0;
Unset($_SESSION['fejl']);

If ($_REQUEST['navn'] == "") {
$_SESSION['fejl'][] = "Feltet 'Navn' må ikke stå tomt<br /><br />";
$Error += 1;
}

If ($_REQUEST['adresse'] == "") {
$_SESSION['fejl'][] = "Feltet 'Adresse' må ikke stå tomt<br /><br />";
$Error += 1;
}

If ($_REQUEST['postnr'] == "" || !is_numeric($_REQUEST['postnr'])) {
$_SESSION['fejl'][] = "Feltet 'Postnr.' må ikke stå tomt og må kun indeholde tal<br /><br />";
$Error += 1;
}

If ($_REQUEST['by'] == "") {
$_SESSION['fejl'][] = "Feltet 'By' må ikke stå tomt<br /><br />";
$Error += 1;
}

If ($_REQUEST['email'] == "") {
$_SESSION['fejl'][] = "Feltet 'E-mail' må ikke stå tomt og skal indeholde et @ (Eks. Mail@mail.dk)<br /><br />";
$Error += 1;
}

If ($_REQUEST['telefon'] == "" || !is_numeric($_REQUEST['postnr'])) {
$_SESSION['fejl'][] = "Feltet 'Telefon' må ikke stå tomt og må kun indeholde tal<br /><br />";
$Error += 1;
}

If ($Error != 0) {
header("location:index.php?side=kassen");
}

$kvittering = "<table cellspacing='0' cellpadding='10'>";
$kvittering = $kvittering . "    <tr>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #cccccc;'><b>Varenr.</b></td>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #cccccc;'><b>Beskrivelse</b></td>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #cccccc;'><b>Størrelse</b></td>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #cccccc;'><b>Pris</b></td>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #cccccc;'><b>Antal</b></td>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #cccccc;'><b>Pris i alt</b></td>";
$kvittering = $kvittering . "    </tr>";
 
  foreach($_SESSION['kurv'] as $value) {
   
    $sel = mysql_query("SELECT * FROM produkter WHERE id='$value[0]' LIMIT 1") or die(mysql_error());
    if(mysql_num_rows($sel) == 1){
        $row = mysql_fetch_array($sel);

$kvittering = $kvittering . "    <tr>";
$kvittering = $kvittering . "        <td>" .$row['id']. "</td>";
$kvittering = $kvittering . "        <td>" .$row['produkt']. "</td>";
$kvittering = $kvittering . "        <td>" .$value[3]. "</td>";
$kvittering = $kvittering . "        <td>" .$row['pris']. ",00 kr.</td>";
$kvittering = $kvittering . "        <td>" .$value[1]. " stk.</td>";
$kvittering = $kvittering . "        <td>" .$value[2]. ",00 kr.</td>";
$kvittering = $kvittering . "    </tr>";

$KvitteringWin32 .= $row['id'] . ", " . $row['produkt'] . ", "  . $value[0] . ", " . $row['pris'] . ",00 DKK, " . $value[1] . " stk., i alt " . $value[2] . ",00 DKK\r\n\r\n";
       
        $totalPrisKvit += $value[2];
       
        }
       
    }

    $totalPrisKvit += 30;
   
$kvittering = $kvittering . "    <tr>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #CCCCCC'><b>Fragt:</b></td>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #CCCCCC'>&nbsp;</td>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #CCCCCC'>&nbsp;</td>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #CCCCCC'>&nbsp;</td>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #CCCCCC'>&nbsp;</td>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px solid #CCCCCC;'>30,00 kr.</td>";
$kvittering = $kvittering . "    </tr>";

$kvittering = $kvittering . "    <tr>";
$kvittering = $kvittering . "        <td><b>Total: </b></td>";
$kvittering = $kvittering . "        <td></td>";
$kvittering = $kvittering . "        <td></td>";
$kvittering = $kvittering . "        <td></td>";
$kvittering = $kvittering . "        <td></td>";
$kvittering = $kvittering . "        <td style='border-bottom: 1px double #CCCCCC; border-bottom-style: double;'><b>" .$totalPrisKvit. ",00 kr.</b></td>";
$kvittering = $kvittering . "    </tr>";
$kvittering = $kvittering . "</table>";

$KvitteringWin32 .= "--------------------------------------------------------------------------------\r\n\r\n";
$KvitteringWin32 .= "Fragt:                                                  30,00 DKK\r\n\r\n";
$KvitteringWin32 .= "--------------------------------------------------------------------------------\r\n\r\n";
$KvitteringWin32 .= "\r\n\r\nTotal pris:                                              " . $totalPrisKvit . ",00 DKK";
 

If ($_SESSION['kurv']) {
   
    foreach($_SESSION['kurv'] as $value) {

        $totalPris += $value[2];
       
    }
    $totalPris += 30;
$totalPris = $totalPris * 100;
}

srand(time());
$random = (rand()%99999);

$ordernumber = $random;

$_SESSION['AdresseOplysninger'] = Array($kvittering, $totalPris, $ordernumber, $_REQUEST['firma'], $_REQUEST['navn'], $_REQUEST['adresse'], $_REQUEST['adresse2'], $_REQUEST['postnr'], $_REQUEST['by'], $_REQUEST['email'], $_REQUEST['telefon'], $_REQUEST['mobil'], $KvitteringWin32);
$query_insert = mysql_query("INSERT INTO ordrer (ordrenr, firma, navn, adresse, adresse2, postnr, `by`, email, telefon, mobil, kvittering, beloeb) VALUES ('" . $_SESSION['AdresseOplysninger'][2] . "', '" . $_SESSION['AdresseOplysninger'][3] . "', '" . $_SESSION['AdresseOplysninger'][4] . "', '" . $_SESSION['AdresseOplysninger'][5] . "', '" . $_SESSION['AdresseOplysninger'][6] . "', '" . $_SESSION['AdresseOplysninger'][7] . "', '" . $_SESSION['AdresseOplysninger'][8] . "', '" . $_SESSION['AdresseOplysninger'][9] . "', '" . $_SESSION['AdresseOplysninger'][10] . "', '" . $_SESSION['AdresseOplysninger'][11] . "', '" . str_replace("'", "`", $_SESSION['AdresseOplysninger'][0]) . "', '" . $_SESSION['AdresseOplysninger'][1] . "')")

or die(mysql_error());
$ordernumber = mysql_insert_id();
?>

<FORM NAME="Betaling" ACTION="" METHOD="POST" TARGET="_TOP" AUTOCOMPLETE="OFF">

<!--<input type="hidden" name="Testtransaction" value="D">
<input type="hidden" name="Merchant" value="">-->

<input type="hidden" name="Merchant" value="">

<INPUT TYPE="HIDDEN" NAME="Amount" VALUE="<? echo $totalPris ?>">
<INPUT TYPE="HIDDEN" NAME="Currency" VALUE="">
<INPUT TYPE="HIDDEN" NAME="Accept" VALUE="">
<INPUT TYPE="HIDDEN" NAME="Decline" VALUE="">
<INPUT TYPE="HIDDEN" NAME="Ordernumber" VALUE="<? echo $ordernumber ?>">
<INPUT TYPE="HIDDEN" NAME="Emailresponse" VALUE="I">

<!--<INPUT TYPE="HIDDEN" NAME="Emailresponse" VALUE="">-->

Kortnummer:<br />
<INPUT TYPE="Text" NAME="Cardnumber" SIZE="19" />
<br /><br />
Udløbsdato (mm/åå):<br />
<INPUT TYPE="Text" NAME="Expmm" SIZE="2" />
<INPUT TYPE="Text" NAME="Expyy" SIZE="2" />
<br /><br />
Kontrolcifre:<br />
<INPUT TYPE="Text" NAME="CVC" SIZE="3" />
<br /><br />
<INPUT TYPE="Reset"><INPUT TYPE="SUBMIT" VALUE="Fuldfør betalingen">
</FORM>

<?

?>
Avatar billede alluc Nybegynder
24. juli 2008 - 22:17 #5
Måske kan man evt. kalde de sessions noget andet og mere overskueligt fremfor $_SESSION['AdresseOplysninger'][0]? Måske noget der passede til hver information såsom navn, adresse, telefon osv.?
Avatar billede jakobdo Ekspert
24. juli 2008 - 22:20 #6
Det er her det laves:

$_SESSION['AdresseOplysninger'] = Array($kvittering, $totalPris, $ordernumber, $_REQUEST['firma'], $_REQUEST['navn'], $_REQUEST['adresse'], $_REQUEST['adresse2'], $_REQUEST['postnr'], $_REQUEST['by'], $_REQUEST['email'], $_REQUEST['telefon'], $_REQUEST['mobil'], $KvitteringWin32);

hvis du f.eks. rettede linjen til:

$_SESSION['AdresseOplysninger'] = Array(
    'kvittering' => $kvittering,
    'totalPris' => $totalPris,
    'ordreNummer' => $ordernumber,
    'firma' => $_REQUEST['firma'],
    'navn' => $_REQUEST['navn'],
    'adresse' => $_REQUEST['adresse'],
    'adresse2' => $_REQUEST['adresse2'],
    'postnr' => $_REQUEST['postnr'],
    'by' => $_REQUEST['by'],
    'email' => $_REQUEST['email'],
    'telefon' => $_REQUEST['telefon'],
    'mobil' => $_REQUEST['mobil'],
    'kvitteringWin32' => $KvitteringWin32); //Hvad fanden er det ?


Så kan du i stedet for at bruge noget ala:
$_SESSION['AdresseOplysninger'][4]
bruge:
$_SESSION['AdresseOplysninger']['navn']
osv...
Avatar billede alluc Nybegynder
24. juli 2008 - 22:25 #7
Ja okay .. men hvad så med det at lave det til noget HTML visning? Men der mangler jo sådan nogle adresseoplysninger såsom ordrenr osv. de er jo vist i mailen og jeg tror det er med følgende $_SESSION['AdresseOplysninger'][2].

Og jeg har ingen anelse om hvad det kvitteringWin32 er ?!
Avatar billede alluc Nybegynder
24. juli 2008 - 22:30 #8
Og hvordan finder jeg ud af hvad indholdet af $_SESSION['AdresseOplysninger'][12] er ?

Taget fra betalingAcc.php:
$strMail .=  "\r\n\r\nOrdren indeholder følgende varer:\r\n\r\n" . $_SESSION['AdresseOplysninger'][12] . "\r\n\r\n";
Avatar billede alluc Nybegynder
24. juli 2008 - 22:59 #9
Kan du gennemskue det ?
Avatar billede jakobdo Ekspert
25. juli 2008 - 05:32 #10
$_SESSION['AdresseOplysninger'] = Array(
    'kvittering' => $kvittering, //0
    'totalPris' => $totalPris, //1
    'ordreNummer' => $ordernumber, //2
    'firma' => $_REQUEST['firma'], //3
    'navn' => $_REQUEST['navn'], //4
    'adresse' => $_REQUEST['adresse'], //5
    'adresse2' => $_REQUEST['adresse2'], //6
    'postnr' => $_REQUEST['postnr'], //7
    'by' => $_REQUEST['by'], //8
    'email' => $_REQUEST['email'], //9
    'telefon' => $_REQUEST['telefon'], //10
    'mobil' => $_REQUEST['mobil'], //11
    'kvitteringWin32' => $KvitteringWin32); //Hvad fanden er det ?  //12
Avatar billede alluc Nybegynder
25. juli 2008 - 12:09 #11
Ja okay det ser fint nok ud jakobdo, men er der et sted hvor man kan se hvad $kvitteringWin32 den indeholder af informationer ? Det er blandt andet den jeg skal have ændre i den indeholder nemling: varenr., produktnavn, varenr., pris, antal, pris i alt. Og der kunne jeg godt tænke mig at varenr. efter produktnavnet blevet lavet om til str. eller måske helt fjernet?!
Avatar billede jakobdo Ekspert
25. juli 2008 - 12:59 #12
Så skal du bare rette i array. :o)
Avatar billede alluc Nybegynder
25. juli 2008 - 16:50 #13
når du så skal skrive kvitteringwin32 ind, skriver du det så bare ligesom de andre: $_SESSION['AdresseOplysninger'][kvitteringwin32] ?
Avatar billede jakobdo Ekspert
25. juli 2008 - 18:20 #14
Jep!
Avatar billede jakobdo Ekspert
25. juli 2008 - 18:21 #15
Den kommer herfra:

$KvitteringWin32 .= $row['id'] . ", " . $row['produkt'] . ", "  . $value[0] . ", " . $row['pris'] . ",00 DKK, " . $value[1] . " stk., i alt " . $value[2] . ",00 DKK\r\n\r\n";

og her:

$KvitteringWin32 .= "--------------------------------------------------------------------------------\r\n\r\n";
$KvitteringWin32 .= "Fragt:                                                  30,00 DKK\r\n\r\n";
$KvitteringWin32 .= "--------------------------------------------------------------------------------\r\n\r\n";
$KvitteringWin32 .= "\r\n\r\nTotal pris:                                              " . $totalPrisKvit . ",00 DKK";
Avatar billede alluc Nybegynder
26. juli 2008 - 14:06 #16
Tak smid et svar - Kan du evt. se hvad problemet er i dette spg? : http://www.eksperten.dk/spm/839460
Avatar billede jakobdo Ekspert
27. juli 2008 - 19:49 #17
Svar!
Avatar billede jakobdo Ekspert
27. juli 2008 - 23:50 #18
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