Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » daten in DB einfügen und als Email versenden Antworten
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 "<html><head>";
print "<meta http-equiv=\"content-type\" content=\"text/html;charset=iso-8859-1\">";
print "<link href=\"mmid.css\" rel=\"stylesheet\" media=\"screen\">";
print "<title>Vielen Dank!</title>";
print "</head>";
print "<body bgcolor=\"ffffff\">";
print "




";
print "<p class=\"gross\" align=\"center\">Vielen Dank für Ihren Gästebucheintrag ! </p>";
print "</body></html>";
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
Quasselstrippe


Beiträge: 391


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: 1508


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 !

Manchmal sieht man den Wald vor lauter Bäumen nicht !

Der Eintrag wird zumindest jetzt Versucht !

Stehen aber keine Daten drin und das datum ist der 01.01.70 ! (?)

Hab aber glaub einen Lösungsanzatz sollte die variablen noch einmal in kurzfom zwischenspeichern ala;


$url = $HTTP_POST_VARS["......l"];
$hpname = $HTTP_POST_VARS["...."];
$name = $HTTP_POST_VARS["....."];
$banner = $HTTP_POST_VARS["....."];
$beschreibung = $HTTP_POST_VARS["......"];

wenn das nicht funzt melde ich mich nocheinmal!

  Profil   E-Mail   Editieren   Zitieren

Philipp Gérard
Foren-Team


Beiträge: 1508


ü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
 

Antworten
Nach oben