Eingabe Problem

kela_root

Mitglied
Hi Leute,
ich soll ein Eingabeformular entwerfen und es auch auf seine Eingaben überprüfen lassen. Nun hatte ich hier einen ganz interessanten Beitrag gefunden, wie man es anstellen kann und ich hab ihn auch gleich mal ausprobiert und für mich angepasst. Nun hab ich aber leider das problem, dass er die einträge weder überprüft oder die gewünscht fehlermeldung ausgibt und alles in die datenbank einträgt, anstatt ne fehlermeldung auszugeben. Wäre echt super dankbar, wenn ih mir nen paar Vorschläge unterbreiten könntet, um das Problem zu lösen-
PHP:
<?php
error_reporting(E_ALL);
include 'db.php';

$name = "";
$nameProj = "";
$purNr = "";
$jira = "";
$exTime = "";
$exTermin = "";
$inTime = "";
$inReell = "";
$status = "";

$action = 0;
$action = isset($_REQUEST["action"]) ? $_REQUEST["action"] : 0;


$error = array(
    "name"      => 0,
    "selection" => 0,
    "nameProj0" => 0,
    "nameProj1" => 0,
    "purNr"     => 0,
    "exTime"    => 0,
    "inTime"    => 0,
    "inReell"   => 0);


if ($action == "create")
{
    $name = isset($_REQUEST['name']) ? $_REQUEST['name'] : "";
    $nameProj0 = isset($_REQUEST['nameProj0']) ? $_REQUEST['nameProj0'] : "";
    $nameProj1 = isset ($_REQUEST['nameProj1']) ? $_REQUEST['nameProj1'] : "";
    $purNr = isset ($_REQUEST['purNr']) ? $_REQUEST['purNr'] : "";
    $jira = isset ($_REQUEST['jira']) ? $_REQUEST['jira'] : "";
    $exTime = isset ($_REQUEST['exTime']) ? $_REQUEST['exTime'] : "";
    $exTermin = isset ($_REQUEST['exTermin']) ? $_REQUEST['exTermin'] : "";
    $inTime = isset ($_REQUEST['inTime']) ? $_REQUEST['inTime'] : "";
    $inReell = isset ($_REQUEST['inReell']) ? $_REQUEST['inReell'] : "";

    $msg['name'][1] = "Feld wurde nicht ausgefüllt.";
    $msg['name'][2] = "Es dürfen nur Buchstaben eingebeben werden.";
    $msg['nameProj1'][1] = "Feld wurde nicht ausgefüllt";
    $msg['nameProj1'][2] = "Es dürfen nur Buchstaben eingebeben werden.";
    $msg['selection'][1] = "Bitte Vorgabe oder Eingabe wählen";
    $msg['selection'][2] = "Bitte zwischen Vorgabe oder Eingabe wählen";
    $msg['purNr'] = "Es dürfen nur Zahlen eingegeben werden.";
    $msg['exTime'] = "Es dürfen nur Zahlen eingegeben werden.";
    $msg['inTime'] = "Es dürfen nur Zahlen eingegeben werden";
    $msg['inReell'] = "Es dürfen nur Zahlen eingegeben";


    if ( ( !preg_match("/^[a-zäöüA-ZÄÖÜ\- ]*$/", $name, $matches) ) && ( $name != "" ) )
    {
        $error['name'] = 2;
    }
    elseif ( $name == "" )
    {
        $error['name'] = 1;
    }
    if (!isset ($name)) {
        if ( ( !preg_match("/^[a-zäöüA-ZÄÖÜ\- ]*$/", $nameProj1, $matches) ) && ( $nameProj1 != "" ) )
        {
            $error['nameProj1'] = 2;
        }
        elseif ( $nameProj1 == "" )
        {
            $error['nameProj1'] = 1;
        }
    }
    if (isset($nameProj0) && ($nameProj1 == "true"))
    {
        $error['selection'] = 2;
    }
    elseif  (!isset ($nameProj0) && ($nameProj1) == "" )
    {
        $error['selection'] = 1;
    }
    if ( ( !preg_match("/^[0-9]{5}$/", $purNr, $matches) ) && ( $purNr != "" ) )
    {
       
    }
    if ( ( !preg_match("/^[0-9]/", $exTime, $matches) ) && ( $exTime != "" ) )
    {
        $error['exTime'];
    }
    if ( ( !preg_match("/^[0-9]/", $inTime, $matches) ) && ( $inTime != "" ) )
    {
        $error['inTime'];
    }
    if ( ( !preg_match("/^[0-9]/", $inReell, $matches) ) && ( $inReell != "" ) )
    {
        $error['inReell'];
    }
}
if ($action == "true") {
$eintrag = "INSERT INTO vorgang (name,nameProj,purNr,jira,exTime,exTermin,inTime,inReell,status)  VALUES ('$name','$nameProj','$purNr','$jira','$exTime','$exTermin','$inTime','$inReell','$status')";
$eintragen = mysql_query($eintrag);
}
else {
echo 'Fehler';
}
?>
<head>
<title>Erstellen eines neuen Vorgangs</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<form
	action="<?=$_SERVER['PHP_SELF']?>?create=true"
	method="post">
