Avatar billede BrJoe Nybegynder
25. oktober 2009 - 16:48 Der er 5 kommentarer og
1 løsning

Reg. Expressions hvad går galt ??

Jeg har det her script som skal validere en form men kan ikke finde fejlene.. Har prøvet med if og else og elseif, kan simpelthen ikke få det til..

Den kommer med fejlen:

Parse error: syntax error, unexpected '}' in C:\xampp\htdocs\hos-skat\opret_bruger.php on line 154

Scriptet:


        <?php
   
            if(isset($_POST['submit'])) {
               
                if(empty($_POST['fornavn']) ||
                empty($_POST['efternavn']) ||
                empty($_POST['brugernavn']) ||
                empty($_POST['password']) ||
                empty($_POST['alder']) ||
                empty($_POST['email']) ||
                empty($_POST['adresse']) ||
                empty($_POST['postnr']) ||
                empty($_POST['omraade']) ||
                empty($_POST['tlf'])) {
               
                    echo "<br />Du skal udfylde alle felter.";   
                   
                }
               
                if (!preg_match("/^[a-z0-9_-]{3,16}$/", trim(strip_tags($_POST['brugernavn'])))) {
               
                    echo "<br />Udfyld venligst dit brugernavn korrekt!";
               
                }
               
                if (!preg_match("/^[a-z0-9_-]{6,18}$/", trim(strip_tags($_POST['password'])))) {
               
                    echo "<br />Udfyld venligst dit password korrekt!";
               
                }

                if (!preg_match("/^[1-9]{2,2}$/", trim(strip_tags($_POST['alder'])))) {
               
                    echo "<br />Udfyld venligst din alder korrekt!";
               
                }
                   
                if (!preg_match("/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/", trim(strip_tags($_POST['email'])))) {
                   
                    echo "<br />Udfyld venligst din email korrekt!";
               
                }

                if (!preg_match("/^[0-9]{1,4}$/", trim(strip_tags($_POST['postnr'])))) {
                   
                    echo "<br />Udfyld venligst dit postnr korrekt!";
               
                }
               
                if (!preg_match("/^[0-9]{1,8}$/", trim(strip_tags($_POST['tlf'])))) {
                   
                    echo "<br />Udfyld venligst dit tlf nummer korrekt!";
               
                }
                             
                $fornavn = $_POST['fornavn'];
                $efternavn = $_POST['efternavn'];
                $brugernavn = $_POST['brugernavn'];
                $password = $_POST['password'];
                $alder = $_POST['alder'];
                $email = $_POST['email'];
                $adresse = $_POST['adresse'];
                $postnr = $_POST['postnr'];
                $omraade = $_POST['omraade'];
                $tlf = $_POST['tlf'];
                   
                $result = mysql_query("INSERT INTO users
                                      (fornavn,
                                      efternavn,
                                      brugernavn,
                                      password,
                                      alder,
                                      email,
                                      adresse,
                                      postnr,
                                      omraade,
                                      tlf)
                                      VALUES
                                      ('$fornavn',
                                      '$efternavn',
                                      '$brugernavn',
                                      '$password',
                                      '$alder',
                                      '$email',
                                      '$adresse',
                                      '$postnr',
                                      '$omraade',
                                      '$tlf')")
                or die (mysql_error());
               
                    echo "<script type=\"text/javascript\">window.location=\"index.php\"</script>";
               
                }
                   
            }
   
        ?>


Håber der er noget hjælp at hente her.

Tak på forhånd.
Brian.
Avatar billede claes57 Ekspert
25. oktober 2009 - 17:03 #1
den sidste } er for meget - fjern den.
Avatar billede BrJoe Nybegynder
25. oktober 2009 - 17:19 #2
Tak, nu får jeg siden frem.. Men den indsætter stadig data selvom preg_match ikke matcher :S
Avatar billede claes57 Ekspert
25. oktober 2009 - 17:56 #3
du laver ikke test på, om du har skrevet en fejlmeddelelse.
før første if laver du en linje
$medfejl = "0";

