Antworten auf deine Fragen:
Neues Thema erstellen

Hilfe bei Formular umschreiben!!

Elpresidente99

Noch nicht viel geschrieben

Bin totaler newbie und habe das Formular aus den Tutorials einbauen können. Doch brauch ich viele Felder nicht wie str. Plz. usw. und wollte die natürlich in der Email auch raushaben doch leider keine ahnung immer wenn ich was löschen will funktioniert nichts mehr.

Hoffe jemand kann mir helfen.

1. Brauche nur Name, Vorname, Anrede, Betreff, Mitteilung und ob Eine Kopie erwünscht ist. Habes dies schon aus dem Formular gelöscht doch bei der email die ich dann bekommen sthen noch alle sachen drin nur halt leer.

2. Die email die ich bekomme und derjenige der sie ausfüllt bekommt alles in einer wurscht z.b.
Sehr geehrte/r Hannes G., Ihre Mitteilung hatte folgenden Inhalt: Strasse HausNr.: Plz Ort: Telefon: E-Mail: hannes.g*********@hotmail.com Mitteilung: Test 1 Sie erhalten in den nächsten Tagen eine Rückmeldung von mir.

Bräuchte dies ein bisschen formatiert. Also zeilenabstände.

3. Er lässt mich keine Email Adressen einfügen die einen Punkt enthalten hab schon vieles probiert aber dann funktionierts nicht mehr.


PHP:
<?php

define('ERROR_1',    'Ihre E-Mailadresse ist nicht vorhanden.');
define('ERROR_2',    'Ihre E-Mailadresse ist ungültig.');
define('ERROR_3',    'Ohne Mitteilung kein Kontakt.');
define('ERROR_4',    'Sie haben keinen Familiennamen angegeben.');
define('ERROR_5',    'Sie haben keinen Vornamen angegeben.');
define('ERROR_6',    'Ein leeres Formular nützt nichts.');
define('ERROR_7',    'Die ausgewählte Datei ist zu groß.');
define('ERROR_8',    'Die ausgewählte Datei hat nicht den erlaubten Dateitype');

define('ACTION_PATH',    'anfrage.php');
define('MAIL_SENDER',     'hannes.gaertner@hotmail.com');
define('MAIL_SUBJECT_A','Kontaktmitteilung aus Formular'); 
define('MAIL_SUBJECT_K','Ihre Kontaktmitteilung');
define('MAILCHARSET',    'utf-8');
define('STARTTEXT',"Mitteilung vom Webformular:\n\r"); 
define('MAIL_KOPIE',     1);
define('FILE_UPLOAD',    0); 
define('ENCTYPE', ' enctype="multipart/form-data"');


define('LOCATION',    $_SERVER['HTTP_HOST'] .'/emailok.php'); # relativer path!

$USER_MAIL_TEXT  =    "Sehr geehrte/r %s %s %s,\n\n\r";
$USER_MAIL_TEXT .=    "Ihre Mitteilung hatte folgenden Inhalt:\r\n\n\tStrasse HausNr.: %s %s\r\n\n\tPlz Ort: %s %s\r\n\tTelefon: %s %s\r\n\tE-Mail: %s\r\n\n\t";
$USER_MAIL_TEXT .=    "Mitteilung:\r\n\t%s";
$USER_MAIL_TEXT .= "\r\n\nSie erhalten in den nächsten Tagen eine Rückmeldung von mir.";


$htmlAddress = array(0 => 'Optional', 1 => 'Frau', 2 => 'Herr', 3 => 'Firma');

/**
 * function _gp($var)
 *
 * @param int/string $var
 * @return int/string
 */
function _gp($var) {
    if(isset($var)) {
        
        $val = isset($_POST[$var]) ? $_POST[$var] : '';
        
        return trim($val);
        
    }
}


function _selectAddress($htmlAddress, $select) {
    
    if(is_array($htmlAddress)) {
        
        $ret = '';
        
        foreach($htmlAddress AS $k => $v) {
            
            if(isset($select) && $select == $k) { $selected = ' selected="selected"'; }
            else { $selected = ''; }
            
            $ret .= "<option value=\"$k\"$selected>$v</option>\n";
        }
        
        return print $ret;
    } else {
        
        return print 'Es wurde keine Anrede definiert.';
        
    }
    
    return print $ret;
    
}

/**
 * function _E($int)
 *
 * @param integer $int
 * @return string
 */
function _E($int) {
    $array = array(    1 => ERROR_1,
                    2 => ERROR_2,
                    3 => ERROR_3,
                    4 => ERROR_4,
                    5 => ERROR_5,
                    6 => ERROR_6,
                    7 => ERROR_7,
                    8 => ERROR_8
                    );
            
    if($array[$int]) return $array[$int];
}



function checkMail($mailAdresse) {
     if(isset($mailAdresse)) {
 
        
         if(phpversion() >= '5.2.0') {
 
             if(!filter_var($mailAdresse, FILTER_VALIDATE_EMAIL)) { 
return 2; }
             return false;
         } else {
             
             
if(preg_match('#[\w-]+([\.\w-|\w-]+)@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$/#', 
$mailAdresse, $find)) {
                 return 2;
             }
 
             return false;
         }
     } else {
 
         return 1;
 
     }
}


/**
 * checkFile($file)
 *
 * @param array $file
 * @param array $types
 * @return boolean
 */


/**
 * function fileUpload($file)
 *
 * @param array $file
 * @param integer $action     wird zur prüfung auf Fehler verwendet. 
 *                             1 prüft auf Fehler
 *                             2 erlaubt den Dateiupload
 * @return array $array
 */

$textmitteilung  = ''; // Variable indiziert
$error_a          = 0;
$checkedKopie     = '';
$fileName         = '';
$m_anrede = _gp('anrede');

if(intval(_gp('action')) == 1) {

    // Prüft, ob die E-Mail-Adresse angegeben wurde.
    if($m_email = _gp('email')) {
        $error_a = checkMail($m_email);
    } else {
        $error_a = 1;
    }

    // Prüft, ob eine Mitteilung erfolgte. Wenn nicht, gibt es eine Fehlermeldung.
    if(!$m_mitteilung = _gp('mitteilung')) { $error_a = 3; }

    
    // Prüft, ob der Familienname angegeben wurde. Wenn nicht erfolgt eine Fehlermeldung.
    if(!$m_fname = _gp('fname')) { $error_a = 4; }
    
    // Prüft, ob der Vorname angegeben wurde. Wenn nicht, erfolgt eine Fehlermeldung
    if(!$m_vorname = _gp('vorname')) { $error_a = 5; }
    
    // prüfe ob User Mailkopie wünscht
    if($mailKopie = _gp('kopie') == 1) { $checkedKopie = ' checked="checked"'; }
    
    // Prüft, ob eine Anrede ausgewählt wurde, wenn nicht
    if(!$m_anrede = _gp('anrede')) { $m_anrede = ""; }
    

    
    // Prüft, ob alle Pflichtfelder vorhanden sind.
    if(!$error_a) {
        
        $fileNameAdmin     = '';
        $fileNameUser    = '';
        
        if(FILE_UPLOAD && is_array($_FILES['file'])) {
            
            $fileName = fileUpload($_FILES['file']);

            $fileNameAdmin    = $fileName[0];
            $fileNameUser    = $fileName[1];
            
        }
        
        // Mailbedingungen in From von MIME und HTML
        $header  = 'MIME-Version: 1.0'."\r\n";
        $header .= 'Content-type: text/html; charset='. MAILCHARSET ."\r\n";
        $header .= 'From: <'. MAIL_SENDER .'>';
        
        if(isset($htmlAddress[$m_anrede])) { $anrede = $htmlAddress[$m_anrede]; }
        else { $anrede = ''; }
        
        // Mitteilungstext für den Seiteninhaber
        $mailTextWM = sprintf("%s\r\nAnrede: %s\n\r
        Vorname Name: %s %s\n\r
        Strasse / HsNr: %s %s\n\r
        PLZ Wohnort: %s %s\n\r
        Telefon: %s %s\n\rE-Mail: %s\n\r
        Mitteilung:\n\n\r%s\r\n\n
        Dateiname: %s\r\n\n\nMitgeteilt am: %s",
                                STARTTEXT, 
                                    $anrede, 
                                $m_vorname, 
                                $m_fname, 
                                $m_strasse, 
                                $m_hausnummer, 
                                $m_plz, 
                                $m_ort,
                                $m_vw,   
                                $m_rn, 
                                $m_email, 
                                $m_mitteilung, 
                                $fileNameAdmin,  
                                date('d.m.Y, H:i:s'));
                    
        // E-Mail an Seiteninhaber wird gesendet.
        mail(MAIL_SENDER, MAIL_SUBJECT_A, $mailTextWM, $header);
           
        // Bestätigungsmail an Absender
        if(defined('MAIL_KOPIE') && MAIL_KOPIE == 1 && $mailKopie == 1) {
           
            // Textzusammenstellung für den Absender
            $msgUser = sprintf(    $USER_MAIL_TEXT,
                                $anrede, 
                                $m_vorname, 
                                $m_fname, 
                                $m_strasse, 
                                $m_hausnummer, 
                                $m_plz, 
                                $m_ort,
                                $m_vw,   
                                $m_rn, 
                                $m_email, 
                                $m_mitteilung, 
                                $fileNameAdmin,  
                                date('d.m.Y, H:i:s'));
            

            // Senden der Bestätigungsmail an den Formularausfüllenden.
            mail($m_email, MAIL_SUBJECT_K, $msgUser, $header);

        }
        
        // Nun leite um auf die Empfangsbestätigungs-Seite emailok.php.
        header('Location: '.LOCATION);
        exit();
    }
}
?>
<!-- 
Dieser HTML Teil kann entweder direkt unterhalb des obigen PHP-Teil oder 
in ein Template kopiert werden oder alternativ in eine andere PHP-Datei.
Es ist jedoch zwingend erforderlich, dass PHP-Code korrekt geparst wird. 

Das Tabellelayout ist lediglich als Beispiel.
-->
<style type="text/css">

.text {
    font-family: verdana, arial, helvetica, sans-serif;
    font-style: normal;
    font-size: 0.8em;
    font-weight: normal;
    color: #333;
    }

.error {
    font-family: verdana, arial, helvetica, sans-serif;
    font-style: normal;
    font-size: 0.9em;
    font-weight: normal;
   font-weight: bold;
    color: #CC0000;
    }

table {
    margin-left: auto;
    margin-right: auto;
    text-align: justify;
    }
schrift {
    text-align:justify;
}


</style>
<?php
// Bereich für Fehlerausgabe
if((int)$error_a) { 
    
    echo '<p align="center" class="error">'. _E($error_a) .'</p>';
}
?>

<form action="<?php echo ACTION_PATH; ?>" method="post"<?php echo ENCTYPE; ?>>
<input type="hidden" name="action" value="1" />
<table width="98%" cellspacing="2" cellpadding="5" border="0">
<tr>
    <td colspan="2"><p align="right"></td>
</tr><tr>
    <td width="31%">Anrede </td>
    <td width="69%"><select name="anrede">
            <?php
            _selectAddress($htmlAddress, $m_anrede);
            ?>                
          </select>
    </td>
</tr><tr>
    <td>Vorname</td>
    <td><input type="text" name="vorname" size="40" value="<?php if(isset($_POST['vorname'])) { echo $_POST['vorname']; } ?>" /></td>
</tr><tr>
    <td>Name</td>
    <td><input type="text" name="fname" size="40" value="<?php if(isset($_POST['fname'])) { echo $_POST['fname']; } ?>" /></td>
</tr><tr>
    <td>Ihre E-Mailadresse</td>
    <td>
        <input type="text" name="email" size="30" maxlength="50" value="<?php if(isset($_POST['email'])) { echo $_POST['email']; } ?>" />
    </td>
</tr><tr>
    <td valign="top">Mitteilung</td>
    <td>
        <p>
          <textarea name="mitteilung" cols="60" rows="10"><?php if(isset($_POST['mitteilung'])) { echo $_POST['mitteilung']; } ?>
        </textarea>
        </p>
      <p>Um ihre Anfrage so schnell wie möglich bearbeiten zu können bitten wir sie genaue Angaben über Reisedatum, Personenanzahl (Alter) anzugeben.</p></td>
</tr>
<?php 
if(MAIL_KOPIE === 1) { 
?>
<tr>
    <td>Wünschen Sie eine Kopie</td>
    <td><input type="checkbox" value="1" name="kopie"<?php echo $checkedKopie; ?> /></td>
</tr>
<?php 
} 
if(FILE_UPLOAD === 1) {            
?>
<?php } ?>
<tr>
    <td colspan="2">
        <p align="center"><input type="submit" value="Mittelung senden" /></p>
    </td>
</tr>
</table>
</form>
Ich hoffe jemand kann mir helfen LG
 
Zuletzt bearbeitet von einem Moderator:

Taharkas

Noch nicht viel geschrieben

AW: Hilfe bei Formular umschreiben!!

Du willst ein Formular einbauen, dessen Funktionsweise Du nicht verstehst?

Bitte setze Dich zuerst mal mit der Materie auseinander, denn sonst bist Du recht schnell zu einem Opfer mutiert und fungierst im günstigsten Fall als unfreiwilliger Spammer.

Bis dahin sollte Dir ein
<a href="mailto:mail_an@meine_adresse.de?subject=Ich%20lerne%20php">Eine Nachricht</a>
auf Deiner Webseite völlig genügen.

Ist nicht böse gemeint, aber es macht keinen Sinn Dir zu erklären was geändert werden muss, wenn Du es hintenrum nicht wirklich verstehst.

mfg
 

Elpresidente99

Noch nicht viel geschrieben

AW: Hilfe bei Formular umschreiben!!

Hy habe jetzt fast alles selber geschafft.

Doch eines brauche ich noch. wenn der kontakt abgeschickt wurde sollte ja auf eine emailok.php umgeleitet werden doch dort stimmt der PFad nicht kann mir jemand einen tip geben nach was ich suchen muss damit ich den den richtigen pfad habe.

LG
 

netbandit

Aktives Mitglied

AW: Hilfe bei Formular umschreiben!!

Probier statt

PHP:
define('LOCATION',    $_SERVER['HTTP_HOST'] .'/emailok.php'); # relativer path!

mal

PHP:
define('LOCATION',    'http://' . $_SERVER['HTTP_HOST'] .'/emailok.php'); # relativer path!

aus

Grüße ;)
 

lachender_engel

Aktives Mitglied

AW: Hilfe bei Formular umschreiben!!

oder, um zu sohen was nict stimmt, gib mal aus
PHP:
echo $_SERVER['HTTP_HOST'] .'/emailok.php';
Dann kannst Du den Pfad sehen und ggf. den Fehler erkennen.
 

saila

Moderatorle

AW: Hilfe bei Formular umschreiben!!

Hi,

das ist ein Tutorial für ein vollständiges Kontaktformular. Wenn du ein einfaches benötigst, ist es sinniger, sich ein solches zu suchen oder selbst zu schreiben. In diesem von dir gewählten Formular, wären die Änderungen schon umfangreich, da die gesamte Prüfung zu ändern (Fehlermeldung als auch Datenübergabe) wäre/ist, die Textinhalte (der Teil mit sprintf()) anzupassen sind. In dieser Zeit hast du ein einfaches Kontaktformular wohl schneller eingebunden.
 

netbandit

Aktives Mitglied

AW: Hilfe bei Formular umschreiben!!

LOCATION besteht u.A. aus $_SERVER['HTTP_HOST'], hier auf PSDT wäre HOST dann z.B. www.psd-tutorials.de.

Dann wäre

PHP:
define('LOCATION',    $_SERVER['HTTP_HOST'] .'/emailok.php');
HTML:
www.psd-tutorials.de/emailok.php
Da Location ohne http:// definiert wurde, wird ein Verzeichnis namens www.psd-tutorials.de gesucht.
Gibt es nicht und die Weiterleitung schlägt fehl. ;)

Wenn es ein Tut von hier ist, sollte der Fehler gefixt werden.

Grüße :)
 

saila

Moderatorle

AW: Hilfe bei Formular umschreiben!!

Hi netbandit,

muss nicht ergänzt werden, da der aktuelle Request wiedergegeben wird. Die Frage ist nur, wo er die emailok.php abgelegt hat. Wenn diese nicht wie in der Default-Einstellung im Hauptroot liegt, wird sie auch nicht gefunden und führt zu einem 403.
 
Zuletzt bearbeitet:

GerMusicDude

Der Aufsteiger

AW: Hilfe bei Formular umschreiben!!

Ein Freund hat mir geholfen und ich habe 0 Ahnung, wie er das gemacht hat :)
Ich habe nur Tastenklackern gehört und die Maus flitzen sehen. ZACK, fertig :)
 

netbandit

Aktives Mitglied

AW: Hilfe bei Formular umschreiben!!

Naja, wie dem auch sei: Habe es mal getestet und ohne http:// funktioniert die Weiterleitung bei mir nicht.

Grüße :)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben