inhalt des warenkorbs per mail versenden...

Vaio82

Erfahrenes Mitglied
hallo zusammen...

ich habe einen onlineshop erstellt und stehe nun vor einem problem...

im letzten schritt sollen die aktuellen inhalte des warenkorbs, sowie lieferadresse, name etc... und eine artik.nr. per mail übergeben werden.

es ist kein problem die inhalte der ganzen variablen auf der seite auszugeben, jedoch weiß ich gerade nicht, wie ich die inhalte des warenkorbs (array, der per for-schleife ausgewertet wird) per email (mail()) übergebe.

hat jemand eine idee? ich würde mich sehr freuen und kann ggf. auch den code der schleife mal posten.

lieben gruß
 
Mmm, Zeilenumbrüche in Textbasierten eMails sollten via \n zu realisieren rein. Reicht dir das als Idee ?

Dann machst du halt ca sowas hier
PHP:
$array //dein Array mit dem Warenkorb

$mailtext = "";
foreach($array as $value) {
    $mailtext .= $value."\n";
}
mail($empfänger,$subject,$mailtext);

Jetzt mal als unschönes rohes Konstrukt aber sollte ca so funktionieren.
 
Hatte vor einer Woche das selbe Problem:
Hier der gekürzte Quelltext (Nicht super gut *g*)
PHP:
<?
include"Config.php";
mysql_connect ($Host, $User, $Passwort);
mysql_select_db ($Datenbank);
$Anfrage4 = "INSERT INTO Bestellungen_Nummer (Datum,Name,Vorname,Adresse,PLZ,Ort) VALUES ('$Datum','$Name','$Vorname','$Adresse','$PLZ','$Ort')";
$result4 = mysql_query($Anfrage4);
$Anfrage2 = "SELECT * FROM Bestellungen_Nummer ORDER BY ID DESC LIMIT 0,1";
$result2 = mysql_query($Anfrage2);
while ($ausgabe2 = mysql_fetch_array ($result2)) {
$ID = $ausgabe2[ID];
}
$Datum = time();
$Datum = date('d.m.Y',$Datum);
$Mail2 = "wef@linkgroup.org";
$Betreff = "Shop-Bestellung [Bst-Nr: $ID | Datum: $Datum]";
$text1 = "Shop Bestellbestätigung<p>Adressdaten:<br>Name: $Name<br>Vorname: $Vorname<br>Strasse/Nr. $Adresse<br>PLZ/Ort $PLZ $Ort<br>Mail: $Mail<p>Sie haben folgende Artikel im Shop bestellt:<br><table class=smalltxt><tr height=30 valign=top><td width=100>Anzahl</td><td>Beschreibung</td><td>Preis</td><td>Total</td></tr>";
$Anfrage = "SELECT * FROM Bestellungen WHERE User_ID='$PHPSESSID' ORDER BY Datum";
$result = mysql_query($Anfrage);
while ($ausgabe = mysql_fetch_array ($result)) {
$Anfrage3 = "SELECT * FROM Shop WHERE ID='$ausgabe[Artikel_Nummer]'";
$result3 = mysql_query($Anfrage3);
while ($ausgabe3 = mysql_fetch_array ($result3)) {
$Preis = round($ausgabe3[Preis],2);
$Preis = "$Preis SFr.";
$Artikel = "$ausgabe3[Artikel]";
$Total1 = $Preis*$ausgabe[Anzahl];
$Total = round($Total1,2);
$Total = "$Total SFr.";
}
$text2 .= "<tr><td align=middle width=30>$ausgabe[Anzahl]</td><td width=200 align=left>$Artikel $Groesse</td><td width=70>$Preis</td><td width=70>$Total</td></tr>";
$Gesamtpreis += $Total1;
}
if ($Gesamtpreis <= 10){
$Porto = 2;
}
elseif ($Gesamtpreis > 10 AND $Gesamtpreis <= 20){
$Porto = 5;
}
elseif ($Gesamtpreis > 20 AND $Gesamtpreis < 100){
$Porto = 8;
}
else {
$Porto = 0;
}
$Gesamtpreis = $Gesamtpreis+$Porto;
$Gesamtpreis = round($Gesamtpreis,2);
$Gesamtpreis = "$Gesamtpreis SFr.";
$Porto = "$Porto SFr.";
$text3 = "<tr height=45 valign=bottom><td width=100></td><td><b>Porto&Verpackung:</b></td><td></td><td><b>$Porto</b></td></tr>
<tr valign=bottom><td width=100></td><td><b>Preis Bestellung:</b></td><td></td><td><b>$Gesamtpreis</b></td></tr></table><p>Bitte überweise den Bestellpreis von $Gesamtpreis auf folgendes Konto:<br>Schlatter Christoph<br>Kährgässli 11<br>3436 Zollbrück<br>Konto-Nr. 70-347319-0<br>Text (Zweck): Bestellung-Nr. $ID.$Datum<p>Vielen Dank für die Bestellung<br>wef.linkgroup.org";
$text = "$text1 $text2 $text3";
$text = nl2br($text);
$extra = "From: $Mail2 <$email>\n";
$extra .= "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n";
mail($Mail,$Betreff,$text,$extra);
?>
Vielen Dank für die Bestellung!<br>
Eine Bestellbestätigung wurde auf <? print "$Mail"; ?> gesendet!

[EDIT]
zu spät :(
[/EDIT]
 
prinzipeill schon recht gut, kann damit was anfangen :-)

aber hier doch noch mal mein code:

PHP:
<?php
		
	for($i = 0; $i < count($shoppingcart); $i++) {
			echo("<tr>");
			echo("<td width=\"49%\">".$descriptions[$shoppingcart[$i]]."</td>");
			echo("<td></td>");
			echo("<td>");
			
			if ($si[$i] == ""){
				echo "---";
				$error = 1;
				$error_prod = $descriptions[$shoppingcart[$i]];
				
			}else{
				echo $si[$i];
			} 
			
			echo("<br></td>");
			echo("<td align=\"right\">");
			echo(number_format($prices[$shoppingcart[$i]],2));
			echo(" €</td>");
			echo("</tr>");
			$total = $total + $prices[$shoppingcart[$i]];
	}
?>

ich möchte ja nicht den ganzen inhalt des arrays senden, nur artikel-name, größe und preis.
 
Zurück