<html>
<head>
<title>Formular</title>
</head>
<body>
<?php
$clear1 = true;
$clear2 = true;
$clear3 = true;
$clear4 = true;
$clear5 = true;
$clear6 = true;
if (isset($_POST['Absenden'])) {
$ausgabe = '';
$fehler = '';
if (isset($_POST['Vorname']) && !is_array($_POST['Vorname']) && $_POST['Vorname'] != ''){
$ausgabe .= 'Vorname: ' . htmlspecialchars($_POST['Vorname']) . '<br />';
} else {
$fehler .= 'Bitte füllen Sie Ihren Vornamen aus<br />';
$clear1 = false;
}
if (isset($_POST['Nachname']) && !is_array($_POST['Nachname']) && $_POST['Nachname'] != ''){
$ausgabe .= 'Nachname: ' . htmlspecialchars($_POST['Nachname']) . '<br />';
} else {
$fehler .= 'Bitte füllen Sie Ihren Nachnamen aus<br />';
$clear2 = false;
}
if (isset($_POST['hausnummer']) && !is_array($_POST['hausnummer']) && $_POST['hausnummer'] != ''){
$ausgabe .= 'hausnummer: ' . htmlspecialchars($_POST['hausnummer']) . '<br />';
} else {
$fehler .= 'Bitte füllen Sie Ihre hausnummer aus.<br />';
$clear3 = false;
}
if (isset($_POST['Jahr']) && is_array($_POST['Jahr']) && count($_POST['Jahr']) > 0) {
$ausgabe .= 'Jahr: ' . htmlspecialchars(implode(' ',$_POST['Jahr'])) . '<br />' ;
}
else {
$fehler .= 'Bitte wählen Sie Ihre Jahr aus.<br />';
$clear4 = false;
}
if (isset($_POST['Uhrzeit']) && !is_array($_POST['Uhrzeit']) && $_POST['Uhrzeit'] != ''){
$ausgabe .= 'Zeit: ' . htmlspecialchars($_POST['Uhrzeit']) . '<br />';
} else {
$fehler .= 'Bitte füllen Sie Ihre Uhrzeit aus.<br />';
$clear5 = false;
}
if (isset($_POST['Wochentag']) && !is_array($_POST['Wochentag']) && $_POST['Wochentag'] != ''){
$ausgabe .= 'Wochentag: ' . htmlspecialchars($_POST['Wochentag']) . '<br />';
} else {
$fehler .= 'Bitte wählen Sie Ihren Wochentag.<br />';
$clear6 = false;
}
if ($fehler == '') {
echo $ausgabe;
echo '</body></html>';
} else {
echo "$fehler";
}
try {
$db = new Mysqli('localhost', 'root', 'zigeuner123', 'tutorium');
echo 'sql offen';
$sql = sprintf ("INSERT INTO angaben (Vorname, Nachname, hausnummer, Jahr, Uhrzeit, Wochentag)
VALUES (%s,%s,%s,%s,%s,%s)",
$db->real_escape_string($_POST['Vorname']),
$db->real_escape_string($_POST['Nachname']),
(int)($_POST['hausnummer']),
$db->real_escape_string(implode(',',$_POST['Jahr'])),
$db->real_escape_string($_POST['Uhrzeit']),
$db->real_escape_string($_POST['Wochentag'])
);
$db->query($sql);
echo 'sql geschickt';
$db->close();
} catch (Exception $e) {
echo 'Fehler:' . htmlspecialchars($e->getMessage());
}
}
?>
<form action="<?php echo htmlspecialchars ($_SERVER['PHP_SELF']); ?>" method="POST">
<label for='Vorname'>Vorname:</label><br>
<input type='text' name='Vorname' id='Vorname' maxlength="50" value="<?php
if(isset($_POST['Vorname']) && !is_array($_POST['Vorname'])) {
echo htmlspecialchars ($_POST['Vorname']);
}
?>
"/>
<?php
if (!$clear1) {
echo '<span style="color:orange">*</span>';
}
?>
<br />
<label for='Nachname'>Nachname:</label><br>
<input type='text' name='Nachname' id='Nachname' maxlength="50" value="<?php
if(isset($_POST['Nachname']) && !is_array($_POST['Nachname'])) {
echo htmlspecialchars ($_POST['Nachname']);
}
?>
"/>
<?php
if (!$clear2) {
echo '<span style="color:orange">*</span>';
}
?>
<br />
<label for='hausnummer'>hausnummer:</label><br>
<input type='text' name='hausnummer' id='hausnummer' size="2" value="<?php
if(isset($_POST['hausnummer']) && !is_array($_POST['hausnummer'])) {
echo htmlspecialchars ($_POST['hausnummer']);
}
?>
"/>
<?php
if (!$clear3) {
echo '<span style="color:orange">*</span>';
}
?>
<br />
<p> Geben Sie Ihr Jahr an:<?php
if (!$clear4) {
echo '<span style="color:orange">*</span>';
}
?><br />
<br />
<label for='Jahr'>1992:</label><br>
<input type="checkbox" name="Jahr[]" value="1992" <?php
if (isset($_POST['Jahr']) && is_array($_POST['Jahr']) &&
in_array('1990',$_POST['Jahr'])) {
echo 'checked="checked" ';
}
?>
/>
1992
<br />
<input type="checkbox" name="Jahr[]" value="1993" <?php
if (isset($_POST['Jahr']) && is_array($_POST['Jahr']) &&
in_array('1991',$_POST['Jahr'])) {
echo 'checked="checked" ';
}
?>
/>
1993
<br />
<input type="checkbox" name="Jahr[]" value="1994" <?php
if (isset($_POST['Jahr']) && is_array($_POST['Jahr']) &&
in_array('1992',$_POST['Jahr'])) {
echo 'checked="checked" ';
}
?>
/>
1994<br />
<input type="checkbox" name="Jahr[]" value="1995" <?php
if (isset($_POST['Jahr']) && is_array($_POST['Jahr']) &&
in_array('1995',$_POST['Jahr'])) {
echo 'checked="checked" ';
}
?>
/>
1995
<br />
<input type="checkbox" name="Jahr[]" value="1996" <?php
if (isset($_POST['Jahr']) && is_array($_POST['Jahr']) &&
in_array('1996',$_POST['Jahr'])) {
echo 'checked="checked" ';
}
?>
/>
1996
<br />
<input type="checkbox" name="Jahr[]" value="1997 " <?php
if (isset($_POST['Jahr']) && is_array($_POST['Jahr']) &&
in_array('1997',$_POST['Jahr'])) {
echo 'checked="checked" ';
}
?>
/>
1997
<br />
<input type="checkbox" name="Jahr[]" value="1998" <?php
if (isset($_POST['Jahr']) && is_array($_POST['Jahr']) &&
in_array('1998',$_POST['Jahr'])) {
echo 'checked="checked" ';
}
?>
/>
1998
<br />
</p>
<label for='Uhrzeit' >Bitte geben Sie Ihre Uhrzeit an den sie wählen möchten (Kumulativ)<br />
Mehrere Zeitangaben mit Leerstellen trennung bsp: 12:00 13:00 /Wenn jemand weiß wie ich die Uhrzeit besser speichern kann nur zu Tipps sind erwünscht!</label><br>
<input type='text' name='Uhrzeit' id='Uhrzeit' size="20" value="<?php
if(isset($_POST['Uhrzeit']) && !is_array($_POST['Uhrzeit'])) {
echo htmlspecialchars ($_POST['Uhrzeit']);
}
?>
"/>
<?php
if (!$clear5) {
echo '<span style="color:orange">*</span>';
}
?>
<br />
<br />
<label for='Tag' >Bitte geben Sie Ihre Wochentage an<br />
Beispiel: Montag, Mittwoch, hier gilt das gleiche wie für Uhrzeit :=)<br /><br />
</label>
<input type='text' name='Wochentag' id='Wochentag' size="20" value="<?php
if(isset($_POST['Wochentag']) && !is_array($_POST['Wochentag'])) {
echo htmlspecialchars ($_POST['Wochentag']);
}
?>
"/>
<?php
if (!$clear6) {
echo '<span style="color:orange">*</span>';
}
?>
<br />
<input type='submit' name='Absenden' value='Absenden' />
<input type='reset' name='Zurücksetzen' value='Zurücksetzen'/>
</form>
</body>
</html>
So hier ist mein Formular an dem ich gerade sitze. Ich weiß zwar grad nicht warum es nicht läuft bzw es keine Daten an die Db schickt aber da schau ich mal später rein, dürfte kein problem sein.
Mein hauptproblem besteht bis jetzt nur aus:
Das Array speichern.
Eine Anständige Uhrzeit hinbekommen.
Und die WOchentage auch anständig in die Db zu kriegen.
Das mit der Einen Zeile sieht wirklich derbst daneben aus, in der db.
Was sql injections angeht, ich bin zwar bereits dran mich über das Thema zu informieren, aber nützliche Tipps und Kommandos können nie schaden.
Das Clear1-6 könnte ich eigentlich auch in ein array packen.
Aber das grund gerüst steht ja schon einmal.
Dankbar für Tipps auf jedenfall :=)