Avatar billede TumseMM Nybegynder
27. juli 2011 - 23:37 Der er 8 kommentarer og
1 løsning

Mindst 4 tegn i register form

Hej Eksperten.dk!

Har lige et spørgsmål her:

Ville gerne have at gæsterne på min hjemmeside oprettede sig, så deres password og brugernavn ikke var på under 4 tegn. Samtidig ville jeg gerne have at e-mail formen validerede at der er et "@" i tekstfeltet.

Har prøvet mig frem med;

if(strlen('password1') < 4)
    {
        echo 'Password for kort';
        $error=1;
    }

Men kan ikke få det til at fungere.

Kode:

 
<?php

$submit= $_POST['register'];
if($submit=="Registrer")
{
    include('connect.php');
    $username = mysql_real_escape_string(strip_tags(htmlspecialchars($_POST['username'])));
    $password1 = md5($_POST['password1']);
    $pw1 = $_POST['password1'];
    $pw2 = $_POST['password2'];
    $email = $_POST['email'];
    $error=0;
   
    if($pw1 != $pw2)
    {
    echo '<p style="color:red";>'."De 2 kodeord er ikke ens!".'</p>';
    $error=1;
    }
    if($pw1 == "")
    {
      echo '<p style="color:red";>'."Du har ikke indtastet et kodeord!".'</p>';
    $error=1;
    }
    if($username == "")
    {
      echo '<p style="color:red";>'."Du har ikke indtastet et brugernavn!".'</p>';
    $error=1;
    }
    if($email == "")
    {
    echo '<p style="color:red";>'."Du mangler at indtaste din e-mail!".'</p>';
    $error=1;
    }   

    $sql = "SELECT id FROM users WHERE username LIKE '".$username."'";
    $rs  = mysql_query($sql);
    if($rs)
    {
        if (mysql_num_rows($rs) == 1)
        {   
            echo  '<p style="color:red";>'."Brugernavnet er optaget!".'</p>';
            $error=1;
        }   
    }
    if(!$error)
    {       
        $sql="INSERT INTO `users` (`username`,`password`,`email`) VALUES ('".$username."','".$password1."','".$email."')";
        mysql_query($sql) or die(mysql_error());
        echo '<b style="color:blue";>'."Tillykke - du er nu klar til at afslutte sætninger!".'</b>';   
    }
}
?>
Avatar billede NielsErikP Mester
27. juli 2011 - 23:59 #1
Hej...
Den med Emailen  :



<?php
define("INDHOLD", "/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/");

if (!preg_match(INDHOLD, email)) {
                echo '<pre>';
                echo 'Ugyldig email.';
                echo '</pre>';
            } else {
                echo '<pre>';   
                echo 'Gyldig Email. ';
                echo '</pre>';


?>



Ved ikke om det kan bruges :-)
Avatar billede NielsErikP Mester
28. juli 2011 - 00:02 #2
Hej igen...

Er det ikke noget med at du kører Password1 gennem md5() inden du tjekker.
Avatar billede kjeldsted Novice
28. juli 2011 - 00:18 #3
Lille kommentar til #1:

Hvad så med min e-mail der hedder #@kjeldsted.dk (Og, jo. Den ER gyldig) Se evt hér hvor det bliver diskuteret lidt: http://www.eksperten.dk/spm/823252
Avatar billede NielsErikP Mester
28. juli 2011 - 00:41 #4
Hej..

Prøver jo bare at komme med et bud Kjeldsted... Men men gør os klogere  :-) :-)
Avatar billede NielsErikP Mester
28. juli 2011 - 00:49 #5
Avatar billede olebole Juniormester
28. juli 2011 - 00:51 #6
<ole>

Hvis vedkommende skal opgive sit rigtige navn, tjekker I så også for- og efternavn i diverse officielle navnedatabaser for at sikre, det nu også er godkendte, danske navne?

En løs validering er i langt de fleste tilfælde rigeligt til at sikre mod det værste vrøvl.

Hvis det er kritisk, sendes en mail til adressen. Mailen indeholder et link med en unik qury-streng, som identificerer brugeren. Først, når hun har klikket på linket, er hendes registrering gyldig.

/mvh
</bole>
Avatar billede olsensweb.dk Ekspert
28. juli 2011 - 11:44 #7
password validering:
ret denne
if(strlen('password1') < 4)
    {
        echo 'Password for kort';
        $error=1;
    }


   
prøv med (utested)
ville jeg anvende
if(strlen($pw1) < 4)
{
        echo 'Password for kort';
        $error=1;
}


eller hvis du syntes bedre om denne
if(strlen($_POST['password1']) < 4)
{
        echo 'Password for kort';
        $error=1;
}

istedet, det du ønsker at validerer er jo længden af $_POST['password1'], og det er jo vel at mærke før det bliver hash'et (md5), begge mine 2 løsninger burde virke


email validering:

function IsValidEmailAddress($email){
    return preg_match("/^[a-z0-9]+[a-z0-9_-]+@[a-z0-9]+[a-z0-9.-]+[a-z0-9]+.[a-z]{2,4}$/i", $email);
}

if(! IsValidEmailAddress($email))
{
        echo 'ugyldig mail addresse ';
        $error=1;
}
   
   
email validering et lidt af en problem, hvis den skal værer 100% sikker og tage forbeholdt for alt,
så jeg må give ole ret "En løs validering er i langt de fleste tilfælde rigeligt til at sikre mod det værste vrøvl."
Avatar billede TumseMM Nybegynder
28. juli 2011 - 14:22 #8
Giv et svar ronols, du har gjort det igen :) Tak for hjælpen!
Og tak til jer andre, super rart at i altid er friske på at hjælpe!
Avatar billede olsensweb.dk Ekspert
28. juli 2011 - 17:27 #9
får du så her
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