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">×</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">×</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>
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">×</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">×</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>