php email in if Bedingung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ansprechpartner
benutzername
betreff
bewerbungsschreiben
code
datenbank
editor
eintrag
eintragen
email
ergebnis
fehler
freigabe
funktion
geburtsdatum
nachricht
testen
url
versuchen
webseite
-
Hallo
Ich möchte eine php seite programmieren, inder man sich registrieren kann. die eigegebenen daten sollen über eine weitere seite in die Datenbank eingetragen werden und bei erfolgreichem eintrag soll eine email an mich zur info geschickt werden.
Bis zum Eintragen in die Datenbank geht es.. wie kann ich es danach weiter machen? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Einfach die PHP-Funktion mail() nutzen.
Alle Details hierzu:http://php.net/manual/de/function.mail.php
Ist eigentlich recht übersichtlich und sollte nicht allzuviele Probleme bereiten. ;) -
Ja... soweit kapiere ich es auch...
Mein problem ist folgendes:
<? If($eintragen == true) { $nachricht = "Vielen Dank fuer deine Bestellung"; $betreff = "Information"; $empfaenger = "kunde@example.com"; $ergebnis = mail($empfaenger, $betreff, $nachricht); if($ergebnis) { echo "die Registrierung war erfolgreich"; } else { echo "Die Registrierung war zwar erfolgreich aber die admins wurden nicht benachrichtigt"; }}
Es soll so sein, dass bei einer erfolgreichen eintagung in der Datenbank die mail verschickt wird. Im code steht $eintragen == true für eine erfolgreiche Eintragung.
Als ich den code von oben versucht habe kam weder der eintrag in drr Datenbank noch eone mail kam
Ohne die mail klappt aber alles
Wo ist der fehler? -
Poste mal deinen kompletren code ohne den ganzen Code kann dir niemand helfen.
-
hpage schrieb:
Poste mal deinen kompletren code ohne den ganzen Code kann dir niemand helfen.
hier der ganze code:
<?php // Hier Daten von dem Datenbankzugang eintragen!!!! $verbindung = mysql_connect("*****", "*******", "*****") or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); //Hier Datenbankname eintragen!!! mysql_select_db("******") or die ("Datenbank konnte nicht ausgewählt werden"); $radio_name = $_POST['Radio_Name']; $radio_mail = $_POST['Radio_Mail']; $webseite = $_POST['Webseite']; $ansprechpartner = $_POST['Name']; $geburtsdatum = $_POST['Geburtsdatum']; $email = $_POST['E-Mail']; $username = $_POST['username']; $passwort = $_POST['passwort1']; $bewerbungsschreiben = $_POST['Bewerbungsschreiben']; $freigabe = 'no'; $passwort = md5($passwort); $result = mysql_query("SELECT id FROM User WHERE Username LIKE '$username'"); $menge = mysql_num_rows($result); if($menge == 0) { $eintrag = "INSERT INTO User (Radio_Name, Radio_Mail, Webseite, Ansprechpartner, Geburtsdatum, email_Ansprechpartner, Bewerbungsschreiben, Username, Passwort, Freigabe) VALUES ('$radio_name','$radio_mail', '$webseite', '$ansprechpartner', '$geburtsdatum', '$email', '$bewerbungsschreiben', '$username', '$passwort', '$freigabe')"; $eintragen = mysql_query($eintrag); if($eintragen == true) { $nachricht = "das ist die nachricht" $betreff = "Neue Bewerbung "; //Empfänger ändern $empfaenger = "info@deinemail.de; $ergebnis = mail($empfaenger, $betreff, $nachricht); if($ergebnis) { echo "Benutzername <b>$username</b> wurde erstellt. Wir werden deine Anfrage schnellstmöglich prüfen und dich bei einer erfolgreichen Freischaltung per E-mail informieren. <a href=\"index.php\">Zur Homepage</a>"; } else { echo "Benutzername <b>$username</b> wurde erstellt, aber mit der automatischen Benachrichtigung klappt etwas nicht... BENACHRICHTIGE UMBEDINGT EINEN ADMIN, DA DU SONST NICHT FREIGESCHALTET WIRST!!!! <a href=\"index.php\">Zur Homepage</a>"; } } else { echo "Fehler beim Speichern des Benutzernames. Bitte versuche es nochmal oder wende dich an die Admins. <a href=\"bewerbung.php\">Zurück</a>"; } } else { echo "Benutzername schon vorhanden. <a href=\"bewerbung.php\">Zurück</a>"; } ?>
die sternchen sind für die datenbank zugänge... -
hitradio-de schrieb:
$nachricht = "das ist die nachricht";
Edit: Steige am besten auf einen Editor mit Syntax-Highlightning um, das hilft dabei, solche Fehler zu erkennen.
Ich kann VIM nur empfehlen, aber für einen Einsteiger tut es wohl auf notepad++.
Mehr zu den Editoren hier: https://www.lima-city.de/thread/24-11-2013-editoren
Beitrag zuletzt geändert: 27.11.2013 14:31:28 von tchab -
Ich würde hier:
am Ende noch den Leerschlag entfernen. Der Fehler aber ist wie tchab schon schrieb das Semikolon, das fehlt, hinter $nachricht.$betreff = "Neue Bewerbung ";
-
Ich bin mir nicht sicher, ob es was hilft, aber versuche mal, statt
$ergebnis = mail($empfaenger, $betreff, $nachricht); if($ergebnis) {
das zu schreiben:if(mail($empfaenger, $betreff, $nachricht)) {
so sollte zumindest die email geschickt werden. an der DB ändert sich dadurch nix. -
snhth schrieb:
Ich bin mir nicht sicher, ob es was hilft, aber versuche mal, statt$ergebnis = mail($empfaenger, $betreff, $nachricht); if($ergebnis) {
das zu schreiben:if(mail($empfaenger, $betreff, $nachricht)) {
so sollte zumindest die email geschickt werden. an der DB ändert sich dadurch nix.
Weiß nicht ob mail() etwas zurückgibt, aber so wie der TE es hat ist der Code sauberer. Sauberer dadurch:
1. Man kann $ergebnis später weiter verwenden.
2. Sind Funktionsaufrufe und Variablenzuweisungen in den Köpfen der if-Bedingungen (wie auf immer der Fachausdruck ist :D) sehr unschön und schwerer lesbar, somit schwerer wartbar. -
copynpaste schrieb:
...
1. Man kann $ergebnis später weiter verwenden.
2. Sind Funktionsaufrufe und Variablenzuweisungen in den Köpfen der if-Bedingungen (wie auf immer der Fachausdruck ist :D) sehr unschön und schwerer lesbar, somit schwerer wartbar.
Das ist sicher richtig, aber ich bin nicht ganz sicher, ob die Funktion Mail() wirklich ausgeführt wird, wenn sie so dasteht wie beim TE. Ich weiß aber (aus eigener Erfahrung), dass sie 100pro ausgeführt wird, wenn sie in der if-Condition (?) steht.
Falls es auch so funktionieren sollte, wie der TE es geschrieben hat (beim Variablen initialisieren), dann ist mein Kommentar natürlich überflüssig. Ich kann das leider grad nicht testen.
PS: in dem Fall gibt Mail auch ein true bzw false zurück.
Beitrag zuletzt geändert: 27.11.2013 23:11:14 von snhth -
snhth schrieb:
Falls es auch so funktionieren sollte, wie der TE es geschrieben hat (beim Variablen initialisieren), dann ist mein Kommentar natürlich überflüssig. Ich kann das leider grad nicht testen.
Klar, in einer Zuweisung ($a = 1 ist eine Zuweisung) wird die Funktion, die sozusagen auf die Variable gesetzt wird, ausgeführt, und die Variable bekommt den Wert, den die Funktion zurück gibt - in diesem Fall wahrscheinlich true||false. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage