"warenkorb"

und wie mahc ich die Email?
PHP:
<?php
$empfaenger = example@example.com';
$betreff = 'Bestellung';
$nachricht = '$_SESSION['warenkorb']';
$header = 'From: example@example.com' . "\r\n" .
    'Reply-To: example@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($empfaenger, $betreff, $nachricht, $header);
session_write_close()
?>

Des geht nämlich iwie net
hat des was mit dem
'X-Mailer: PHP/' . phpversion();
zutuen?
 
Du solltest dir wirklich korrekte Syntax angewöhnen, wenn ein Hochkomma oder Semikolon fehlen, geht nichts. Ausserdem musst du dein Session-Array noch in einen String umwandeln. Falls mehrere Dateinamen drin stehen, sollten ja auch alle geschickt werden, oder?

Versuchs hiermit:
PHP:
$empfaenger = 'example@example.com'; // ein Hochkomma vergessen!
$betreff = 'Bestellung';

$nachricht = 'Bestellte Bilder:' ."\n\n";

foreach( $_SESSION['warenkorb'] as $dateiname )
{
    $nachricht .= '- ' .$dateiname ."\n\n";
}

$header =   'From: example@example.com' . "\r\n" .
            'Reply-To: example@example.com' . "\r\n" .
            'X-Mailer: PHP/' .phpversion();

mail($empfaenger, $betreff, $nachricht, $header);

//edit: foreach ist doch etwas schöner.
 
Zuletzt bearbeitet:
jetzt macht er es aber so das wenn ich auf ein "in den Warenkorb" klick das er immer eine mail schickt wie kann ich es machen das er es auf eine email amcht?
 
PHP:
<?php
session_start();

/**
* Wenn der Link "In den Warenkorb" geklickt wird, Session füllen.
* Würde man das [] weglassen, wird $_SESSION['warenkorb'] immer überschrieben wenn ein
* anderer Link angeklickt wurde.
*/
if( isset( $_GET['bild'] ) )
{
    if( !in_array( $_GET['bild'], $_SESSION ) )
    {
        $_SESSION['warenkorb'][] = $_GET['bild'];
    }
}

$ordner = "images/";
$handle = opendir($ordner);
while ($file = readdir ($handle)) 
{
  if($file != "." && $file != "..") 
   {
    if(is_dir($ordner."/".$file)) 
     {
        echo "/".$file."<br/>";
     } 
   else 
    {
        // kompletter Pfad
        $compl = $ordner."/".$file;
        /**
        * Bild links und rechts davon der Link "In den Warenkorb"
        */
        echo '<img src="' .$compl. '" align="left" />
                <a href="' .$_SERVER['PHP_SELF']. '?bild=' .$file. '">In den Warenkorb</a><br />';
    }
   }
}
closedir($handle);
?> 
<?php
$empfaenger = 'example@example.de'; // ein Hochkommata vergessen!
$betreff = 'Bestellung';

$nachricht = 'Bestellte Bilder:' ."\n\n";

for( $i=0; $i<count( $_SESSION['warenkorb'] ); $i++ ) // Array auslesen...
{
    $nachricht .= '- ' .$_SESSION['warenkorb'][$i] ."\n\n";
}

$header =   'From: example@example.com' . "\r\n" .
            'Reply-To: example@example.com' . "\r\n" .
            'X-Mailer: PHP/' .phpversion();

mail($empfaenger, $betreff, $nachricht, $header);  
?>
 
Weil dein Script nach jedem Reload komplett ausgeführt wird, versuche folgendes:
PHP:
<?php
session_start();

/**
* Wenn der Link "In den Warenkorb" geklickt wird, Session füllen.
* Würde man das [] weglassen, wird $_SESSION['warenkorb'] immer überschrieben wenn ein
* anderer Link angeklickt wurde.
*/
if( isset( $_GET['bild'] ) )
{
    if( !in_array( $_GET['bild'], $_SESSION ) )
    {
        $_SESSION['warenkorb'][] = $_GET['bild'];
    }
}

$ordner = "images/";
$handle = opendir($ordner);
while ($file = readdir ($handle)) 
{
  if($file != "." && $file != "..") 
   {
    if(is_dir($ordner."/".$file)) 
     {
        echo "/".$file."<br/>";
     } 
   else 
    {
        // kompletter Pfad
        $compl = $ordner."/".$file;
        /**
        * Bild links und rechts davon der Link "In den Warenkorb"
        */
        echo '<img src="' .$compl. '" align="left" />
                <a href="' .$_SERVER['PHP_SELF']. '?bild=' .$file. '">In den Warenkorb</a><br />';
    }
   }
}
closedir($handle);

/**
* Einen Link erstellen den man anklicken muss um die E-Mail zu verschicken:
*/
echo '<a href="' .$_SERVER['PHP_SELF']. '?action=bestellen">Bestellen</a>';

if( isset( $_GET['action'] )
    && $_GET['action'] == 'bestellen' ) // Wenn der Link angeklickt wurde, Mail senden.
{

    $empfaenger = 'example@example.de';
    $betreff = 'Bestellung';

    $nachricht = 'Bestellte Bilder:' ."\n\n";

    for( $i=0; $i<count( $_SESSION['warenkorb'] ); $i++ )
    {
        $nachricht .= '- ' .$_SESSION['warenkorb'][$i] ."\n\n";
    }

    $header =   'From: example@example.com' . "\r\n" .
                'Reply-To: example@example.com' . "\r\n" .
                'X-Mailer: PHP/' .phpversion();

    mail($empfaenger, $betreff, $nachricht, $header);
} 
?>
 
ok klappt!!

10000000 dank!
aber eine frage noch wie mach ich es das es noch einen link gibt "bestellung zurück setzten" das die session geleeert wird?

//edit und dass wenn man auf "bestellen" geklickt hat eine meldung kommt vielen dank für ihre Bestellung
 
Zuletzt bearbeitet:
Zurück