Ämne: Else if sats
Visa ett inlägg
Oläst 2006-03-21, 00:58 #3
Lundstedt Lundstedt är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 136
Lundstedt Lundstedt är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 136
Anledning till ditt problem är att du säger bara åt scriptet att skriva ut text om det hittas några fel, men du säger inte åt det att samtidigt inte lägga in uppgifterna i databasen. Ett enkelt sätt du kan göra är att innan din a if-satser sätta $error = FALSE; och i varje if-sats, under felmeddelandet, sätta $error = TRUE;. När det väl är dags att skicka uppgifterna till databasen gör du:
Kod:
if ($error === FALSE) {
  ... kod som ska köras om inga fel hittats ...
}
Ett annan strategi, som jag ofta använder, är att stoppa varje felmeddelande i en vektor. Då kan du på slutet antingen godkänna uppgifterna eller lista ALLA fel. Ett exempel tillsammans med din kod skulle kunna vara följande för dina if-satser:
Kod:
if ($nicklength > 15) {
  $error[] = 'Nickname was too long.';
}
if ($nicklength < 3) {
  $error[] = 'Nickname was too short.';
}
if ($messagelength > 200) {
  $error[] = 'Message was too long.';
}
if ($messagelength < 5) {
  $error[] = 'Message was too short.';
}
if (isset($nick) && empty($message)) {
  $error[] = 'Please fill in both fields.';
}
Följande för att godkänna eller lista fel:
Kod:
if (count($error) == 0) {
  ... inga fel ...
} else {
  echo 'The following errors were found in your submission:';
  echo '<ul>';
  foreach ($error as $fel) {
    echo '<li>' . $fel . '</li>';
  }
  echo '</ul>'
}
Lundstedt är inte uppkopplad   Svara med citatSvara med citat