an mysql und e-mail senden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aussehen
benutzername
betreff
blocken
code
eintrag
eintragen
fehler
header
http
komma
mime
nachricht
parameter
setzen
stehen
text
type
verwenden
weben
-
Ich habe versucht, dass alle mysql einträge in meinem Newssystem nicht nur in eine mysql Datenbank sondern zusätzlich noch per mail an mich versandt werden.
Das Problem ist nur ich kriege es nur hin das sich das mail Programm öffnet und dort der text erscheint, nicht aber das er ohne irgendeinen Befehl oder ein programm einfach per e-mail im Hintergrund verschickt wird aber geht das überhaupt? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
das ist ganz einfach: dazu nimmst du die Funktion \'mail()\'
http://de3.php.net/mail
hier solltest du alles finden was du brauchst
sonst frag einfach nochmal.
gruss joma -
wie meinst du das mit keine Parameter im text verwenden.
beschreib doch deine Probleme ein bisschen besser.
eine Mail schrebst du so:
$empfanger = \'irgendjemand@irgendwo.ch\'; $betreff = \'Hallo meine Mail\'; $text = \'Hallo wie geht es dir mit^r geht es gut.\'; $absender = \'ich@zuhause.ch\'; mail($empfanger; $betreff; $text; \'From: \'.$absender);
gruss joma -
Ja das habe ich alles hinbekommen. Blöderweise kann ich aber keine Parameter im Text verwenden wie z.b $Text. Ich habe schon alles versucht. Warum geht es nicht?
WEiß nicht ob ich das jetzt richtig verstanden haben, aber $ zB musst du in PHP escapen wenn du es ausgeben willst.
\\$ -
Das habe ich acuh gemacht nur das Ich unter dem Text Parameter haben will.
Siehe hier:
Text= Benutzername: <? echo $benutzername ?> ...
So soll das aussehen nur es funktioniert nicht. -
das würde ich alles in eine php block packen und so schreiben:
$text = \'Benutzername: \'.$benutzername;
denn die ganze mail anweissung muss in einem php-Block stehen, also warum
no-smoke schrieb:
Text= Benutzername: <? echo $benutzername ?> ...
So soll das aussehen nur es funktioniert nicht.
Beitrag geändert: 28.1.2008 18:44:59 von joma93 -
Das habe ich acuh gemacht nur das Ich unter dem Text Parameter haben will.
Siehe hier:
Text= Benutzername: <? echo $benutzername ?> ...
So soll das aussehen nur es funktioniert nicht.
Das was du da schreibst kann so nur direkt ausgegeben werden, aber zB nicht von einer PHP-Funktion verarbeitet werden, Text ist ja zB in deinem Fall nicht mal eine Variable. -
Also irgendwie ist das komisch ich habe alles in einem Php block stehen und es klappt trotsdem nicht
$nachricht = \'Benutzername: .$benutzername\';
Beitrag geändert: 28.1.2008 18:50:06 von no-smoke -
Also irgendwie ist das komisch ich habe alles in einem Php block stehen und es klappt trotsdem nicht
$nachricht = \'Benutzername: .$benutzername\';
Beitrag geändert: 28.1.2008 18:50:06 von no-smoke
Poste mal den ganzen Code -
Wie du gleich in meinem Dukoment feststellen kannst habe ich alles oben angegeben was er wissen muss:
<?php //die Konfigurationsdateien lesen error_reporting(E_ALL); include \"inc/config.php\"; //Datebnbanklogin @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error()); mysql_select_db(MYSQL_DATABASE) OR die(mysql_error()); //Parameter holen $benutzername = htmlentities($_POST[\'benutzername\']); $mail = htmlentities($_POST[\'mail\']); $homepage = htmlentities($_POST[\'homepage\']); $eintrag = htmlentities($_POST[\'eintrag\']); $IP = getenv(\"REMOTE_ADDR\"); //Parameter prüfen if($benutzername != \"\" && $eintrag != \"\") { //Eintrag escapen $benutzername = str_replace(\"Schule1\", \"<font color=#FF0000>Administrator</font>\", $benutzername); $eintrag = str_replace(\"\\n\", \"<br />\", $eintrag); $eintragen = \"INSERT INTO guestbook (IP, Datum, Benutzername, Mail, Homepage, Eintrag) VALUES( \'$IP\', NOW(), \'$benutzername\', \'$mail\', \'$homepage\', \'$eintrag\' ) \"; $result = mysql_query($eintragen) OR die(mysql_error()); if($result) { header(\"location: http://www.ruanda-projekt.de/?s=auslesen\"); } else { echo \"Eintrag konnte nicht gespeichert werden\"; } } else { if($eintrag == \"\") { echo \"Du musst einen Gästebuch eintrag schreiben.\"; } if($benutzername == \"\") { echo \"Du musst einen Benutzernamen eingeben\"; } } // mehrere Empfänger $empfaenger = \'Sascha.Ladewig@Gmx.de\' . \', \'; // beachten Sie das Komma $empfaenger .= \'S-ladewig@web.de\'; // Betreff $betreff = \'Neuer Gästebucheintrag\'; // Nachricht $nachricht = \'Benutzername: .$benutzername\'; // für HTML-E-Mails muss der \'Content-type\'-Header gesetzt werden $header = \'MIME-Version: 1.0\' . \"\\r\\n\"; $header .= \'Content-type: text/html; charset=iso-8859-1\' . \"\\r\\n\"; // zusätzliche Header $header .= \'From: Neuer Gästebucheintrag <Sascha.Ladewig@Gmx.de>\' . \"\\r\\n\"; // verschicke die E-Mail mail($empfaenger, $betreff, $nachricht, $header); ?>
-
Also du hast schon was weggenommen, oder, denn da fehlt was.
Probiers mal so:
<?php //die Konfigurationsdateien lesen error_reporting(E_ALL); include \"inc/config.php\"; //Datebnbanklogin @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error()); mysql_select_db(MYSQL_DATABASE) OR die(mysql_error()); //Parameter holen $benutzername = htmlentities($_POST[\'benutzername\']); $mail = htmlentities($_POST[\'mail\']); $homepage = htmlentities($_POST[\'homepage\']); $eintrag = htmlentities($_POST[\'eintrag\']); $IP = getenv(\"REMOTE_ADDR\"); //Parameter prüfen if($benutzername != \"\" && $eintrag != \"\") { //Eintrag escapen $benutzername = str_replace(\"Schule1\", \"<font color=\\\"#FF0000\\\">Administrator</font>\", $benutzername); $eintrag = str_replace(\"n\", \"\", $eintrag); $eintragen = \"INSERT INTO guestbook (IP, Datum, Benutzername, Mail, Homepage, Eintrag) VALUES( \'$IP\', NOW(), \'$benutzername\', \'$mail\', \'$homepage\', \'$eintrag\' ) \"; $result = mysql_query($eintragen) OR die(mysql_error()); if($result) { header(\"location: http://www.ruanda-projekt.de/?s=auslesen\"); } else { echo \"Eintrag konnte nicht gespeichert werden\"; } } else { if($eintrag == \"\") { echo \"Du musst einen Gästebuch eintrag schreiben.\"; } if($benutzername == \"\") { echo \"Du musst einen Benutzernamen eingeben\"; } } // mehrere Empfänger $empfaenger = \'Sascha.Ladewig@gmx.de, S-ladewig@web.de\'; // beachten Sie das Komma //$empfaenger .= \'S-ladewig@web.de\'; // Betreff $betreff = \'Neuer Gästebucheintrag\'; // Nachricht $nachricht = \'Benutzername: \'.$benutzername; // für HTML-E-Mails muss der \'Content-type\'-Header gesetzt werden $header = \'MIME-Version: 1.0\' . \"rn\"; $header .= \'Content-type: text/html; charset=iso-8859-1\' . \"rn\"; // zusätzliche Header $header .= \'From: Neuer Gaestebucheintrag <Sascha.Ladewig@gmx.de>\' . \"rn\"; // verschicke die E-Mail mail($empfaenger, $betreff, $nachricht, $header); ?>
Edit: Wieso ersetzt du alle n mit nichts??
Beitrag geändert: 28.1.2008 19:01:56 von philippkern -
zur erklärung:
das Anführungszeichen muss vor die variable $benutzername , sonst wird nicht der Benutzernamen angezeigt sonder das \'Wort\' $benutzername
deine Schreibweise:
// Nachricht
$nachricht = \\\'Benutzername: .$benutzername\\\';
die richtige schreibweise:
// Nachricht
$nachricht = \\\'Benutzername: \\\'.$benutzername;
-
wie meinst du denn das wieder von was willst du mehrere sachen einfügen???
-
Von den Variablen.
ich habe versucht die Anführungszeichen erneut zu setzen aber die Werte liest er nicht ein.
Was bedeutet in der E-mail kann ich nur den Benutzernamen sehen aber nicht die E-mail Sdresse. -
wo willst du überhaupt kommata setzen??
(sorry das ich nochmal frage aber heb doch zum beispiel die stelle in deinem code hervor.) -
Ich habe mir das so gedacht:
// Nachricht $e = \'Benutzername: \'.$benutzername \'E-mail: \'.$mail; // für HTML-E-Mails muss der \'Content-type\'-Header gesetzt werden $header = \'MIME-Version: 1.0\' . \"rn\"; $header .= \'Content-type: text/html; charset=iso-8859-1\' . \"rn\"; // zusätzliche Header $header .= \'From: Neuer Gaestebucheintrag <Sascha.Ladewig@gmx.de>\' . \"rn\"; // verschicke die E-Mail mail($empfaenger, $betreff, $e, $header); ?>
Beitrag geändert: 1.2.2008 22:28:47 von no-smoke -
no-smoke schrieb:
Ich habe mir das so gedacht:
// Nachricht $e = \\\'Benutzername: \\\'.$benutzername \\\'E-mail: \\\'.$mail; // für HTML-E-Mails muss der \\\'Content-type\\\'-Header gesetzt werden $header = \\\'MIME-Version: 1.0\\\' . \\\'rn\\\'; $header .= \\\'Content-type: text/html; charset=iso-8859-1\\\' . \\\'rn\\\'; // zusätzliche Header $header .= \\\'From: Neuer Gaestebucheintrag <Sascha.Ladewig@gmx.de>\\\' . \\\'rn\\\'; // verschicke die E-Mail mail($empfaenger, $betreff, $e, $header); ?>
Beitrag geändert: 1.2.2008 22:28:47 von no-smoke
ok jetzt weiss ich was du meinst:
du musst immer wenn du zwei strings, also variabeln verbinden willst einen punkt dazwischen setzen also:
$e = \'Benutzername: \'.$benutzername .\'E-mail: \'.$mail;
das heisst also auch immer hinter die variable und nicht nur davor.
gruss johannes
-
Vielen Dank.
Jetzt habe ich noch ein ziemlich komisches Problem. Er nimmt keine <br> Vefehle in der E-mail an.
Warum nicht?
Denke ich jetzt gerade falsch? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage