wer kann mir anhand eines beispiels mein problem lösen

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von icebaby, 24.07.2006.

  1. #1 icebaby, 24.07.2006
    icebaby

    icebaby Grünschnabel

    Dabei seit:
    24.07.2006
    Beiträge:
    1
    Zustimmungen:
    0
    Habe diese Aufgaben zu erledigen , probiers schon den ganzen tag- komme aber nicht darauf: hoffe mir kann wer helfen

    PHP:

    .1 Das Formular

    Wir stürzen uns gleich in 
    die großen Weiten des Nutzen von PHP und wollen uns über ein HTML Formular eine E-mail schickenDazu sehen wir uns zunächst das nötige Formular anWir brauchen ein Feld für eine Betreffzeile und ein Feldin das die Nachricht kommtwas alles in HTML realisiert wirdInteressant ist für uns zunächst das Form-Tag.







    echo 
    "<form action='index.php?Seite=email_senden.php' method='POST'> 
        // HTML Code für das Formular

    </form>"
    ;
     

    Innerhalb action steht die Seiteauf die man weitergeleitet wirdwenn man den Sende Button klicktIn method steht die Artin der die Formular Daten zur Übergabe an die Antwortseite gespeichert werden.
    Innerhalb des Form Tags kommt nun das Formular:

    echo 
    "<b>Betreff:</b> <input type='text' name='Betreff' size='50'><br>
    <textarea name='Nachricht' cols='45' rows='15'></textarea><br><br>
    <input type='submit' name='Abschicken' value='Abschicken'>"


    Lange HTML Passagen könnte man eigentlich auch außerhalb des PHP Codes schreiben und normal als HTML Code aufrufen lassenmuss aber nichtund du wirst in der nächsten Lektion sehenwarum es praktischer ist.

    Sehen wir uns aber nun erst einmal die Felder anJedes Feld hat seinen eigenen Namen innerhalb name=' 'Und genau das wird der Name der Variablen seinaus denen du auf der Antwortseite die Werte erhälst.
    Speicher die Seite nun unter formular.php ab und verlinke sie im Menü deines PHP Layouts

     

    3.2 Die Antwortseite

    Kommen wir nun zur interessanteren Seite email_senden
    .phpAuslesen wollen wir die Felder Betreff und Nachricht, die nach den Klicken des Sende Button in den Variablen $_POST['Betreff'und $_POST['Nachricht'steckenWie bei den $_GET Variablen würden auf den meisten Servern auch $Betreff und $Nachricht funktionierenaber wir wollen ja ordentlich bleiben. Die Anweisungmit der du deine E-mail verschickstlautet

    mail 
    ("ich@eMail.de"$_POST['Betreff'], $_POST['Nachricht']); 

    Die 
    Funktion mail() verschickt die E-mailÜberzugebene Werte in den Klammern nennt man ParameterDer erste Parameter ist deine E-mail Adresse, die du hier ersetzen solltestDer Zweite Paramenter ist die Betreffzeile und der dritte Parameter die Nachricht, die in der E-mail erscheintDein E-Mail Versand Formular würde nun schon funktionierenaber du würdest eine leere Seite als Antwort erhaltenda du dem Browser ja nicht gesagt hastdass er etwas ausgeben sollSchreibe also ein Satz zur Bestätigung.

    Wenn jemand den Sende Button betätigtohnedass er etwas geschrieben hatwirst du eine leere eMail erhaltenWie man dem vobeugen kannwirst du in der nächsten Lektion sehen.

     

    3.3 E-mail mit Absender

    Wenn du dein Formular gerade getestet hast
    wirst du festgestellt habendass der Absender einen komischen Namen hatteund solltest du versucht haben zu antwortenkam die Mail als unzustellbar zurückWenn dir jemand eine E-mail schreibtmöchtest du vielleicht aber auch antwortenDeshalb erweiter dein Formular um die Textfelder mit den Namen Name und E-mailWenn du das getan hastmusst du noch deine mail() Funktion um einen vierten Parameter erweitern:

    mail ("ich@eMail.de"$_POST['Betreff'], $_POST['Nachricht'], "From: ".$_POST['Name']." <".$_POST['E-mail'].">"); 

    Nun wird als Absender der eingetragene Name angezeigt und die E-mail Adresse angesteuertwenn du auf Antworten klickst.

     

    3.4 Nachricht formatieren

    Vielleicht willst du aber auch 
    die E-mail Adresse gleich in deiner E-mail sehenoder das Formular sogar noch um einige Felder erweitern, die ebenfalls in der E-mail stehen sollenIm dritten Parameter der Funktion wird zur Zeit nur übergebenwas der Absender in des Textfeld Nachricht eingegeben hatdas ist uns nun nicht mehr genugStelle dir deine E-mail selbst zusammen:

    $Mitteilung "Absender: ".$_POST['Name']."\n".
        
    "E-mail: ".$_POST['E-mail']."\n\n".
        
    $_POST['Nachricht'];

    mail ("ich@eMail.de"$_POST['Betreff'], $Mitteilung"From: ".$_POST['Name']." <".$_POST['E-mail'].">");

    echo 
    "<p align='center'>Deine E-mail wurde erfolgreich versandt!</p>";
     

    Neues steckt hier nicht drinDass \n erzeugt hier nun nur keinen Zeilenumbruch im Quelltextsondern einen in deiner E-mail und macht sie übersichtlicherIn der Variablen Mitteilung siehst du nun einige mit einem Punkt aneinander gereihte Strings und Variablen.

      


    --------------------------------------------------------------------------------

    3.5 Aufgaben

    3.5.1 Wenn 
    die eMail verschickt wurdesoll eine Bestätigung ausgegeben werdenGib ebenfalls die übersendeten Werte NameE-mailBetreff und Nachricht auf der der Antwortseite noch einmal ausdamit dein Besucher seine Angaben noch einmal sehen kannLade die Seite anschließend auf deinen Server

    Dein Quelltext aus email_senden.php
     

    3.5.2 Du möchtest gerne wissen
    von wo die E-mail abgeschickt wurde und schreibst dir selbst die GedankenstützezB E-mail von meiner PHP Pagean den Anfang deiner E-mailWie sieht die neue Formatierung aus?

     

    3.5.3 Wie müsste die mail() Funktion aussehenwenn du einen vordefinierten Betreffz.B Kontaktformularangibst?



    So sieht mein Code aus

    PHP:

    <?php


    if ($_GET['action'] == "senden") {
        
    $error =  0;

        if (empty(
    $_POST['Name'] )){
          
    $error 1;
          
    $msg "Bitte Name eintragen!";
        }
        if(empty(
    $_POST['E-mail'])) {
          
    $error 1;
          
    $msg .= "Bitte Email eintragen!";
        }
        if(empty(
    $_POST['Betreff'])) {
          
    $error 1;
          
    $msg .= "Bitte Betreff eintragen!";
        }
        if(empty(
    $_POST['Nachricht'] )){
          
    $error 1;
          
    $msg .= "Bitte Nachricht eintragen!";
        }
        if(
    $error == 0) {


               
    $Mitteilung "Absender: ".$_POST['Name']."\n".
                                    
    "E-mail: ".$_POST['E-mail']."\n\n".
                                     
    $_POST['Nachricht'];
                
    mail ("icebaby@inode.at"$_POST['Betreff'], $Mitteilung
                        
    "From:".$_POST['Name']." <".$_POST['E-mail'].">");
                echo 
    "<p align='center'>Deine E-mail wurde erfolgreich versandt!</p>";
                
    $Gesendet 1;
          }
     
     
     echo 
    $msg;

    }  
     
    if (
    $_GET['action'] == "senden") {
        
    // Verschicke eMail 
       
    $Gesendet 1
    }
    if (
    $Gesendet != 1) {
        
    // Zeige das Formular an
         
    echo "<form action=\"".$_SERVER['PHP_SELF']."\"method=\"POST\">";
    echo 
    "<b>Betreff:</b> <input type='text' name='Betreff' size='50'><br>
    <b>Name:</b> <input type='text' name='Name' size='50'><br>
    <b>E-Mail:</b> <input type='text' name='Mail' size='50'><br>
    <textarea name='Nachricht' cols='45' rows='15'></textarea><br><br>
    <input type='submit' name='Abschicken' value='Abschicken'>"
    ;
      
    echo 
    "</form>";
    }  
    ?>

     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 skopionmaster, 24.07.2006
    skopionmaster

    skopionmaster Eroberer

    Dabei seit:
    15.08.2004
    Beiträge:
    50
    Zustimmungen:
    0
    Ort:
    Stadtroda
    Moin,
    das erste was mir auffällt, ist das "if ($_GET['action'] == "senden")" so nie true werden kann.
    Da: <form action='index.php?Seite=email_senden.php' method='POST'>

    Du könntest daher z.B. $_POST['action'] statt $_GET['action'] verwenden und im Formular ein <input type="hidden" name="action" value="senden"> reinbasteln.



    Wie gesagt, hab den Text nur schnell überflogen und das ist mir auf die schnelle aufgefallen.



    ;FG skop
     
Thema:

wer kann mir anhand eines beispiels mein problem lösen

Die Seite wird geladen...

wer kann mir anhand eines beispiels mein problem lösen - Ähnliche Themen

  1. Wie kann ich x Zeichen hinter einem bestimmten Wort ausgeben ?

    Wie kann ich x Zeichen hinter einem bestimmten Wort ausgeben ?: In mehreren Dateien ist immer mehrfach ein bestimmtes Wort enthalten, gefolgt von einem "=". Ich möchte mir die dahinter folgenden 10 Zeichen...
  2. Wie kann ich das RAM löschen?

    Wie kann ich das RAM löschen?: Wie kann ich das RAM löschen? Danke im Vorraus
  3. Nicht erkannte Zeichen nach Update

    Nicht erkannte Zeichen nach Update: Hi, nachdem ich mein Kali Linux geupdated habe, ist mir aufgefallen dass viele Zeichen auf verschiedenen Nutzeroberflächen nur fehlerhaft...
  4. Bq Aquaris M10 Tablet mit Ubuntu Touch kann vorbestellt werden

    Bq Aquaris M10 Tablet mit Ubuntu Touch kann vorbestellt werden: Seit dem gestrigen Ostermontag kann das erste Tablet mit Ubuntu Touch und Konvergenz vorbestellt werden. Weiterlesen...
  5. Ethernet wird nicht erkannt

    Ethernet wird nicht erkannt: Ich habe das Problem, dass die Netzwerk karte von keinem System mehr geladen wird. Vor zwei Tagen habe ich das Netzteil vom Pc, das etwa eine...