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.
Annonceindlæg fra DE-CIX
INden den fil kaldes, har du så evt. en formular, hvor køber udfylder adresse, postnummer og lign ?
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. & By:<br /> <input type="text" style="width: 50px;" name="postnr" /> <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>
Vi er på vej, men stadig ikke helt. Kan du vise mig koden (php) som fremkommer ved kaldet: index.php?side=betaling
<? $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'> </td>"; $kvittering = $kvittering . " <td style='border-bottom: 1px solid #CCCCCC'> </td>"; $kvittering = $kvittering . " <td style='border-bottom: 1px solid #CCCCCC'> </td>"; $kvittering = $kvittering . " <td style='border-bottom: 1px solid #CCCCCC'> </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> <? ?>
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.?
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...
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 ?!
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";
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
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?!
25. juli 2008 - 12:59
#12
Så skal du bare rette i array. :o)
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] ?
25. juli 2008 - 18:20
#14
Jep!
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";
27. juli 2008 - 19:49
#17
Svar!
27. juli 2008 - 23:50
#18
takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling