Antworten auf deine Fragen:
Neues Thema erstellen

>Kontaktformular

DyingRabbit_

Noch nicht viel geschrieben

Hallo zusammen,

ich bin gerade bei meinem ersten Kontaktformular.Html und Css geschrieben.Kein Ding.
Mittlerweile habe ich auch die Email-Funktion herausgefunden.

Jetzt hänge ich allerdings an der nächsten Aufgabe fest und komme nicht weiter.

Schritt 3 meiner Aufgabe:

Sobald der Nutzer eine Fehlermeldung zu sehen bekommt, weil z.B ein Feld leer ist, dürfen die Felder nicht leer sein.
Beispiel:
Sendet der Nutzer das Formular ab und sieht eine Fehlermeldung muss der "Vorname" wieder den Wert "Timo" haben.Also wird das Kontaktformular mit allen Werten wieder hergestellt.

Aufgabe 4
Wenn alles korrekt eingegeben ist, wird es versendet und das der z.B "Vorname" enthält nicht mehr den Wert "Timo".

Ich habe etwas geschrieben aus einem Tutorial welches allerdings nun auch schon gut 3 Jahre alt ist.
Allerdings funktioniert es Null. Und da ich was Php betrifft absolute Anfängerin bin, sehe ich den Fehler nicht.
Nach dem Tutorial müsste es gehen.

Meinen Code fügen ich hier einfach dazu ein.

<?php
error_reporting(-1);
ini_set('display_errors', 'On');
/**
* Eingabe
*/
$options = [
'allgemeine_anfrage'=>['title'=>'Allgemeine Anfrage','selected'=>false],
'technische_anfrage'=>['title'=>'Technische Anfrage', 'selected'=>false],
'sonstige_anfrage'=>['title' =>'Sonstige Anfrage', 'selected'=>false],
];
$name='';
$lastname='';
$email ='';
$betreff='';
$message='';
$isPostRequest = $_SERVER['REQUEST_METHOD'] === 'POST';
$errors =[];
//Verarbeitung
//
if($isPostRequest) {
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$lastname = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING);
$message = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING);
$subject = filter_input(INPUT_POST, 'subject', FILTER_SANITIZE_STRING);

if (isset($options[$subject])) {
$options[$subject]['selected'] = true;
}
if (!$name) {
$errors[] = 'Vorname ist leer';
}
if (!$lastname) {
$errors[] = 'Nachname ist leer';
}
if (!$email) {
$errors[] = 'Email ist leer';
}
if (!$message) {
$errors[] = 'Bitte eine Nachricht hinterlassen';
}
if (!isset($options[$subject])) {
$errors[] = 'Bitte betreff auswählen';
}
$data = [
'name' => $name,
'lastname' =>$lastname,
'email' =>$email,
'subject'=>$options[$subject]['title'],
'message'=>$message
];
file_put_contents('datei.txt', serialize($data) . ';;;', FILE_APPEND);

$_POST = [];
$options[$subject]['selected'] = false;
$subject = null;
$name = '';
$lastname = '';
$email = '';
$message = '';

}

?>

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE-edge">
<meta name="viewport" content="width-device-with, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
<title>Kontaktformular</title>
<meta charset="UTF-8">
</head>
<body>
<?php if($isPostRequest):?>
<section class="container" id="alets">
<?php if(count($errors) === 0):?>
<div class="alert alert-success" role="alert">
Anfrage versendet!
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<?php endif;?>
<?php if(count($errors) > 0):?>
<div class="alert alert-danger" role="alert">
Fehler beim versenden der Anfrage
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<?php foreach($errors as $errorMessage):?>
<p><?= $errorMessage ?></p>
<?php endforeach;?>
</div>
<?php endif;?>
</section>
<?php endif;?>
<div>
<?php
if (isset($_POST['submit'])) {
mail("kcb@schickma.de", "Kontaktformular", 'Name: ' . $_POST["name"] . 'Nachname: ' . $_POST["lasname"] . 'Email: ' . $_POST["email"] . 'Nachricht: ' . $_POST["message"]);
}
?>
</div>
<div class="formcross">
<img class="somethingStrange" src="./img/vector-1.png" alt="">
<img class="roundspin" src="./img/vector-2.png" alt="">
<div class="formBox">
<img class="roboCop" src="./img/Logo_Robikopf_Klein.png" alt="">
<form action="./index.php" method="post" target="ausgabe">
<div class="headingBox">
<h1>Wie können wir dir helfen?</h1>
</div>
<fieldset class="formColHalf">
<input required type="text" value="<?= htmlspecialchars($name, ENT_QUOTES, 'UTF-8') ?>" id="Name" name="Name" placeholder="Vorrname*" maxlength="50" >
<input required type="text" value="<?= htmlspecialchars($lastname, ENT_QUOTES, 'UTF-8') ?>" id="Lastname" name="Lastname" placeholder="Nachname*" maxlength="50" >
<input required type="email" value="<?= htmlspecialchars($email, ENT_QUOTES, 'UTF-8') ?>" id="Email" name="Email" placeholder="Email*" maxlength="50" >
<input type="tel" placeholder="Telefon">
</fieldset>
<fieldset>
<select name="Betreff">
<option>Bitte Wählen</option>
<?php foreach($options as $value => $item):
$selectString = $item['selected']?' selected':'';
?>
<option value="<?= $value?>"<?=$selectString?>><?= $item['title']?></option>
<?php endforeach;?>
</select>
<textarea id="message" name="Nachricht" rows="5" cols="80" required <?= htmlspecialchars($message, ENT_QUOTES, 'UTF-8') ?> maxlength="250"></textarea>
<div></div>
<button type="submit" name="submit">Absenden</button>
</fieldset>
</form>
</div>
</div>
</body>
</html>
 

owieortho

Aktives Mitglied

Ich habe die Fehlerstellen markiert, die erst einmal korrigiert werden sollten bevor die nächste Funktionsprüfung stattfindet.
<?php

error_reporting(-1);

ini_set('display_errors', 'On');

/**

* Eingabe

*/

$options = [

'allgemeine_anfrage'=>['title'=>'Allgemeine Anfrage','selected'=>false],

'technische_anfrage'=>['title'=>'Technische Anfrage', 'selected'=>false],

'sonstige_anfrage'=>['title' =>'Sonstige Anfrage', 'selected'=>false],

];

$name='';

$lastname='';

$email ='';

$betreff='';

$message='';

$isPostRequest = $_SERVER['REQUEST_METHOD'] === 'POST';

$errors =[];

//Verarbeitung

//

if($isPostRequest) {

$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);

$lastname = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING);

$email = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING);

$message = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING);

$subject = filter_input(INPUT_POST, 'subject', FILTER_SANITIZE_STRING);


if (isset($options[$subject])) {

$options[$subject]['selected'] = true;

}

if (!$name) {

$errors[] = 'Vorname ist leer';

}

if (!$lastname) {

$errors[] = 'Nachname ist leer';

}

if (!$email) {

$errors[] = 'Email ist leer';

}

if (!$message) {

$errors[] = 'Bitte eine Nachricht hinterlassen';

}

if (!isset($options[$subject])) {

$errors[] = 'Bitte betreff auswählen';

}

$data = [

'name' => $name,

'lastname' =>$lastname,

'email' =>$email,

'subject'=>$options[$subject]['title'],

'message'=>$message

];

file_put_contents('datei.txt', serialize($data) . ';;;', FILE_APPEND);


$_POST = [];

$options[$subject]['selected'] = false;

$subject = null;

$name = '';

$lastname = '';

$email = '';

$message = '';


}


?>


<!DOCTYPE html>

<html lang="de">

<head>

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE-edge">

<meta name="viewport" content="width-device-with, initial-scale=1.0">

<link rel="stylesheet" href="styles.css">

<title>Kontaktformular</title>

<meta charset="UTF-8">

</head>

<body>

<?php if($isPostRequest):?>

<section class="container" id="alets">

<?php if(count($errors) === 0):?>

<div class="alert alert-success" role="alert">

Anfrage versendet!

<button type="button" class="close" data-dismiss="alert" aria-label="Close">

<span aria-hidden="true">&times;</span>

</button>

</div>

<?php endif;?>

<?php if(count($errors) > 0):?>

<div class="alert alert-danger" role="alert">

Fehler beim versenden der Anfrage

<button type="button" class="close" data-dismiss="alert" aria-label="Close">

<span aria-hidden="true">&times;</span>

</button>

<?php foreach($errors as $errorMessage):?>

<p><?= $errorMessage ?></p>

<?php endforeach;?>

</div>

<?php endif;?>

</section>

<?php endif;?>

<div>

<?php

if (isset($_POST['submit'])) {

mail("kcb@schickma.de", "Kontaktformular", 'Name: ' . $_POST["name"] . 'Nachname: ' . $_POST["lasname"] . 'Email: ' . $_POST["email"] . 'Nachricht: ' . $_POST["message"]);

}

?>

</div>

<div class="formcross">

<img class="somethingStrange" src="./img/vector-1.png" alt="">

<img class="roundspin" src="./img/vector-2.png" alt="">

<div class="formBox">

<img class="roboCop" src="./img/Logo_Robikopf_Klein.png" alt="">

<form action="./index.php" method="post" target="ausgabe">

<div class="headingBox">

<h1>Wie können wir dir helfen?</h1>

</div>

<fieldset class="formColHalf">

<input required type="text" value="<?= htmlspecialchars($name, ENT_QUOTES, 'UTF-8') ?>" id="Name" name="Name" placeholder="Vorrname*" maxlength="50" >

<input required type="text" value="<?= htmlspecialchars($lastname, ENT_QUOTES, 'UTF-8') ?>" id="Lastname" name="Lastname" placeholder="Nachname*" maxlength="50" >

<input required type="email" value="<?= htmlspecialchars($email, ENT_QUOTES, 'UTF-8') ?>" id="Email" name="Email" placeholder="Email*" maxlength="50" >

<input type="tel" placeholder="Telefon"> Wird das verarbeitet? name? id?

</fieldset>

<fieldset>

<select name="Betreff">

<option>Bitte Wählen</option>

<?php foreach($options as $value => $item):

$selectString = $item['selected']?' selected':'';

?>

<option value="<?= $value?>"<?=$selectString?>><?= $item['title']?></option>

<?php endforeach;?>

</select>

<textarea id="message" name="Nachricht" rows="5" cols="80" required <?= htmlspecialchars($message, ENT_QUOTES, 'UTF-8') ?> maxlength="250"></textarea>

<div></div>

<button type="submit" name="submit">Absenden</button>

</fieldset>

</form>

</div>

</div>

</body>

</html>

Viel Erfolg
O.
 
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

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.633
Beiträge
1.538.446
Mitglieder
67.555
Neuestes Mitglied
scheflo
Oben