Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 14-07-2022, 09:09
chorn
 Registrierter Benutzer
Links : Onlinestatus : chorn ist offline
Registriert seit: Nov 2011
Beiträge: 214
chorn befindet sich auf einem aufstrebenden Ast
Standard

Hi,

Zunächst mal kannst du dein Formular so grob definieren. Achte Dabei auf Groß/Kleinschreibung.

PHP-Code:
<?php

$fields 
= [
    
'name' => [
        
'label' => 'Vorname',
        
'maxlength' => 50,
    ],
    
'lastname' => [
        
'label' => 'Nachname',
        
'maxlength' => 50,
    ],
    
'email' => [
        
'label' => 'EMail',
        
'maxlength' => 100,
    ],
    
'message' => [
        
'label' => 'Nachricht',
        
'maxlength' => 500,
    ],
];
Dann kannst du zu jedem Feld prüfen lassen, ob Daten eingegeben wurden

PHP-Code:
<?php

function validate(array $fieldsstring $field){
    if(
$_SERVER['REQUEST_METHOD'] !== 'POST') return ""// Formular noch nicht abgeschickt
    
if(!isset($fields[$field])) return "Das Feld {$field} existiert nicht";
    if(empty(
$_POST[$field])) return "Das Feld {$fields[$field]['label']} darf nicht leer sein";
    if(
strlen($_POST[$field]) > $fields[$field]['maxlength']) return "Das Feld {$field} enthält zu viele Zeichen";
}
PHP-Code:
<?php echo validate($fields'name'?>
Die Anzeige der Werte ist ja von zwei Faktoren abhängig: Wurde das Formular übermittelt, und wurde die EMail gesendet.

PHP-Code:
<?php

function showvalue(string $namebool $mailsend){
    if(
$_SERVER['REQUEST_METHOD'] === 'POST' && !$mailsend) return $_POST[$name] ?? "";
    else return 
"";
}
PHP-Code:
if(isset($_POST['submit'])){
 
$mailsend mail(...);
}
else {
 
$mailsend false;

PHP-Code:
value="<?php showvalue('name'); ?>"
Bitte verwende das so niemals auf einer Seite die andere Leute aufrufen können, dein Formular kann für Spam missbraucht werden. Lies dich in PHPMailer ein

https://github.com/PHPMailer/PHPMailer

Links auf deinen Localhost bringen hier nichts, den kannst du so nur von deinem eigenen Computer aufrufen.

Geändert von chorn (14-07-2022 um 09:13 Uhr)
Mit Zitat antworten