WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   PHP + mail() (http://www.wcm.at/forum/showthread.php?t=106734)

Frankster 26.08.2003 09:57

PHP + mail()
 
Hi!

Arbeite mit Sessions, wenn der Kunde seine Bestellung abschließt werden die Daten in die DB geschrieben.
Nur möchte ich jetzt gernde dem Kunden eine Mail schicken, die die von ihm bestellten Artikel enthält

Ich hab mir gedacht so!
PHP-Code:

$sendmail="$email";
$betreff="Bestellung";
$header="From: $email";

        
$Mail "SELECT * FROM bestellung WHERE ID='$ID'";
         
$Ergebnis mysql_db_query(""$Mail$bestellen);
        for (
$i=0$i<$num$i++)
           {
              
$Artikelnummer mysql_result($res$i"Artikelnummer");
              
$Stueck mysql_result($res$i"Stueck");
              
$Stueckpreis mysql_result($res$i"Stueckpreis");
              
$Preis mysql_result($res$i"Preis");
              
$Gesamtpreis mysql_result($res$i"Gesamtpreis");
        
$text="
        Artikelnummer:    $Artikelnummer;
        Stück:            $Stueck;
        Preis/Stück:    $Stueckpreis;
        Preis*Stück:    $Preis;
        Gesamtpreis:    $Gesamtpreis;
    };"
;
    
mail($sendmail,$betreff,$text,$header); 

Nur dürfte ich da einen Denkfehler haben ;)
------------------------------------------------------------------
2. Frage
Nachdem er die Bestellung abgschickt habe, kommt die Anweisung SESSION_DESTROY();
Schliesse ich das Fenster nicht und gehe zurück zum Warenkorb, ist der Warenkorb zwar leer, aber ich habe noch immer die gleiche Session ID
Warum ?
session destroy wurde ja ausgeführt, sonst wäre der Warenkorb nicht leer!

Mfg
Frankster

jonix 26.08.2003 10:28

ad 1) was genau geht denn nicht? mir scheint die mail-funktion richtig zu sein, funktioniert denn die datenbank-abfrage an und fuer sich?

ad 2) http://at2.php.net/manual/de/functio...on-destroy.php
Zitat:

session_destroy() löscht alle in Verbindung mit der aktuellen Session stehenden Daten. Mit der Session zusammenhängende Globale Variablen und das Session-Cookie werden nicht gelöscht.

Frankster 26.08.2003 10:47

Das Mail ist leer :-(

käptn 26.08.2003 10:57

Du schreibst:

$Ergebnis = mysql...

und dann

$var = mysql_result($res ...


Das kann nicht gehen.

~

SingleParty.cc 26.08.2003 10:59

$num
 
$num wird nicht belegt und somit wird die Schleife nicht durchlaufen.

Ausserdem ist am Ende der $text-Zuweisung ein Quirx mit der schliessenden }-Klammer und dem abschliessendes Anführungszeichen, aber das kann auch ein Tippfehler im Forum sein (würde sonst wohl eine Fehlermeldung auswerfen).

Testweise kannst Du ja vor das "mail()" ein "echo $text;" schreiben und sehen, was rauskommt.

PS: Ans Ende jeder Mail-Zeile gehört auch noch ein Carriage Return, aber das ist im Moment wohl noch nicht das Problem...

jonix 26.08.2003 11:02

1) versuch mal irgendeinen statischen text zu versenden -> kontrolle der mail-funktion

2) hier die korrekte syntax einer db-abfrage (von php.net):
PHP-Code:

<?php
    
/* Variablen definieren - fuell hier Deine Werte ein */
    
$host "";
    
$user "";
    
$pass "";
    
$database "";

    
/* Verbindung aufbauen, auswählen einer Datenbank */
    
$link mysql_connect($host$user$pass)
        or die(
"Keine Verbindung möglich!");
    print 
"Verbindung zum Datenbankserver erfolgreich";
    
mysql_select_db($database) or die("Auswahl der Datenbank fehlgeschlagen");

    
// ausführen einer SQL Anfrage
    
$query "SELECT * FROM bestellung WHERE ID='$ID'";
    
$result mysql_query($query) or die("Anfrage fehlgeschlagen");

    
// Ausgabe der Ergebnisse in einen String
    
$ausgabe "";
    while (
$line mysql_fetch_array($resultMYSQL_ASSOC))
    {
      foreach (
$line as $key=>$value)
      {
        
$ausgabe .= $key ": " $value "\n";
      }
    }

    
// Freigeben des Resultsets
    
mysql_free_result($result);

    
// schliessen der Verbinung
    
mysql_close($link);
?>


Frankster 26.08.2003 11:27

Ahrg
Sowas dummes :rolleyes:

Ist doch klar :rolleyes:

Man man man, da arbeit ich eh schon die ganze Zeit mit DB und PHP und dann so ein Fehler :D

DANKE :)

Frankster 26.08.2003 12:19

@jonix

Da stellt sich mir die Frage, wie kann ich eine Trennlinie machen ?
Das Problem ist, dass $ausgabe alles sammelt und anschlessend alles ausgibt.
Wenn jemand 3 Artikel bestellt schaut das so aus

Artikelnummer
Preis
Stueck
Artikelnummer
Preis
Stueck
Artikelnummer
Preis
stueck

Ich hätte gerne
Artikelnummer
Preis
Stueck
----------------------------
Artikelnummer
Preis
Stueck
-----------------------------

Die einzige Lösung die mir einfallen würde, wäre in der DB ein Feld anlegen, dass so ein Trennzeichen beinhalten, aber das ist nicht wirklich die feine art :-(

jonix 26.08.2003 12:27

du kannst zb nach der "foreach"-schleife, aber noch innerhalb der "while"-schleife, folgendes einfuegen:

$ausgabe .= "---------------------------\n";

Frankster 26.08.2003 12:30

Das is so simpel, das meine Frage echt unnötig war :D

ICH DANK DIE VIELMALS:)


Ich hab ein sehr komisches Problem:
Wie oben schon beschrieben kann ich die session_id nicht löschen :-(

Nach der Abschickung der Bestellung führe ich Session_destroy aus, dann überprüfe ich sogar ob die session_id noch gültig ist

if(session_id())echo session_id();echo "
";session_destroy(); if(!session_id())echo "Session-ID wurde zerstört";

Er schreibt mir Session-ID wurde zerstört.

Auf der Warenkorbseite hab ich ebenfalls eine Abfrage gestartet ob welche session id ich habe
echo"". session_id();

und er gibt mir haar genau die gleiche Session ID wie vorher aus.

Was hats da ?

Denk Link von hab ich mir schon angeschaut, und mach eigentlich das gleiche wie dort beschrieben


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag