daten in DB einfügen und als Email versenden 
grisu Pixelschubser
Beiträge: 16
 
Hallo ! 
Habe ein kleines Problem ! Ich möchte Formulardaten in eine DB eintragen lassen und gleichzeitig als Email versenden (Gästebuch!). Das mit der Mail Funzt ! -Kein Wunder ich habe als Grundlage für die php-Seite eine PHP-Formmailer benutzt der schon einige Tage bei mir läüft. nun wollte ich noch ein paar Zeilen einfügen damit die Daten in einer DB gespeichert werden
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
//Eintrag in Datenbank
$conn = mysql_connect("[b]meinHost[/b]","[b]meinUser[/b]","[b]meinpasswort[/b]");
  mysql_select_db("[b]datenbankname[/b]");
//Daten schreiben
$sql = "INSERT INTO [b]Tabellenname [/b](Datum,Name,Email,Ort,Homepage,Kommentar)";
$sql .= "VALUES '$date','$name','$email','$ort','$homepage','$kommentar')";
$result = mysql_query ($sql, $conn);
//Email an Kontaktadresse
exit; 
ELSEIF ($action="Send"): 
mail("$kontaktadresse","$betreff", "Gästebucheintrag auf $sitenaddresse \n
Name: $name
aus.....: $ort  \n
Email...: $email \n
Gästebucheintrag:
------------------------------------------------------------------------
$kommentar
------------------------------------------------------------------------
Info :
------------------------------------------------------------------------
Mailer: $vers
Benutzter Browser: $HTTP_USER_AGENT
Hostname: $ip
IP Addresse: $REMOTE_ADDR
Datum/Uhrzeit:  $date","FROM:$email"); 
//Automatische Antwort
mail("$email","$Antworttitel", "Sehr geehrte(r) $anrede $name !\n
Wir bedanken uns für Ihren Besuch auf unserer Internetseite und dem damit verbundenen Interesse
an unserer Arbeit.
Mit freundlichen Grüßen 
$sitenname
$sitenname2
$sitenaddresse","FROM:$kontaktadresse");  
print "";
print "Vielen Dank! ";
print "";
print "";
print "
";
print "Vielen Dank für Ihren Gästebucheintrag ! 
";
print "";
ENDIF;
?>
 
Die Daten für die Datenbankverbindung passen -Habe ich überprüft (Verbindung wird hergestellt!
Auch die Bezeichnungen der Formularfelddaten und der Tabellenzeilen in der DB passen.
Wo liegt der Fehler ? Bin ich blind ?
Als formAction habe ich $php_self eingetragen
Diese Nachricht wurde geändert von: languitar
   Profil 
  E-Mail 
  Editieren 
  Zitieren 
 
chip Foren-Team
Beiträge: 419
 
Hab den Quellcode noch nicht genau durchgelesen, aber versuchs mal anstatt mit $PHP_SELF mit 
$HTTP_SERVER_VARS['PHP_SELF']  bzw. mit 
$_SERVER['PHP_SELF'] .
--- 
   Profil 
  Website 
  Editieren 
  Zitieren 
 
grisu Pixelschubser
Beiträge: 16
 
Also daran liegt es nicht ! Ffunzt immernoch nicht !
Diese Nachricht wurde geändert von: grisu
   Profil 
  E-Mail 
  Editieren 
  Zitieren 
 
Philipp Gérard Foren-Team
Beiträge: 1502
 
VALUES ( '$date'Arbeit ist das Feuer der Gestaltung.  - Marx
Diese Nachricht wurde geändert von: Philipp Gérard
   Profil 
  E-Mail 
  Website 
  Editieren 
  Zitieren 
 
grisu Pixelschubser
Beiträge: 16
 
Ah jetzt ja ! 
   Profil 
  E-Mail 
  Editieren 
  Zitieren 
 
Philipp Gérard Foren-Team
Beiträge: 1502
 
übrigens:
ELSEIF, ENDIF & co. sind ganz übler Codingstil. Benutz lieber:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: if( $x = TRUE )
{
  do();
}
elseif( $y = FALSE )
{
.. 
--- 
Arbeit ist das Feuer der Gestaltung.  - Marx
   Profil 
  E-Mail 
  Website 
  Editieren 
  Zitieren 
 
grisu Pixelschubser
Beiträge: 16
 
So jetzt funktioniert alles !
Besten Dank für Eure Hilfe !!!
Für den ders wissen will, hier der richtige code:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
 
//Trick 17 für PHP Sicherheitseinstellungen
$name = $HTTP_POST_VARS["name"];
$email = $HTTP_POST_VARS["email"];
$ort = $HTTP_POST_VARS["ort"];
$homepage = $HTTP_POST_VARS["homepage"];
$kommentar = $HTTP_POST_VARS["kommentar"];
exit; 
ELSEIF ($action="Send"): 
//Eintrag in Datenbank
$conn = mysql_connect("mysql.XXXXXX.XY",XXXXXX","XXXXXXXXXX");
  mysql_select_db("DB-name");
//Daten schreiben
$sql = "INSERT INTO TABELLENNAME (Datum,Name,Email,Ort,Homepage,Kommentar)";
$sql .= "VALUES ('$date','$name','$email','$ort','$homepage','$kommentar')";
$result = mysql_query ($sql, $conn);
//Email an Kontaktadresse
 
das mit dem falschen datum hab ich auch gefunden. Ich hatte das Datum im Script als d/m/y formatiert und in der Datenbank-tabelle als y/m/d -> Muss natürlich so eingelesen werden wie es gespeichert werden soll.
Nochmals vielen dank für Eure Hilfe !
Diese Nachricht wurde geändert von: languitar
   Profil 
  E-Mail 
  Editieren 
  Zitieren