Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Session Array als "Nicht-String" über PHP Formular an eMail senden?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Session Array als "Nicht-String" über PHP Formular an eMail senden?

    Hat sich jemand schonmal damit auseinander gesetzt?

    Hier ich geb euch mal meine Script-Teile.

    Session Array Ausgabe im Warenkorb (funktioniert problemlos)

    PHP-Code:
    <?php
           
    if(isset($_SESSION["products"]))
           {
               
    $total 0;

               foreach (
    $_SESSION["products"] as $cart_itm)
               {

                   echo 
    '&nbsp;&nbsp;&nbsp;<font size="4" color="black"><font-family="Cambria, Georgia, serif">';
                   echo 
    ''.$cart_itm["qty"].'';

    ...

    Email Formular funktioniert auch problemlos

    PHP-Code:
    <?php
        
    } else {   
       
        if (isset(
    $_POST["name"])) {
        
    $name $_POST["name"];
        ...
        
    $bestellung '';
        

       
               
        
    $betreff_besteller '...';
        
    $header_besteller 'From: ... . "\r\n";

        $nachricht_besteller = '
    Sehr geehrte(r'.$name.' '.$bestellung.'<br>';

        mail("...",$betreff_besteller,$nachricht_besteller,$header_besteller);

        echo "Danke für ihre Bestellung";
        }       
        
    }
    ?>

    Ich habe bereits probiert den rohen String über print_r oder var_dumb auszugeben und an eine PHP Variable zu übergeben und diese in der Nachricht zu integrieren. Das ist aber eigentlich nicht das Ziel.

    Das Ziel ist es, den Warenkorb, welcher über die Foreach Schleife durch das Array geht und alle Artikel mit Namen und Preis anzeigt, auch in ähnlicher bzw. geordneter Form und eben nicht als String an die eMail des Bestellers zu verschicken.

    Ich bin mir nicht sicher, wie ich das einbauen soll. Nochmal die forearch Schleife irgendwo einbauen?

    Ich bedanke mich für jeden Tipp!

  • #2
    Was spricht dagegen die Ausgabe aus deinem ersten Beispiel einfach in eine Variable zu packen?

    Wenn ich dich richtig verstehe willst du den Inhalt des Warenkorbs im selben Format wie in Snippet 1 in Snippet 2 in die Variable $bestellung bzw die Nachricht packen, und das sollte doch auch kein Problem sein, einfach statt der Ausgabe per echo das alles in einer Variablen ($bestellung) speichern und gut.

    Ist allerdings dann natürlich auch ein String, wobei es mir so vorkommt als ob du die Session Variable als String sehen würdest (wegen der Aussage bzgl Ausgabe per print_r / var_dump), das ist aber ein Array, wenns ein String wäre könntest du es ja einfach so übernehmen, je nach Format, auf jeden Fall aber ohne foreach.


    Also wenn ich dich richtig verstanden habe ungefähr so in der Art:

    PHP-Code:
    if (isset($_POST["name"])) { 
        
    $name $_POST["name"]; 
        ... 
        
    $bestellung ''
         
        foreach (
    $_SESSION["products"] as $cart_itm) { 
                   
    $bestellung .= '&nbsp;&nbsp;&nbsp;<font size="4" color="black"><font-family="Cambria, Georgia, serif">'
                   
    $bestellung .= ''.$cart_itm["qty"].'';
          }
        
                
        
    $betreff_besteller '...'
        
    $header_besteller 'From: ... '"\r\n"

        
    $nachricht_besteller 'Sehr geehrte(r) '$name .' '$bestellung .'<br>'

        
    mail("...",$betreff_besteller,$nachricht_besteller,$header_besteller); 

        echo 
    "Danke für ihre Bestellung"
        } 
    Wobei ich übrigens Dinge wie z.B.
    Code:
    <font size="4" color="black"><font-family="Cambria, Georgia, serif">
    eher per CSS lösen würde (und / oder am besten natürlich jegliches HTML von vornherein in Templates auslagern), spart Code und ist übersichtlicher.

    Kommentar


    • #3
      WTB! Danke Dir. Du hast mich genau richtig verstanden und genau diese Lösung habe ich gesucht. Funktioniert fehlerfrei und Du hast meinen Tag gerettet. In puncto CSS gebe ich Dir natürlich Recht, in diesem Falle habe ich allerdings nur eine einzige Zeile anders "gestyled". Manchmal schreibe ich dafür keine seperate Klasse.

      Vielen vielen Dank!

      Kommentar

      Lädt...
      X