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 HP
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