og efter hver echo-linje laver du en
$medfejl = "1";

omkring skriv af kald laver du så en
if ($medfejl = "0") {
  skrivkaldet fra $fornavn = $_POST['fornavn']; og ned til or die (mysql_error());
}

så passer det.
Avatar billede BrJoe Nybegynder
25. oktober 2009 - 21:27 #4
Det fatter jeg ikke lige noget af.. Det hjalp ikke noget desværre..
Avatar billede claes57 Ekspert
26. oktober 2009 - 10:21 #5
det, jeg ville, var:

  <?php
 
            if(isset($_POST['submit'])) {
                $medfejl = "0";
                if(empty($_POST['fornavn']) ||
                empty($_POST['efternavn']) ||
                empty($_POST['brugernavn']) ||
                empty($_POST['password']) ||
                empty($_POST['alder']) ||
                empty($_POST['email']) ||
                empty($_POST['adresse']) ||
                empty($_POST['postnr']) ||
                empty($_POST['omraade']) ||
                empty($_POST['tlf'])) {
             
                    echo "<br />Du skal udfylde alle felter.";
                    $medfejl = "1";
                 
                }
             
                if (!preg_match("/^[a-z0-9_-]{3,16}$/", trim(strip_tags($_POST['brugernavn'])))) {
             
                    echo "<br />Udfyld venligst dit brugernavn korrekt!";
                    $medfejl = "1";
             
                }
             
                if (!preg_match("/^[a-z0-9_-]{6,18}$/", trim(strip_tags($_POST['password'])))) {
             
                    echo "<br />Udfyld venligst dit password korrekt!";
                    $medfejl = "1";
             
                }

                if (!preg_match("/^[1-9]{2,2}$/", trim(strip_tags($_POST['alder'])))) {
             
                    echo "<br />Udfyld venligst din alder korrekt!";
                    $medfejl = "1";
             
                }
                 
                if (!preg_match("/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/", trim(strip_tags($_POST['email'])))) {
                 
                    echo "<br />Udfyld venligst din email korrekt!";
                    $medfejl = "1";
             
                }

                if (!preg_match("/^[0-9]{1,4}$/", trim(strip_tags($_POST['postnr'])))) {
                 
                    echo "<br />Udfyld venligst dit postnr korrekt!";
                    $medfejl = "1";
             
                }
             
                if (!preg_match("/^[0-9]{1,8}$/", trim(strip_tags($_POST['tlf'])))) {
                 
                    echo "<br />Udfyld venligst dit tlf nummer korrekt!";
                    $medfejl = "1";
             
                }
                if ($medfejl = "0") {
                $fornavn = $_POST['fornavn'];
                $efternavn = $_POST['efternavn'];
                $brugernavn = $_POST['brugernavn'];
                $password = $_POST['password'];
                $alder = $_POST['alder'];
                $email = $_POST['email'];
                $adresse = $_POST['adresse'];
                $postnr = $_POST['postnr'];
                $omraade = $_POST['omraade'];
                $tlf = $_POST['tlf'];
                 
                $result = mysql_query("INSERT INTO users
                                      (fornavn,
                                      efternavn,
                                      brugernavn,
                                      password,
                                      alder,
                                      email,
                                      adresse,
                                      postnr,
                                      omraade,
                                      tlf)
                                      VALUES
                                      ('$fornavn',
                                      '$efternavn',
                                      '$brugernavn',
                                      '$password',
                                      '$alder',
                                      '$email',
                                      '$adresse',
                                      '$postnr',
                                      '$omraade',
                                      '$tlf')")
                or die (mysql_error());
                }
                    echo "<script type=\"text/javascript\">window.location=\"index.php\"</script>";
             
                }
                 
 
        ?>
Avatar billede BrJoe Nybegynder
28. oktober 2009 - 01:13 #6
Fik det til at virke på anden vis. Ellers tak. :)
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
Kurser inden for grundlæggende programmering

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