kostenloser Webspace werbefrei: lima-city


php email in if Bedingung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    hitradio-de

    hitradio-de hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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. ;)
  4. Autor dieses Themas

    hitradio-de

    hitradio-de hat kostenlosen Webspace.

    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?
  5. h***e

    Poste mal deinen kompletren code ohne den ganzen Code kann dir niemand helfen.
  6. Autor dieses Themas

    hitradio-de

    hitradio-de hat kostenlosen Webspace.

    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&auml;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&uuml;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&uuml;ck</a>";
            }
    
    
        }
    
    else
        {
        echo "Benutzername schon vorhanden. <a href=\"bewerbung.php\">Zur&uuml;ck</a>";
        }
    ?>


    die sternchen sind für die datenbank zugänge...
  7. 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
  8. Ich würde hier:
    $betreff    = "Neue Bewerbung ";
    am Ende noch den Leerschlag entfernen. Der Fehler aber ist wie tchab schon schrieb das Semikolon, das fehlt, hinter $nachricht.
  9. 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.
  10. 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.
  11. 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
  12. 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.
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!