<table border="1">
	<tr>
		<th colspan="2">Neuen Vorgang erstellen <?php
		if ( in_array())
		{
		    echo "<br /><span style='color: #FF0000; font-weight: bold;'>";
		    echo "Bei der Formularprüfung sind Fehler aufgetreten.<br />\n";
		    echo " Bitte korrigieren Sie die rot markierten Felder.";
		    echo "</span>";
		}
		?></th>
	</tr>
	<tr>
		<td>Name / Bezeichnung</td>
		<td <?=$error['name'] != "" ? "class='error'" : ""?>><input
			class="inp260<?=$error['name'] != "" ? "error" : ""?>" type="Text"
			name="name" value="<?=$name; ?>" size="" maxlength="" /></td>
	</tr>
	<tr>
		<td>Projekt / Bereich</td>
		<td>
		<table>
			<tr <?=$error['selection'] != "" ? "class='error'" : ""?>>
				<td><input type="Radio" name="selection" value="v" checked="checked" /></td>
				<td><select
					class="inp260<?=$error['selection'] != "" ? "error" : ""?> 
					name="
					nameProj0" size="1">
					<option value="">Bitte wählen...</option>
					<option value="Auswahl1">Auswahl</option>
					<option value="Auswahl2">Auswahl</option>
					<option value="Auswahl3">Auswahl</option>
					<option value="Auswahl4">Auswahl</option>
					<option value="Auswahl5">Auswahl</option>
				</select></td>
			</tr>
			<tr <?=$error['selection'] != "" ? "class='error'" : ""?>>
				<td><input type="Radio" name="selection" value="v" /></td>
				<td <?=$error['nameProj1'] != "" ? "class='error'" : ""?>><input
					type="Text" name="nameProj1" value="<?=$_REQUEST['nameProj1']?>"
					size="" maxlength="" /></td>
			</tr>
		</table>
		</td>
	</tr>
	<tr>
		<td>Pur-Auftrag</td>
		<td <?=$error['purNr'] != "" ? "class='error'" : ""?>><input
			class="inp260<?=$error['purNr'] != "" ? "error" : ""?>" type="Text"
			name="purNr" value="" size="" maxlength="" /></td>
	</tr>
	<tr>
		<td>JIRA</td>
		<td><input type="Text" name="jira" value="" size="" maxlength="" /></td>
	</tr>
	<tr>
		<td>Externe Schätzung</td>
		<td <?=$error['exTime'] != "" ? "class='error'" : ""?>><input
			class="inp260<?=$error['exTime'] != "" ? "error" : ""?>" type="Text"
			name="exTime" value="" size="" maxlength="" /></td>
	</tr>
	<tr>
		<td>Externer Termin</td>
		<td><input type="Text" name="exTermin" value="" size="" maxlength="" /></td>
	</tr>
	<tr>
		<td>Interne Schätzung</td>
		<td <?=$error['inTime'] != "" ? "class='error'" : ""?>><input
			class="inp260<?=$error['inTime'] != "" ? "error" : ""?>" type="Text"
			name="inTime" value="" size="" maxlength="" /></td>
	</tr>
	<tr>
		<td>Reelle Arbeitszeit</td>
		<td <?=$error['inReell'] != "" ? "class='error'" : ""?>><input
			class="inp260<?=$error['inReell'] != "" ? "error" : ""?>" type="Text"
			name="inReell" value="" size="" maxlength="" /></td>
	</tr>
	<tr>
		<th colspan="2"><input type="hidden" name="status" value="1" /> <input
			type="Submit" value="Senden" /></th>
	</tr>

</table>
</form>
 
Hi kela_root,

Der Fehler in dem Script ist folgender.
$action ist in immer true, egal ob ein Fehler aufgetreten ist, oder nicht. Somit wird auch immer alles in die DB geschrieben. Werte doch das Array $error aus. Nur dann wenn dieses Array leer ist/nicht existiert ist das Formular true.

Mfg Donell
 
Zurück