Mailversand aus php -aber mit mysql daten

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

  • Mailversand aus php -aber mit mysql daten

    Hallo Ihr,

    Jetzt bin ich endgültig am verzweifeln. Mein Problem:
    Ich habe mich darin versucht, einen kleinen Online-Shop zu schreiben. Es funzt wie folgt:
    1. Kunde loggt sich ein, und identifiziert sich so
    2. Kunde wählt Produkte aus, diese werden in die Tabelle 'Warenkorb' übergeben.
    3. Kunde kann warenkorb sehen und zur Kasse gehen
    4. AUf der Kasse-Seite werden noch einmal alle Daten angezeigt und per click bestellt.
    5. DIESER Click ist das problem.
    Es soll eine Seite aufgerufen werden, die den Inhalt des Warenkorbs ( also der Tabelle ) in den Inhalt einer HTML Email schreibt. Eine Mail aus PHP schreiben ist nicht das Problem, aber wenn ich im Quelltext auf einmal eine PHP-Datenbankabfrage mache, funktioniert es nicht :


    ?
    $empfaenger="info@mailfach.de";
    $betreff="Eine neue Bestellung ist eingegangen...";
    $nachricht="
    <html>
    <body>

    <p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Sie haben eine
    neue Bestellung erhalten.<br>
    </font></p>
    <p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Hier die entsprechenden
    Teilnehmerdaten:</font></p>


    <?
    mysql_connect("localhost","root","PASSWORT") or die ("Keine Verbindung möglich");
    $suche=mysql_query("SELECT * FROM DB.warenkorb WHERE BENUTZERID = '$user'");

    ...



    Ich nehme an, dass es nicht funktioniert, weil das ja eine HTML Mail ist, und keine PHP Mail. Aber man muss das doch realisieren können.

    Wenn ja, wie gehts ?
    Bitte um Hilfe ! VIIIIIIIEL Hilfe

    1000 Dank schon mal und bis bald,
    Stefan

  • #2
    Re: Mailversand aus php -aber mit mysql daten

    Original geschrieben von amateur
    Ich nehme an, dass es nicht funktioniert, weil das ja eine HTML Mail ist, und keine PHP Mail.
    schwachsinn. was ist denn bitte eine "PHP-mail"?


    du wirst doch wohl in der lage sein, in den string $nachricht auch die daten einzufügen, die du vorher aus der DB ausgelesen hast?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      BITTE?

      HALLO?

      Ich dachte das ist ein Forum für Anfänger und Profis -

      NEIN, ich habe keine Ahnung wie ich das anstellen soll - aber wenn du so schlau bist, kannst Du es mir ja sagen anstatt hier den großen Allwissenden zu markieren.

      Ich glaub ich spinne - da stellt man eine Frage und bekommt einen auf den Deckel.

      Kommentar


      • #4
        bevor sich das hier wieder aufbläht....

        1. JA für Anfänger, aber welche die sich auch dafür interessieren und nicht irgendwo Grundlagenlos ein Script laden und dann daran herumfuchteln und nach Hilfe rufen!
        Denn, wenn du ein Shop System selber uf die Beine gestellt hättest, dann würdest du das hier nicht fragen?! Da dies Grundlagen sind

        Also: COOL DOWN!

        2. Lsg.:

        Erst Abfrage aus der DB machen und dann die Werte in $nachricht einfügen...
        Für Rechtschreibfehler übernehme ich keine Haftung!

        Kommentar


        • #5
          du kannst nur per php Mail versenden, nicht per HTML. HTML ist nur für
          das Layout deiner Mail zuständig. Also pack die DB-Daten zwischen die
          schönen HTML-Tags und übergib dem PHP zum Senden, wie du ansatzweise
          schon angefangen hast.

          Kommentar


          • #6
            ähäm

            STOP -

            Ich bin kein Freund von Auseinandersetzungen, aber ich muss hier mal dringend was klarstellen.

            1. JA, ich bin ein Anfänger
            2. NEIN, ich hab das nicht in der Schule / Ausbildung gelernt, sondern alles via Learning By Doing
            3. NEIN, das ist kein Standardscript, sondern eine komplett eigene Kreation. Es ist sicher ganz furchtbar programmiert, aber das tut nichts zur Sache - denn es ist alleine von mir.
            4. JA, ich kann eine Mail aus PHP schicken
            5. NEIN - ich weiß wirklich nicht wie ich in die Mailfunktion die Datenbank einarbeite - wenn ich es wüsste würde ich die Frage ja nicht stellen !
            6. JA, natürlich weiß ich wie man Datenbankinhalte aufruft / modifiziert.

            Der Shop ist fertig, es fehlt nur diese eine Sache - und die kann ich nun mal nicht, weil ich etwas in der Art vorher NIE gemacht habe. Wenn ich damit unter dem allgemeinem Niveau liege tut es mir leid, aber ohne Hilfe kann ich es nicht ändern !

            Ich bitte euch also: Sagt mir doch einfach was ich falsch mache ? So wie es jetzt da steht funzt es nicht - und ich bin mir sicher der Grund ist soooo easy.

            Ich hoffe alle Unklarheiten sind jetzt beseitigt.

            Danke
            Stefan

            Kommentar


            • #7
              PHP-Code:
              $empfaenger="info@mailfach.de";
              $betreff="Eine neue Bestellung ist eingegangen...";
              // Erst Daten holen
              mysql_connect("localhost","root","PASSWORT") or die ("Keine Verbindung möglich");
              $suche mysql_query("SELECT * FROM DB.warenkorb WHERE BENUTZERID = '$user'");
              $value mysql_fetch_array($suche);
              $nachricht="
              <html>
              <body>

              <p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Sie haben eine
              neue Bestellung erhalten.<br>
              </font></p>
              <p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Hier die entsprechenden
              Teilnehmerdaten:</font></p>
              "
              .$value['wertausdb']."

              ....
              irgendwas
              ....
              "
              .$value['wertausdb2']."
              ...
              to be continued
              "

              Wie gesagt, erst die Abfrage und dann mit mysql_fetch_array, die daten eintragen...

              Wobei, wo wird $user definiert?
              Für Rechtschreibfehler übernehme ich keine Haftung!

              Kommentar


              • #8
                mhh...

                Das ist ein Anfang - aber ich komm noch nicht weiter.

                Erstmal: die Variable $userid wird von der vorherigen Seite übernommen - das klappt allerdings auch problemlos.

                Bei deiner Lösung sehe ich nur ein Problem:

                Zuerst lässt du alle Daten einlesen - ok.
                Dann erst öffnest du mit
                $nachricht="
                die eigentlich Nachricht. - ok

                Aber: wenn ich
                ".$value['wertausdb']."
                ausgeben lasse - dann erscheint doch nur ein wert. Wenn der warenkorb aber mehrere Datensätze beinhaltet, muss ich für jeden Datensatz eine Zeile in die Tabelle einfügen.

                Muss ich nicht hier irgendwo die einzelnen Sätze in Form einer Schleife auslesen lassen ( also Array für Array ) ?

                Gruß
                DerStefan

                Kommentar


                • #9
                  das macht man mit while

                  Bsp.:
                  PHP-Code:

                  $nachricht 
                  "blabla";
                  while(
                  $value mysql_fetch_array($suchen))
                  {
                       
                  $nachricht .= "blac ".$value['wertausdb']."<br />";

                  Lässt sich aber auch im Manual nachlesen
                  Für Rechtschreibfehler übernehme ich keine Haftung!

                  Kommentar


                  • #10
                    aaaah

                    ich glaube, jetzt habe ich verstanden.
                    Ein Versuch ist es wert.

                    Vielen lieben Dank schon mal - wenns nicht klappt poste ich den ganzen Code nochmal.

                    Viele liebe Grüße

                    Stefan

                    Kommentar


                    • #11
                      heul

                      Ich glaube es jetzt verstanden zu haben, aber es will noch nicht klappen.

                      Hier der Fehler:
                      Parse error: parse error, unexpected '>' in /home/.../sendmail.php on line 32
                      Code:
                      <? 
                      # Aufruf der Benutzerkontrollroutine
                      include ("checkuser.php"); 
                      ?>
                      <html>
                      <head>
                      <title>Bestellung versendet...</title>
                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                      </head>
                      <body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
                      <?
                      $empfaenger="info@mailadresse.de";
                      $betreff="Eine neue Bestellung ist eingegangen...";
                      $user = $_SESSION["user_id"];
                      mysql_connect("localhost","root","Passwort") or die ("Keine  Verbindung möglich");
                      $suche=mysql_query("SELECT * FROM datenbank.warenkorb WHERE BENUTZERID = '$user'");
                      $nachricht ="
                      <html> 
                      <body> 
                      <p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Sie haben eine neue Bestellung erhalten.<br></font></p>
                      <p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Hier die entsprechenden Teilnehmerdaten:</font></p>
                      <table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
                          <tr>
                            <td>Interpret</td>
                            <td>Titel</td>
                            <td>Zustand</td>
                            <td>Preis</td>
                          </tr>
                      	  while($value = mysql_fetch_array($suchen))
                      {
                      $nachricht .="
                      	 <tr>
                            <td>".$value['cdinterpet']."</td>
                            <td>".$value['cdtitel']."</td>
                            <td>".$value['cdzustand']."</td>
                            <td>".$value['cdpreis']."</td>
                          </tr>
                      "}"
                      </table>
                      </body> 
                      </html> 
                      "; 
                      $xtra    = "From: $emailadresse\n"; 
                      $xtra   .= "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n"; 
                      $xtra   .= "X-Mailer: PHP ". phpversion()."\n"; 
                      mail($empfaenger, $betreff, $nachricht, $xtra);
                      ?>
                      Irgendwas ist ja IMMER *nerv* - was habe ich diesesmal übersehen ?

                      Danke schonmal,
                      Stefan

                      Kommentar


                      • #12
                        PHP-Code:
                        $nachricht ="
                        <html>
                        <body>
                        <p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Sie haben eine neue Bestellung erhalten.<br></font></p>
                        <p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Hier die entsprechenden Teilnehmerdaten:</font></p>
                        <table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
                            <tr>
                              <td>Interpret</td>
                              <td>Titel</td>
                              <td>Zustand</td>
                              <td>Preis</td>
                            </tr>"
                              
                        while($value mysql_fetch_array($suchen))
                        {
                        $nachricht .="
                             <tr>
                              <td>"
                        .$value['cdinterpet']."</td>
                              <td>"
                        .$value['cdtitel']."</td>
                              <td>"
                        .$value['cdzustand']."</td>
                              <td>"
                        .$value['cdpreis']."</td>
                            </tr>
                        "
                        }
                        $nachricht .="
                        </table>
                        </body>
                        </html>
                        "

                        benutze das nächste mal die PHP Tags da kommste dann auch selbst drauf

                        Klammer zu vergessen und unten, dann nochmal $nachricht .=...
                        Für Rechtschreibfehler übernehme ich keine Haftung!

                        Kommentar


                        • #13
                          wow

                          man bist du schnell -

                          ich hatte den Fehler auch gerade entdeckt - aber manchmal sieht man halt den Wald vor lauter Bäumen nicht. Es klappt jetzt !

                          HURRAAA.

                          Du bist der Beste

                          Thx a lot

                          Bai
                          Stefan

                          Kommentar


                          • #14
                            lol
                            Für Rechtschreibfehler übernehme ich keine Haftung!

                            Kommentar

                            Lädt...
                            X