Avatar billede Slettet bruger
19. september 2004 - 11:48 Der er 6 kommentarer og
1 løsning

Hvordan springe over noget kode

Hej.

Jeg har dette kode der kontrollerer en form:

if (!isset($_POST['form1']))
{
  $post_empty = 0;
  foreach ($_POST as $key => $value) {
      if ($_POST[$key] == "" || $_POST[$key] == NULL)
      {
        $post_emptykey[] = $key;
        $post_empty++;
      }
  }
  for ($i = 0; $i < $post_empty; $i++)
  {
  echo "<center><font color='#FF0000'>";
  echo 'Du skrev ikke noget i '.$post_emptykey[$i].'!<br><br>';
  echo "</font></center>";
  }
  die();
}

  $insertSQL = sprintf("INSERT INTO tilmelding ( .........

og indtil die(); virker det fint. Jeg har sat den die ind da den ellers fortsætter og forsøger at skrive i databasen. Da felterne ikke må være NULL i databasen får jeg en fejl.

Jeg vil gerne have at dette:

$insertSQL = sprintf("INSERT INTO tilmelding ( .........

springes over når den har været inde og skrive at der er tomme felter. Samtidig vil jeg gerne have at de felter der er udfyldt huskes i $_SESSIONS variabler. Det har jeg sat op før kontrollen af formularen, men de huskes kun, hvis der ingen fejl er (altså tomme felter).

Hvordan kan jeg lave om på dette så de ønskede ting vil virke ?

På forhånd tak.
Avatar billede detox Nybegynder
19. september 2004 - 12:30 #1
Måske:

if ($post_empty == 0) {
  $insertSQL = sprintf("INSERT INTO tilmelding ( .........
  mysql_query($insertSQL)......osv
} else {
  // resten af koden
}
Avatar billede detox Nybegynder
19. september 2004 - 12:33 #2
Du kunne jo samtidig sætte dine session variabler her:

  foreach ($_POST as $key => $value) {
      if ($_POST[$key] == "" || $_POST[$key] == NULL)
      {
        $post_emptykey[] = $key;
        $post_empty++;
      }
      else
      {
        $_SESSION[$key] = $value;
      }
  }
Avatar billede detox Nybegynder
19. september 2004 - 12:42 #3
foreach ($_POST as $key => $value) {
      $_SESSION[$key] = $value;
      if ($_POST[$key] == "" || $_POST[$key] == NULL)
      {
        $post_emptykey[] = $key;
        $post_empty++;
      }
  }

Eller muligvis sådan, da du vel osse vil have de tomme værdier sat.
Avatar billede Slettet bruger
19. september 2004 - 12:42 #4
Det første forslag du kom med ser ud til at virke. TAK for det.

Vil du lave et svar.
Avatar billede Slettet bruger
19. september 2004 - 12:44 #5
Den kode jeg skrev udskriver hvilke felter der er tomme. Og nu kommer den så med formularen igen under fejludskriften og man kan så skrive det sidste ind. Derefter kan den gemmes. Og det ser ud til at den gør hvad jeg ville, med din første linie :-)
Avatar billede Slettet bruger
19. september 2004 - 12:47 #6
if ($post_empty == 0) {
$insertSQL = sprintf("INSERT INTO tilmelding ( .........
}

sådan gjorde jeg og så er det vist iorden. Den har ikke brokket sig og den gemmer data tilsidst.
Avatar billede detox Nybegynder
19. september 2004 - 12:52 #7
Bare i orden så. Velbekommen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester