Avatar billede juks Novice
11. juni 2005 - 17:50 Der er 4 kommentarer og
1 løsning

tjek af data inden opret bruger

Hej ..
JEg har en side jeg simpelt hen er gået død i kan ikke komme videre :-) er der ikke en der kan give en hånd ...
JEg skal "bare" validere data inden man opretter en bruger men jeg kan ikke fange de fejl ...








<?php


include(realpath("./include") . "../inc/db.inc");




$arrErrors = array();

if(isset($_POST['Opret'])){
    $fullname = ucfirst($_POST['fullname']);
    $address = ucfirst($_POST['address']);
    $phone = $_POST['phone'];
    $email  = strtolower($_POST['email ']);
    $zipcode  = $_POST['zipcode '];
    }
    $username = $_POST['username'];
    $password = $_POST['password'];
    $password2 = $_POST['password2'];
    $login_username = $username;

    if($username == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet noget username.</span>";
    }elseif (!eregi("^[ a-zæøå0-9]+$", $username)) {
        $arrErrors[] = "<span class=\"pfejl\">! Der er ugyldig(e) tegn i usernameet.</span>";
    }elseif($fullname == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet dit fulde Navn.</span>";
    }elseif($zipcode == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet dit post nr.</span>";
    }elseif($address == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet din addresse.</span>";
    }elseif($phone != "") {
      }elseif($phone != "" && !eregi("^[ 0-9]+$", $phone)) {
        $arrErrors[] = "<span class=\"pfejl\">! Telefon nummeret må kun bestå af tal.</span>";
   

    }elseif($password == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet noget kodeord.</span>";
    }elseif($password2 == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du skal skrive kodeordet i begge felter.</span>";
    }elseif($password != $password2) {
            $arrErrors[] = "<span class=\"pfejl\">! De indtastede kodeord er ikke ens. Prøv igen.</span>";
    }


    if(count($arrErrors)== 0){
 
     

        $tjek_username = "SELECT username FROM users WHERE username = '$username'";
        $tjek_email  = "SELECT email  FROM users WHERE email  = '$email '";

        $send_users = "insert into users(username, fullname, zipcode, address, phone, email , kodeord, nyhedsbrev)
            values('$login_username','$fullname', '$zipcode', '$address', '$phone', '$email ', '$password')";



    #  aabn_forbindelse_og_vaelgdb();
        $resultat_tjek_username = mysql_query($tjek_username);
        $resultat_tjek_email  = mysql_query($tjek_email );

        if(!mysql_num_rows($resultat_tjek_username))  {
            if(!mysql_num_rows($resultat_tjek_email ))  {
                mysql_query($send_users);
              # luk_forbindelse();

              # session_start();
                #$_SESSION['login_users'] = $login_username;
                #header("Location: index.php?indstilinger");
  echo "bruger oprettet";
  echo $username;
  echo $_POST['fullname'];
                exit;
            }else {
              echo "FEJL1";
                $arrErrors[] = "<span class=\"pfejl\">! Den valgte email -addressesse er allerede i brug. Vælg en anden.</span>";
              #  luk_forbindelse();
            }
        }else {
            echo "FEJL2";
            $arrErrors[] = "<span class=\"pfejl\">! Der findes allerede en bruger med det Brugernavn. Vælg et andet.</span>";
          #  luk_forbindelse();
          echo "FEJL3";
        }

} else { foreach $error in $arrErrors { echo $error}}
?>
Avatar billede nielle Nybegynder
11. juni 2005 - 18:06 #1
Du siger du jo ikke så meget om hvad det er for nogle fejl den skal fange. Men jeg kan da se at du laver en masse validering i starten af din kode.

Uanset om denne validering fejler eller ej så går du imidlertid alligevel videre til den  anden halæv del af din kode som om at alt var ok. Prøv med:

<?php
include(realpath("./include") . "../inc/db.inc");

$arrErrors = array();

if (isset($_POST['Opret']))
{
    $fullname = ucfirst($_POST['fullname']);
    $address = ucfirst($_POST['address']);
    $phone = $_POST['phone'];
    $email  = strtolower($_POST['email ']);
    $zipcode  = $_POST['zipcode '];
}

$username = $_POST['username'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$login_username = $username;

if ($username == "")
{
    $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet noget username.</span>";
}
elseif (!eregi("^[ a-zæøå0-9]+$", $username))
{
    $arrErrors[] = "<span class=\"pfejl\">! Der er ugyldig(e) tegn i usernameet.</span>";
}
elseif ($fullname == "")
{
    $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet dit fulde Navn.</span>";
}
elseif ($zipcode == "")
{
    $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet dit post nr.</span>";
}
elseif($address == "")
{
    $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet din addresse.</span>";
}
elseif ($phone != "")
{
}
elseif ($phone != "" && !eregi("^[ 0-9]+$", $phone))
{
    $arrErrors[] = "<span class=\"pfejl\">! Telefon nummeret må kun bestå af tal.</span>";
}
elseif ($password == "")
{
    $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet noget kodeord.</span>";
}
elseif ($password2 == "")
{
    $arrErrors[] = "<span class=\"pfejl\">! Du skal skrive kodeordet i begge felter.</span>";
}
elseif ($password != $password2)
{
    $arrErrors[] = "<span class=\"pfejl\">! De indtastede kodeord er ikke ens. Prøv igen.</span>";
}
else
{
    if (count($arrErrors) == 0)
    {
        $tjek_username = "SELECT username FROM users WHERE username = '$username'";
        $tjek_email  = "SELECT email FROM users WHERE email = '$email '";

        $send_users = "insert into users(username, fullname, zipcode, address, phone, email , kodeord, nyhedsbrev)
            values('$login_username','$fullname', '$zipcode', '$address', '$phone', '$email ', '$password')";

        # aabn_forbindelse_og_vaelgdb();
        $resultat_tjek_username = mysql_query($tjek_username);
        $resultat_tjek_email = mysql_query($tjek_email);

        if (!mysql_num_rows($resultat_tjek_username))
        {
            if (!mysql_num_rows($resultat_tjek_email))
            {
                mysql_query($send_users);
                # luk_forbindelse();

                # session_start();
                #$_SESSION['login_users'] = $login_username;
                #header("Location: index.php?indstilinger");
                echo "bruger oprettet";
                echo $username;
                echo $_POST['fullname'];
                exit;
            }
            else
            {
                echo "FEJL1";

                $arrErrors[] = "<span class=\"pfejl\">! Den valgte email -addressesse er allerede i brug. Vælg en anden.</span>";
                # luk_forbindelse();
            }
        }
        else
        {
            echo "FEJL2";
            $arrErrors[] = "<span class=\"pfejl\">! Der findes allerede en bruger med det Brugernavn. Vælg et andet.</span>";
            # luk_forbindelse();
            echo "FEJL3";
        }
    }
    else
    {
        foreach $error in $arrErrors
        {
            echo $error;
        }
    }
}
?>
Avatar billede juks Novice
11. juni 2005 - 18:08 #2
<?php


include(realpath("./include") . "../inc/db.inc");




$arrErrors = array();

if(isset($_POST['Opret'])){
    $fullname = ucfirst($_POST['fullname']);
    $address = ucfirst($_POST['address']);
    $phone = $_POST['phone'];
    $email  = strtolower($_POST['email ']);
    $zipcode  = $_POST['zipcode '];
    }
    $username = $_POST['username'];
    $password = $_POST['password'];
    $password2 = $_POST['password2'];
    $login_username = $username;

    if($username == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet noget username.</span>";
    }elseif (!eregi("^[ a-zæøå0-9]+$", $username)) {
        $arrErrors[] = "<span class=\"pfejl\">! Der er ugyldig(e) tegn i usernameet.</span>";
    }elseif($fullname == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet dit fulde Navn.</span>";
    }elseif($zipcode == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet dit post nr.</span>";
    }elseif($address == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet din addresse.</span>";
    }elseif($phone != "") {
      }elseif($phone != "" && !eregi("^[ 0-9]+$", $phone)) {
        $arrErrors[] = "<span class=\"pfejl\">! Telefon nummeret må kun bestå af tal.</span>";
   

    }elseif($password == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du har ikke skrevet noget kodeord.</span>";
    }elseif($password2 == "") {
        $arrErrors[] = "<span class=\"pfejl\">! Du skal skrive kodeordet i begge felter.</span>";
    }elseif($password != $password2) {
            $arrErrors[] = "<span class=\"pfejl\">! De indtastede kodeord er ikke ens. Prøv igen.</span>";
    }


    if(count($arrErrors)== 0){
 
     

        $tjek_username = "SELECT username FROM users WHERE username = '$username'";
        $tjek_email  = "SELECT email  FROM users WHERE email  = '$email '";

        $send_users = "insert into users(username, fullname, zipcode, address, phone, email , kodeord, nyhedsbrev)
            values('$login_username','$fullname', '$zipcode', '$address', '$phone', '$email ', '$password')";



    #  aabn_forbindelse_og_vaelgdb();
        $resultat_tjek_username = mysql_query($tjek_username);
        $resultat_tjek_email  = mysql_query($tjek_email );

        if(!mysql_num_rows($resultat_tjek_username))  {
            if(!mysql_num_rows($resultat_tjek_email ))  {
                mysql_query($send_users);
              # luk_forbindelse();

              # session_start();
                #$_SESSION['login_users'] = $login_username;
                #header("Location: index.php?indstilinger");
  echo "bruger oprettet";
  echo $username;
  echo $_POST['fullname'];
                exit;
            }else {
              echo "FEJL1";
                $arrErrors[] = "<span class=\"pfejl\">! Den valgte email -addressesse er allerede i brug. Vælg en anden.</span>";
              #  luk_forbindelse();
            }
        }else {
            echo "FEJL2";
            $arrErrors[] = "<span class=\"pfejl\">! Der findes allerede en bruger med det Brugernavn. Vælg et andet.</span>";
          #  luk_forbindelse();
          echo "FEJL3";
        }
}
else {



  reset($arrErrors);
while (list(, $value) = each($arrErrors)) {
  echo "<$value<br />\n";
}

}
  ?>
Avatar billede juks Novice
11. juni 2005 - 18:08 #3
{



  reset($arrErrors);
while (list(, $value) = each($arrErrors)) {
  echo "<$value<br />\n";
}

}
  ?>
Avatar billede juks Novice
11. juni 2005 - 18:09 #4
det var mig der lavede noget rod til sidst
Avatar billede nielle Nybegynder
11. juni 2005 - 18:35 #5
Den else som jeg påpegede at du mangler - ja, den mangler du altså stadigvæk. Det er denne her:

...
elseif ($password2 == "")
{
    $arrErrors[] = "<span class=\"pfejl\">! Du skal skrive kodeordet i begge felter.</span>";
}
elseif ($password != $password2)
{
    $arrErrors[] = "<span class=\"pfejl\">! De indtastede kodeord er ikke ens. Prøv igen.</span>";
}
else  <<---- uden denne else går programmet videre til database-delen selv om felterne i din form ikke validerede.
{
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