Avatar billede hrole Mester
22. marts 2010 - 23:37 Der er 3 kommentarer og
1 løsning

Problem med function()

Hej,

Jeg har ændret:
if (isset($_POST['submitted'])) {
$errors = array();
if (!preg_match('/^[[:alpha:][:space:]æøåÆØÅ\.\-\(\)]{1,40}$/', $_POST['fornavn'])) {
$errors['fornavn'] = 'Fornavn skal bestå af bogstaver, eller tegnene .-.'; }
if (count($errors) == 0) {
// indsæt i db
}
}

til

$errors = array();
function fornavn() {
if (!preg_match('/^[[:alpha:][:space:]æøåÆØÅ\.\-\(\)]{1,40}$/', $_POST['fornavn'])) {
$errors['fornavn'] = 'Fornavn skal bestå af bogstaver, eller tegnene .-.'; }
}

if (isset($_POST['submitted'])) {
fornavn();
if (count($errors) == 0) {
// indsæt i db
}
}

Men selvom $errors er lig 0 indsættes i db. Hvad har jeg gjort forkert i min omskrivning?
Avatar billede Slettet bruger
23. marts 2010 - 01:07 #1
Dt skyldes at variablen errors er defineret udenfor funktionen.
= du arbejder med 2 forskellige variabler.

For at få det til at virke som ønsket skal du "importere" variablen i funktionen:

function fornavn()
  {
  global $errors;
  if (!preg_match('/^[[:alpha:][:space:]æøåÆØÅ\.\-\(\)]{1,40}$/', $_POST['fornavn']))
      {
      $errors['fornavn'] = 'Fornavn skal bestå af bogstaver, eller tegnene .-.'; }
      }
  }

Mere her: http://php.net/manual/en/language.variables.scope.php
Avatar billede hrole Mester
23. marts 2010 - 12:06 #2
Aha, tak for det :) Smid svar.
Avatar billede Slettet bruger
23. marts 2010 - 13:36 #3
S'gerne : )
Avatar billede Slettet bruger
23. marts 2010 - 13:38 #4
Ups
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