ilch Forum » Allgemein » HTML, PHP, SQL,... » Anmeldung per PHP-Formular

Geschlossen
  1. #1
    User Pic
    Atlantis1452 Mitglied
    Registriert seit
    28.10.2013
    Beiträge
    7
    Beitragswertungen
    0 Beitragspunkte
    Hey Leute,
    ich hab mal wieder ein Problem:
    und zwar will ich ein Anmeldeformular schreiben, dass ohne Outlook abschickt. Hab zwar schon n bsl geschrieben, nur es funktioniert iwie nicht... Kann mir bitte wer helfen bzw. alternativen anbieten?

    Mit freundlichen Gruß
    Atlantis


    
    <?php
    
    defined ('main') or die ( 'no direct access' );
    
    $title = $allgAr['title'].' :: Anmeldung';
    $hmenu = 'Anmeldung';
    $design = new design ( $title , $hmenu );
    $design->header();
    ?>
    
    <html>
    <body>
    
    <?php
    function check_email($email) //Emailadresse prüfen (Keine Umlaute etc.)
             {
                     if( !preg_match("/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}|museum$/i", $email) )  return true;
                     return false;
             }
    
    // Allgemeine Variablen
             $name_tag[0] = "Sonntag";
             $name_tag[1] = "Montag";
             $name_tag[2] = "Dienstag";
             $name_tag[3] = "Mittwoch";
             $name_tag[4] = "Donnerstag";
             $name_tag[5] = "Freitag";
             $name_tag[6] = "Samstag";
             $num_tag   = date( "w");
             $day      = $name_tag[$num_tag];
             $year      = date("Y");
             $day_num   = date("d");
             $month      = date("m");
             $time      = (date("H:i"));
             $empfaenger = "xyz@ddd.de"; //Die eigene emailadresse
             $subject01 = "Betreff der Mail"; //Der Betreff der Email
             $subject02 = "Danke das Sie das Kontaktformular ausgefüllt haben"; //Betreff der Bestätigungsmail
             if ($flag==1) //Wenn das Fromular ausgefüllt wurde.
    {
        //Die Eingaben prüfen
        if(!$namer){$fehler="Bitte Namen eingeben<br>";}
        if(!$vorname){$fehler.="Bitte Vornamen eingeben<br>";}
        if(!$adresse){$fehler.="Bitte Adresse eingeben<br>";}
        if(check_email($email) & $email!="") {$fehler.="Emailadresse ist ungültig<br>";}
        if(!$email) {$fehler.="Bitte die Emailadresse eingeben<br>";}
        if(!$text) {$fehler.="Bitte eine Nachricht eingeben<br>";}
        if($fehler) //Bei Fehlern, Meldung ausgeben
    
        {
            $meldung="<b>" .$fehler. "</b>";
            unset($flag);
            echo "<font color='red'>Es sind folgede Fehler aufgetreten: <br> " .$meldung. "</font>";
        }
        else //Wenn es keine Fehler gibt kann ja gemailt werden.
        {
          //Der Body für die Mail
          $body01 = "Nachricht gesendet am $day, $day_num.$month.$year um $time:
    ----------------------------------------------------------------
    Vorname        : $vorname
    Name           : $namer
    Adresse        : $adresse
    eMail          : $email
    ----------------------------------------------------------------
    Nachricht:
    $text";
           //Body für die Bestätigungsmail
           $body02 = "Am $day, $day_num.$month.$year um $time haben wir folgende Nachricht von Ihnen erhalten:
    -----------------------------------------------------------------------------------
    Name           : $namer
    Vorname        : $vorname
    Adresse        : $adresse
    eMail          : $email
    -----------------------------------------------------------------------------------
    Nachricht:
    $text
    -----------------------------------------------------------------------------------
    Ihre Mail wird so schnell wie möglich bearbeitet.
    Bei Fragen schreiben Sie an: mailto:$empfaenger";
           //Nun kann gemailt werden
           //Erst die Mail an den Webmaster
           mail ($empfaenger, $subject01, $body01, "From:$email");
           //Dann die Bestätigungsmail
           mail ($email, $subject02, $body02, "From:$email");
           echo "Die Mail wurde gesendet.";
        }
    }
    
    if(!$flag) //Formular noch nicht abgesendet
    {
            ?>
          <form action='<? echo $PHP_SELF; ?>' method='post' enctype='multipart/form-data' name='form' id="form">
              <input type="hidden" name="flag" id="flag" value=1>
            <p align="center">Bitte füllen Sie alles aus<br></p>
            <div align="center">
              <center>
            <table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" style="border-collapse: collapse">
              <tr><td>
                    <table border="0" cellpadding="4">
            <tr>
              <td>Name:</td>
              <td>
                <input name="namer" type="text" id="namer" size="30" value='<?php echo $namer; ?>'>
                      </td>
            </tr>
            <tr>
              <td>Vorname:</td>
              <td>
                        <input name="vorname" type="text" id="vorname" size="30" value='<?php echo $vorname; ?>'>
                      </td>
            </tr>
            <tr>
              <td>Adresse:</td>
              <td>
                        <input name="adresse" type="text" id="adresse" size="30" value='<?php echo $adresse; ?>'>
                      </td>
            </tr>
            <tr>
              <td>Emailadresse:</td>
              <td>
                        <input name="email" type="text" id="email" size="30" value='<?php echo $email; ?>'>
                      </td>
            </tr>
            <tr>
              <td valign="top" class="textb">Nachricht:</td>
                    <td>
                        <textarea name="text" id="text" cols="50" rows="5"><?php echo $text; ?></textarea>
                </td>
            </tr>
            <tr>
              <td>&nbsp;</td>
              <td><input type="submit" name="Submit" value="Abschicken">
              </td>
            </tr>
        </table>
            </td></tr>
            </table>
              </center>
            </div>
          </form>
          <?php
          }
      ?>
        </TD>
       </TR>
    </TABLE>
    
    </body>
    </html>
    <?php
    $design->footer();
    ?>



    verwendete ilch Version: 1.1 P
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Rock@wulf Hall Of Fame
    Registriert seit
    03.06.2004
    Beiträge
    3.282
    Beitragswertungen
    239 Beitragspunkte
    Was tust du da ?

    BZW was versuchst du da
    Meine Postings repräsentieren meine Meinung wenn nicht anders gekennzeichnet.
    MFG Rock@wulf
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.675
    Beitragswertungen
    1212 Beitragspunkte
    Da es soviele Dinge gibt, die ich ansprechen müsste, habe ich Dir mal eine Lösung mit dazugehörigem Template umgesetzt und beschriftet. Ist jetzt im Tabellenlayout (kannst später mit Containern und CSS umsetzen)

    <?php
    #   Anmeldeformular
    #   Support: www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    $title = $allgAr['title'].' :: Anmeldung';
    $hmenu = 'Anmeldung';
    $design = new design ( $title , $hmenu );
    $design->header();
    $tpl = new tpl ('anmeldung.htm');
    
    # Allgemein
    $dlist		= array(0 => 'Sonntag', 1 => 'Montag', 2 => 'Dienstag', 3 => 'Mittwoch', 4 => 'Donnerstag', 5 => 'Freitag', 6 => 'Samstag');
    $mlist		= array(1 => 'Jan', 2 => 'Feb', 3 => 'Mär', 4 => 'Apr', 5 => 'Mai', 6 => 'Jun', 7 => 'Jul', 8 => 'Aug', 9 => 'Sep', 10 => 'Okt', 11 => 'Nov', 12 => 'Dez');
    $ak_tag		= date('w'); 	// Numerischer Tag einer Woche
    $ak_dat		= date('j'); 	// Tag des Monats ohne führende Nullen
    $ak_mon		= date('n'); 	// Monatszahl, ohne führende Nullen
    $ak_jahr	= date('Y'); 	// Vierstellige Jahreszahl
    $ak_time	= date('H:i'); 	// Stunde im 24-Stunden-Format, mit führenden Nullen : Minuten, mit führenden Nullen
    
    $empfaenger   = $allgAr['adminMail']; // Adminmail als Empfänger oder ( $empfaenger = 'email@email.de'; )
    $subject_empf = 'Eine neue Anmeldung'; // Der Betreff der Email-Anfrage
    $subject_send = 'Danke das Sie die Anmeldung ausgefüllt haben'; // Betreff der Bestätigungsmail
    
    # Funktion zur Email Prüfung
    function email_check($email) {
    	if (!preg_match( '/^([a-z0-9]+([-_\.]?[a-z0-9])+)@[a-z0-9äöü]+([-_\.]?[a-z0-9äöü])+\.[a-z]{2,4}$/i', $email)) return false;
    	if (!function_exists('checkdnsrr')) {
    		function checkdnsrr($host, $type) {
    			@exec('nslookup -type=' . $type . ' ' . $host, $output);
    			foreach ($output as $line)
    			if (preg_match('/^' . $host . '/i', $line)) return true;
    			return false;
    		}
    	}
    	$host = substr(strrchr($email, '@'), 1);
    	if (checkdnsrr($host, 'MX') or checkdnsrr($host, 'A')) {
    		return true;
    	} else {
    		return false;
    	}
    }
    
    # Daten wurden eingegeben
    if (!empty($_POST['sub'])) {
    	
    	$name		= escape($_POST['name'], 'string');
    	$vorname	= escape($_POST['vorname'], 'string');
    	$adresse	= escape($_POST['adresse'], 'string');
    	$email 		= escape($_POST['email'], 'string');
    	$nachricht 	= escape($_POST['nachricht'], 'textarea');
    	
    	$fehler_name 	  = (empty($name) ? '<br /><span class="fehler">Bitte geben Sie ihren Namen an!</span>' : '');
    	$fehler_vorname   = (empty($vorname) ? '<br /><span class="fehler">Bitte geben Sie ihren Vornamen an!</span>' : '');
    	$fehler_adresse   = (empty($adresse) ? '<br /><span class="fehler">Bitte geben Sie ihre Adresse an!</span>' : '');
    	$fehler_email 	  = (empty($email) ? '<br /><span class="fehler">Bitte geben Sie ihre E-Mail Adresse an!</span>' : '');
    	if (empty($fehler_email) AND email_check($email) == false) {
    		$fehler_email = '<br /><span class="fehler">Bitte geben Sie eine g&uuml;ltige E-Mail Adresse an!</span>';
    	}
    	$fehler_nachricht = (empty($nachricht) ? '<br /><span class="fehler">Bitte geben Sie eine Nachricht ein!</span>' : '');
    	$fehler_spam 	  = ((chk_antispam('contact') != true) ? '<br /><span class="fehler">Bitte geben Sie den g&uuml;ltigen Antispam-Code ein!</span>' : '');
    	
    	# Ausgabe mit Fehlern
    	if (   !empty($fehler_name) 
    		OR !empty($fehler_vorname)
    		OR !empty($fehler_adresse) 
    		OR !empty($fehler_email) 
    		OR !empty($fehler_nachricht) 
    		OR !empty($fehler_spam) 
    		OR strpos($nachricht, 'Content-Type:') === TRUE 
    		OR strpos($nachricht, 'MIME-Version:') === TRUE) {
    		
    		$tpl->set('fehler_name'		, $fehler_name);
    		$tpl->set('fehler_vorname'	, $fehler_vorname);
    		$tpl->set('fehler_adresse'	, $fehler_adresse);
    		$tpl->set('fehler_email'	, $fehler_email);
    		$tpl->set('fehler_nachricht', $fehler_nachricht);
    		$tpl->set('fehler_spam'		, $fehler_spam);
    		$tpl->set('name'			, $name);
    		$tpl->set('vorname'			, $vorname);
    		$tpl->set('adresse'			, $adresse);
    		$tpl->set('email'			, $email);
    		$tpl->set('nachricht'		, $nachricht);
    		$tpl->set('ANTISPAM'		, get_antispam('anmeldung',1));
    		$tpl->out(0);
    	
    	# Emailversand da alles OK	
    	} else {
    		
    		# Nachricht an dem Empfänger
    		$text_empf  = 'Nachricht gesendet am ' . $dlist[$ak_tag] . ', den ' . $ak_dat . '. ' . $mlist[$ak_mon] . ' ' . $ak_jahr . ' um ' . $ak_time . ' Uhr:' . "\n";
    		$text_empf .= '----------------------------------------------------------------' . "\n";
    		$text_empf .= 'Vorname : ' . $vorname . "\n";
    		$text_empf .= 'Name : ' . $name . "\n";
    		$text_empf .= 'Adresse : ' . $adresse . "\n";
    		$text_empf .= 'Email : ' . $email . "\n";
    		$text_empf .= '----------------------------------------------------------------' . "\n";
    		$text_empf .= 'Nachricht : ' . $nachricht . "\n";
    		# Nachricht an den Abender als Bestätigung
    		$text_send  = 'Am ' . $dlist[$ak_tag] . ', den ' . $ak_dat . '. ' . $mlist[$ak_mon] . ' ' . $ak_jahr . ' um ' . $ak_time . ' Uhr haben wir folgende Nachricht von Ihnen erhalten:' . "\n";
    		$text_send .= '----------------------------------------------------------------' . "\n";
    		$text_send .= 'Vorname : ' . $vorname . "\n";
    		$text_send .= 'Name : ' . $name . "\n";
    		$text_send .= 'Adresse : ' . $adresse . "\n";
    		$text_send .= 'Email : ' . $email . "\n";
    		$text_send .= '----------------------------------------------------------------' . "\n";
    		$text_send .= 'Nachricht : ' . $nachricht . "\n";
    		
    		if (icmail ($empfaenger, $subject_empf, $text_empf, $vorname.' '.$name." <".$email.">")
    		AND icmail ($email, $subject_send, $text_send, $vorname.' '.$name." <".$email.">")) {
    			wd('index.php','Die Anmeldung wurde erfolgreich per Email versendet.', 10);
    			$tpl->out(1);
    		} else {
    			wd('index.php','Der Server konnte die Email nicht versenden, teilen sie dies ggf. einem Administrator mit.', 5);
    			$tpl->out(1);
    		}
    
    	}
    
    # Leeres Formular anzeigen
    } else {
    		
    	$tpl->set('fehler_name'		, '');
    	$tpl->set('fehler_vorname'	, '');
    	$tpl->set('fehler_adresse'	, '');
    	$tpl->set('fehler_email'	, '');
    	$tpl->set('fehler_nachricht', '');
    	$tpl->set('fehler_spam'		, '');
    	$tpl->set('name'			, '');
    	$tpl->set('vorname'			, '');
    	$tpl->set('adresse'			, '');
    	$tpl->set('email'			, '');
    	$tpl->set('nachricht'		, '');
    	$tpl->set('ANTISPAM'		, get_antispam('anmeldung',1));
    	$tpl->out(0);
    }
    
    $design->footer();
    ?>


    <h1>Anmeldung</h1>
    <form action="index.php?anmeldung" method="POST" name="form">
    <table width="100%">
      <tr>
        <td>Name:</td>
        <td><input type="text" name="name" value="{name}" maxlength="30" style="width:400px" tabindex="1" />{fehler_name}</td>
      </tr>
      <tr>
        <td>Vorname:</td>
        <td><input type="text" name="vorname" value="{vorname}" maxlength="30" style="width:400px" tabindex="2" />{fehler_vorname}</td>
      </tr>
      <tr>
        <td>Adresse:</td>
        <td><input type="text" name="adresse" value="{adresse}" maxlength="30" style="width:400px" tabindex="3" />{fehler_adresse}</td>
      </tr>
      <tr>
        <td>Email:</td>
        <td><input type="text" name="email" value="{email}" maxlength="50" style="width:400px" tabindex="4" />{fehler_email}</td>
      </tr>
      <tr>
        <td style="vertical-align:top">Nachricht:</td>
        <td><textarea name="nachricht" rows="10" style="width:400px">{nachricht}</textarea>{fehler_nachricht}</td>
      </tr>
      <tr>
        {ANTISPAM}
      </tr>
      <tr>
        <td></td>
        <td>{fehler_spam}</td>
      </tr>
      <tr>
        <td></td>
        <td><input type="submit" name="sub" value=" Absenden "></td>
      </tr>
    </table>
    </form>
    {EXPLODE}
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    abgesehen davon dass lord dir hier wirklich viel geholfen hat lächeln würde mich auch der zweck interessieren ... bei ilch gibt es doch schon ein registrierungs forumular ... ?
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Atlantis1452 Mitglied
    Registriert seit
    28.10.2013
    Beiträge
    7
    Beitragswertungen
    0 Beitragspunkte
    Das is eine weitere Anmeldung für n Event, dass ich gerne so machen wollte...
    Sry, dass ich so daneben gelegen habe... und danke für die Hilfe.

    Bin bisher n Leihe in PHP, aber versuch immer mein bestes...

    LG
    Atlantis
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten