Noch nicht viel geschrieben
Hallo Gemeinde,
ich habe mir ein Kontaktformular geschrieben und bisher auf einem lokalen System getestet. Soweit gibt es keine Probleme damit. Zumindest keine die ich - vielleicht auch auf Grund mangelnder Erfahrung und Kenntnis - erkennen kann.
Aus diesem Grund, würde ich um prüfende Blicke bitten. Wenn ihr so nett wärt und einmal kritisch darüber schauen und Mängel ansprechen könntet, wäre ich euch sehr verbunden. Vielleicht habt ihr noch weitere Tipps zum Thema Sicherheit.
Ich hoffe, dass ich die Variablen mit Hilfe eines Arrays zusammenführen kann ohne die gleiche Eingaben für jede Variable einzeln zu wiederholen.
Des Weiteren stelle ich mir die Frage, ob, wenn ich die Eingaben des Benutzers noch einmal für diesen übersichtlich zusammenstellen will, ich diese mittels mySQL in einer Datenbank speichern muss, um diese dann anschließend ausgeben zu können. Oder gibt es hierfür noch eine andere Lösung?
Liegt es auch wegen mangelnder Speicherung daran, dass ich die vom Benutzer eingegebene Nachricht nicht wie den Namen, die E-Mail und den Betreff ('value="'.$name.'"') im Formular ausgeben kann?
Bitte hängt euch nicht an den ganzen "div"- und "class"-Tags auf, die ich jetzt der Faulheit halber drin gelassen habe.
Allem voran der HTML-Code:
Hier der PHP-Code, welchem ich das Formular noch einmal nachgestellt habe, falls jemand absichtlich oder versehentlich vergisst eine Eingabe zu tätigen:
Schon einmal im Vorab vielen Dank für Hilfestellung, Tipps & Kritik.
ich habe mir ein Kontaktformular geschrieben und bisher auf einem lokalen System getestet. Soweit gibt es keine Probleme damit. Zumindest keine die ich - vielleicht auch auf Grund mangelnder Erfahrung und Kenntnis - erkennen kann.
Aus diesem Grund, würde ich um prüfende Blicke bitten. Wenn ihr so nett wärt und einmal kritisch darüber schauen und Mängel ansprechen könntet, wäre ich euch sehr verbunden. Vielleicht habt ihr noch weitere Tipps zum Thema Sicherheit.
Ich hoffe, dass ich die Variablen mit Hilfe eines Arrays zusammenführen kann ohne die gleiche Eingaben für jede Variable einzeln zu wiederholen.
Des Weiteren stelle ich mir die Frage, ob, wenn ich die Eingaben des Benutzers noch einmal für diesen übersichtlich zusammenstellen will, ich diese mittels mySQL in einer Datenbank speichern muss, um diese dann anschließend ausgeben zu können. Oder gibt es hierfür noch eine andere Lösung?
Liegt es auch wegen mangelnder Speicherung daran, dass ich die vom Benutzer eingegebene Nachricht nicht wie den Namen, die E-Mail und den Betreff ('value="'.$name.'"') im Formular ausgeben kann?
Bitte hängt euch nicht an den ganzen "div"- und "class"-Tags auf, die ich jetzt der Faulheit halber drin gelassen habe.
Allem voran der HTML-Code:
HTML:
<!DOCTYPE html>
<head>
</head>
<body>
<form action="test_kontakt.php" method="POST">
<label for="name">name</label>
<input type="text" id="name" name="abs_name" placeholder="Your name."><br>
<label for="email">email address</label>
<input class="eingabefeld" type="text" id="email" name="abs_email" placeholder="Your email adress."><br>
<label for="betreff">regarding</label>
<input class="eingabefeld" type="text" id="betreff" name="abs_betreff" placeholder="What's your question about?"><br>
<textarea class="nachrichtenfeld" name="abs_nachricht" placeholder="How may I help you?"></textarea><br>
<input class="button" type="submit" name="submit" value="send">
</form>
</body>
</html>
Hier der PHP-Code, welchem ich das Formular noch einmal nachgestellt habe, falls jemand absichtlich oder versehentlich vergisst eine Eingabe zu tätigen:
PHP:
<!DOCTYPE html>
<body>
<?php
error_reporting (E_ALL);
$name=$_POST['abs_name'];
$email=$_POST['abs_email'];
$betreff=$_POST['abs_betreff'];
$nachricht=$_POST['abs_nachricht'];
$an='email@provider.de';
$von='$name';
$von .='$email';
$abs_eingaben= array($name, $email, $betreff, $nachricht);
$send_mail=mail($an, $betreff | 'Kontaktformular', $von);
function secure($abs_eingaben) {
$abs_eingaben=trim($abs_eingaben); //entfernt Leerzeichen am Anfang und Ende
$abs_eingaben=stripslashes($abs_eingaben); //entfernt Schräger
$abs_eingaben=strip_tags($abs_eingaben); //entfernt < und >
$abs_eingaben=htmlentities($abs_eingaben, ENT_QUOTES); //entfernt Sonderzeichen
return($abs_eingaben);
}
if (isset ($_POST['submit'])) {
if (empty($name)) {
echo '<div class="fehler_name"><p>How may I call you?</p><p>Please fill in a name.</p></div>';
echo '<input class="button" type="submit" name="submit" value="again">';}
if (empty($email)) {
echo '<div class="fehler_email"><p>How may I reply?</p><p>Please fill in an email adress.</p></div>';
echo '<input class="button" type="submit" name="submit" value="again">';}
if (empty($nachricht)) {
echo '<div class="fehler_nachricht"><p>How may I help you?</p><p>Please fill in your question.</p></div>';
echo '<input class="button" type="submit" name="submit" value="again">';}
}
if (isset ($_POST['submit']) &&
!empty($name) &&
!empty($email) &&
!empty($nachricht)) {
$send_mail;
if ($send_mail) {
echo '<div class="gesendet"><p>Thank you.</p><p>Your message has been sent.</p></div>';
}
else {
echo '<div class="gesendet"><p>Sorry, your message could not be delivered. Please try again later.</p></div>';}
}
?>
<form action="" method="POST">
<h1>Got any question?</h1><br>
<label for="name">name</label>
<input class="eingabefeld" type="text" id="name" name="abs_name" <?php echo 'value="'.$name.'"'; ?> placeholder="Your name."><br>
<label for="email">email address</label>
<input class="eingabefeld" type="text" id="email" name="abs_email" <?php echo 'value="'.$email.'"'; ?> placeholder="Your email adress."><br>
<label for="betreff">regarding</label>
<input class="eingabefeld" type="text" id="betreff" name="abs_betreff" <?php echo 'value="'.$betreff.'"'; ?> placeholder="What's your question about?"><br>
<textarea class="nachrichtenfeld" name="abs_nachricht" <?php echo 'value="'.$nachricht.'"'; ?> placeholder="How may I help you?"></textarea><br>
</form>
</body>
</html>
Schon einmal im Vorab vielen Dank für Hilfestellung, Tipps & Kritik.