Willkommen in der Webstatt
User-1 am 09.02.07 17:24

hab hier ne überprüfung von nem formular und frag mich grad obs da für nicht ne "edlere" bzw bessere variante gibt?
if( empty($_POST['marke']) ){ die("Sie müssen eine Automarke angeben!"); }
if( empty($_POST['typ']) ){ die("Sie müssen einen Autotyp angeben!"); }
if( empty($_POST['art']) ){ die("Sie müssen eine Fahrzeugart angeben!"); }
if( empty($_POST['status']) ){ die("Sie müssen den Verkaufsstatus angeben!"); }
if( empty($_POST['preis']) ){ die("Sie müssen einen Preis angeben!"); }
if( empty($_POST['ezmonat']) || empty($_POST['ezjahr'] ) ){ die("Sie müssen das Erzulassungsdatum angeben!"); }
if( empty($_POST['aumonat']) || empty($_POST['aujahr'] ) ){ die("Sie müssen das Datum der letzten AU angeben!"); }
if( empty($_POST['humonat']) || empty($_POST['hujahr'] ) ){ die("Sie müssen das Datum der letzten HU angeben!"); }
if( empty($_POST['km']) ){ die("Sie müssen den KM-Stand angeben!"); }
if( empty($_POST['kw']) ){ die("Sie müssen die Leistung in KW angeben!"); }
if( empty($_POST['ps']) ){ die("Sie müssen die Leistung in PS angeben!"); }
if( empty($_POST['getriebe']) ){ die("Sie müssen angeben ob es sich um ein Schalt oder Automatik-Getriebe handelt!"); }
if( empty($_POST['farbe']) ){ die("Sie müssen eine Farbe angeben!"); }
if( empty($_POST['kraftstoff']) ){ die("Sie müssen die Kraftstoffart angeben!"); }
if( empty($_POST['ausstattung']) ){ die("Sie müssen die Austattung angeben!"); }

netcup.de Warum gibt es hier Werbung?
User-2 am 09.02.07 17:56

Um das Ganze auch aus einer Datenbank heraus füttern zu können würde ich so ganz grob folgende Lösung vorschlagen:
<?php
$felder = array(
'marke',
'typ',
'art',
'status',
'preis',
array( 'ezmonat', 'ezjahr' ),
array( 'aumonat', 'aujahr' ),
array( 'humonat', 'hujahr' ),
'km',
'kw',
'ps',
'getriebe',
'farbe',
'kraftstoff',
'ausstattung'
);

$fehler = array(
'Sie müssen eine Automarke angeben!',
'Sie müssen einen Autotyp angeben!',
'Sie müssen eine Fahrzeugart angeben!',
'Sie müssen den Verkaufsstatus angeben!',
'Sie müssen einen Preis angeben!',
'Sie müssen das Erzulassungsdatum angeben!',
'Sie müssen das Datum der letzten AU angeben!',
'Sie müssen das Datum der letzten HU angeben!',
'Sie müssen den KM-Stand angeben!',
'Sie müssen die Leistung in KW angeben!',
'Sie müssen die Leistung in PS angeben!',
'Sie müssen angeben ob es sich um ein Schalt oder Automatik-Getriebe handelt!',
'Sie müssen eine Farbe angeben!',
'Sie müssen die Kraftstoffart angeben!',
'Sie müssen die Austattung angeben!'
);
$checked = array();
for ( $x = 0; $x < count( $felder ); $x++ )
{
if ( is_array( $felder[$x] ) )
{
for ( $y = 0; $y < count( $felder[$x] ); $y++ )
{
if ( empty( $_POST[$felder[$x][$y]] ) AND !isset( $checked[$x] ) )
{
echo $fehler[$x]."<br />";
$checked[$x] = true;
}
}
}
elseif ( empty( $_POST[$felder[$x]] ) )
{
echo $fehler[$x]."<br />";
}
}
?>


mfg

User-3 am 09.02.07 18:09

Ich kann mir aber nicht vorstellen, dass das effizienter ist.

User-1 am 09.02.07 18:17

jo das sieht ja noch unübersichtlicher aus , aba mal ne frage , wenn ich jetzt z.b. viele automarken haben , sollte ich dann ein array nehemen , in dieses alle marken eintragen, und dann ids zuordnen,
und diese ids in die db speichern ,
beim auslesen dann halt wieder das array durchsuchen ? scheint die beste lösung zu sein , odr halt alles nochma seperat in die db schreiuben (also die marken) was aber mehr aufwand is,. bzw mehr speicher belegt

User-4 am 09.02.07 18:49

Ich will ja nicht aufdringlich erscheinen, zumal ich in eurem Gebiet (php) eigentlich nix verloren hab *g* ...
Aber ist so eine Überprüfung der Formulareingaben, sowohl für User als auch für den Scripter, in JavaScript nicht viel "angenehmer" ? Ich find die Lösungen in php ziemlich hässlich :P

User-5 am 09.02.07 18:51

und wenn man kein js aktiviert hat kommt man "sofort" weiter? ;)

User-1 am 09.02.07 19:12

ja es soll natürlich schon "save" sein ,.
habs jetzt auch leicht abgeändert von wegen html eingaben usw,.
..
aber ich denke so kann mans lassen hab nurnoch das porblem mit den automakren da weiss ich nochnich so recht,.

hab mir das in etwa so vorsgetellt
$automarken = array("audi", "vw",....)

nur wie bekomme ich da werte zugeoprdnet, das ich mit 1 audi aufurfen kann ,.
die werte brauche ich ja fpr mei dropdown feld,.
später wenn ich dann das ganze aus der db ausklese , wie bekomme ich dann bei der ausgabe wieder audi heraus ?

User-6 am 09.02.07 19:17

mach 2 tabellen und beim auslesen joinst du einfach die tabelle mit der marke über die id

User-1 am 09.02.07 20:59

häh?
raff ich irgendwie nich :D

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt