Hallo,
beim Versuch mir ein "Skript" zu basteln, mit welchem im am Ende dann mal meine Ein und Ausgaben verwalten kann, bin ich auf ein Problem gestoßen.
Und zwar schickt er mir das Formular ab obwohl es leer ist. Aber die definierten Fehlermeldungen gibt er trotzdem aus.
Woran liegt das denn, dass das Formular trotzdem leer abgeschickt wird.
error_reporting(E_ALL); ist eingeschaltet.
Ich finde den Fehler einfach nicht.
Bitte um Hilfe.
beim Versuch mir ein "Skript" zu basteln, mit welchem im am Ende dann mal meine Ein und Ausgaben verwalten kann, bin ich auf ein Problem gestoßen.
Und zwar schickt er mir das Formular ab obwohl es leer ist. Aber die definierten Fehlermeldungen gibt er trotzdem aus.
Woran liegt das denn, dass das Formular trotzdem leer abgeschickt wird.
error_reporting(E_ALL); ist eingeschaltet.
Ich finde den Fehler einfach nicht.
Bitte um Hilfe.
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Titel</title>
<meta http-equiv="content-type" content="text/html; charset=us-ascii" />
<meta name="description" content="" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<style type="text/css">
fieldset {
width: 290px;
}
span.input {
float: left;
width: 100px;
padding-bottom: 5px;
}
.absenden {
border: none;
}
</style>
<link href="images/favicon.ico" type="image/x-icon" rel="shortcut icon" />
</head>
<body>
<?php
//error
error_reporting(E_ALL);
$base = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr|stuvwxyz0123456789_-';
$max = strlen($base)-1;
$aid = '';
mt_srand((double)microtime()*1000000);
while (strlen($aid)<32)
$aid .= $base{mt_rand(0,$max)};
if (isset( $_POST['absenden']) ) {
$fehler = '';
// Maskierende Slashes aus POST Array entfernen
if (get_magic_quotes_gpc()) { $_POST = array_map( 'stripslashes', $_POST ); }
$beschreibung = htmlspecialchars($_POST['beschreibung']);
$datum = htmlspecialchars($_POST['datum']);
$anzahl = htmlspecialchars($_POST['anzahl']);
$betrag = htmlspecialchars($_POST['betrag']);
$kategorie = htmlspecialchars($_POST['kategorie']);
$db = @new mysqli( 'localhost', 'root', 'pass', 'kasse' );
// check verbindung
if (mysqli_connect_errno() == 0)
{
$sql = 'INSERT INTO `ausgaben` (`aid`, `beschreibung`, `datum`, `anzahl`, `betrag`, `kategorie`) VALUES (?, ?, ?, ?, ?, ?)';
$eintrag = $db->prepare( $sql );
$eintrag->bind_param( 'sssids', $aid, $beschreibung, $datum, $anzahl, $betrag, $kategorie );
$eintrag->execute();
// überprüft ob eintrag erfolg hatte
if ($eintrag->affected_rows == 1)
{
echo 'Der neue Eintrage wurde hinzugefügt.';
}
else
{
echo 'Der Eintrag konnte nicht hinzugefügt werden.';
}
}
else
{
echo 'Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: <strong>' .mysqli_connect_errno(). ' : ' .mysqli_connect_error(). '</strong>';
}
// db schliessen
$db->close();
if (isset($_POST['beschreibung']) && !is_array($_POST['beschreibung']) && $_POST['beschreibung'] != '') {
//
} else {
$fehler .= 'Keine Beschreibung angegeben<br />';
}
if (isset($_POST['datum']) && !is_array($_POST['datum']) && $_POST['datum'] != '') {
//
} else {
$fehler .= 'Kein Datum eingetragen!<br />';
}
if (isset($_POST['anzahl']) && !is_array($_POST['anzahl']) && $_POST['anzahl'] != '') {
//
} else {
$fehler .= 'Keine Anzahl angegeben!<br />';
}
if (isset($_POST['betrag']) && !is_array($_POST['betrag']) && $_POST['betrag'] != '') {
//
} else {
$fehler .= 'Kein Betrag eingegeben!<br />';
}
if (isset($_POST['kategorie']) && !is_array($_POST['kategorie']) && $_POST['kategorie'] != '') {
//
} else {
$fehler .= 'Keine Kategorie ausgewählt!<br />';
}
if ($fehler == '') {
} else {
echo "<b>$fehler</b>";
}
}
?>
<fieldset>
<legend>Neuen Datensatz anlegen!</legend>
<form name="ausgan" action="" method="post" enctype="text/html">
<input type="hidden" name="id" value="id eingeben" size="20" maxlength="50" />
<span class="input">Beschreibung: </span> <input type="text" name="beschreibung" value="<?php
if (isset($_POST['beschreibung']) && !is_array($_POST['beschreibung'])) {
echo $_POST['beschreibung'];
}?>" size="20" maxlength="50" /><br style="clear: both;" />
<span class="input">Datum: </span> <input type="text" name="datum" value="<?php
if (isset($_POST['datum']) && !is_array($_POST['datum'])) {
echo $_POST['datum'];
}?>" size="20" maxlength="50" /><br style="clear: both;" />
<span class="input">Anzahl: </span> <input type="text" name="anzahl" value="<?php
if (isset($_POST['anzahl']) && !is_array($_POST['anzahl'])) {
echo $_POST['anzahl'];
}?>" size="20" maxlength="50" /><br style="clear: both;" />
<span class="input">Betrag: </span> <input type="text" name="betrag" value="<?php
if (isset($_POST['betrag']) && !is_array($_POST['betrag'])) {
echo $_POST['betrag'];
}?>" size="20" maxlength="50" /><br style="clear: both;" />
<span class="input">Kategorie: </span>
<select name="kategorie">
<option value="">Bitte wählen</option>
<option value="privat"<?php
if (isset($_POST['kategorie']) && $_POST['kategorie'] == 'privat') {
echo ' selected="selected"';
}
?>>Privat</option>
<option value="xprivat"<?php
if (isset($_POST['kategorie']) && $_POST['kategorie'] == 'xprivat') {
echo ' selected="selected"';
}
?>>XPrivat</option>
</select>
<br style="clear: both;" />
<input type="submit" class="absenden" name="absenden" value="Save" />
</form>
</fieldset>
</body>
</html>
Kommentar