Avatar billede hmmhelpinghmm Nybegynder
09. juni 2004 - 20:10 Der er 14 kommentarer og
1 løsning

Tjek værdi! HVORDAN?

Hej igen. Jeg vil også gerne have postnr. på min login, men behøver ikke godkendelse, det eneste er at jeg gerne vil have at den tjekker at nummeret består af 4 numre, hvordan gør jeg det.
Det samme med email:
jeg vil gerne have at den vil have: x@x.dk hvordan gør jeg det?
Avatar billede Slettet bruger
09. juni 2004 - 20:14 #1
Der skal du vidst over i PHP, og mht. det sidste, skal du have fat i en regexp!

Tjek http://www.php.net/manual/en/function.strlen.php
og:
http://www.php.net/manual/en/function.ereg.php

--
pacroon
Avatar billede simonvalter Praktikant
09. juni 2004 - 20:14 #2
en regular expression burde kunne klare det hvordan afhænger af det programmerings sprog du skriver i og du burde nok oprette i katagorien for det sprog.
Avatar billede Slettet bruger
09. juni 2004 - 20:14 #3
Eller, et andet sprog der minder om det.. ;)
Avatar billede ellebaek Nybegynder
09. juni 2004 - 20:16 #4
hmm...
Hvis du arbejder i asp er det ikke så svært..

Du kan dog ikke helt antage at en mail er kodet på den måde, men du kan chekke for om der er @ i..

Så kan du lave dit check med:
postnr = "4000"
email = "x@x.dk

if len(postnummer) = 4 then
postnummer er ok
end if

if instr(email,"@") >= 1 then
email indeholder @
end if
Avatar billede Slettet bruger
09. juni 2004 - 20:18 #5
ellebæk> Så emailen "@email@" er det samme som 'x@x.tld'? :)
Avatar billede Slettet bruger
09. juni 2004 - 20:18 #6
Okay, "email@" måske.. :P
Avatar billede ellebaek Nybegynder
09. juni 2004 - 20:29 #7
arh ;-)

Så kan det ellers laves på en anden måde..
Sådan her i stedet:

emailarr = split(email,"@")
if ubound(emailarr) = 1 then
email indeholder kun 1 @ ;-)
end if
Avatar billede hmmhelpinghmm Nybegynder
09. juni 2004 - 20:32 #8
Hej allesammen, jeg vil gerne informere om at jeg brugerPHP kodning!
Avatar billede ellebaek Nybegynder
09. juni 2004 - 20:43 #9
;-)
Så se på Pacroons kommentar: 09/06-2004 20:14:25
Avatar billede hmmhelpinghmm Nybegynder
09. juni 2004 - 20:49 #10
Jeg er ikke så perfekt til det, så kunne i ikke lave en kode med det til mig i php. Det skal være noget if. I kan se hvad det skal bruges til her. www.friendsavisen.1go.dk/login/create.html
Jeg ville være så taknemmelig hvis i giver koden færdiglavet.
:-)
Avatar billede hmmhelpinghmm Nybegynder
09. juni 2004 - 21:11 #11
Forresten min kode ser således ud:


<title>Opret Bruger...</title>
<?

$bruger = $_POST['bruger'];
$pass = $_POST['pass'];
$email = $_POST ['mail'];
$postnr = $_POST ['post'];
$telefon = $_POST ['tele'];

include("access.php");
$query = "SELECT id, user, pass FROM login WHERE user = '".$bruger."'";
$result = mysql_query($query)or die("MySQL fejl: " . mysql_error());
$test = mysql_fetch_array($result);

if (!$_POST["bruger"] | !$_POST['pass'] | !$_POST['passa'] | !$_POST['mail'] | !$_POST['post']){
                echo "<script type=\"text/javascript\">alert(\"Alle felter med * SKAL udfyldes!!!\");history.go(-1)</script>";
                }

if (@$_POST['pass'] != @$_POST['passa']){
echo "<script type=\"text/javascript\">alert(\"Koderne er ikke identiske\");history.go(-1)</script>";
                }


if (isset($test['user'])) {
print("    <font face='verdana' size='2' color='#ff0000'>
        <b>Brugernavnet \"$bruger\" er allerede optaget
        vælg venligst et nyt </b></font><br>
        <font face='verdana' size='2' color='#000000' text-decoration='none'>
        <a href='create.html'>Tilbage</a></font>");
}
else
{
$sql = "INSERT INTO login (id, user, pass, email, postnr, telefon) VALUES ('', '$bruger', '$pass', '$mail', '$post', '$tele')";
mysql_query($sql);
echo "<script type=\"text/javascript\">alert(\"Kodeordet og de andre oplysninger vil nu blive vist!!!\")</script>";
print("    <font face='verdana' size='2' color='#669900'>
        <b>    Bruger: $bruger <br>
        Password: $pass <br>
        Email: $email <br>
        Postnummer: $postnr <br>
        Telefonnummer: $telefon <br>
        Er nu oprettet </b></font><br>
        <font face='verdana' size='2' color='#000000' text-decoration='none'>
        <a href='login.php'>Login</a></font>");
        }
?>
Avatar billede Slettet bruger
09. juni 2004 - 23:23 #12
Når du i toppen tildeler alt postet data en variabel, hvorfor bruger du dem så ikke i dine if-sætninger?

Her tænker jeg på f.eks:
if (!$_POST["bruger"] | !$_POST['pass'] | !$_POST['passa'] | !$_POST['mail'] | !$_POST['post']){
...

Kunne skrives som:
if (!$bruger | !$pass | !$_POST['passa'] | !$email | !$postnr){
- det er grundlæggende lige meget, men når du tildeler dem, burde de vel også blive brugt.. :)

For at tjekke postnr's længde, kan du smide en ifsætning ind mellem de andre:

if (strlen($postnr) != 4) {
        die("Postnummer skal være på 4 tegn");
}

if ( ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $email)) {
    die("Din email skal være x@x.tld");
}

Bemærk at denne regExp ikke sikrer mig at man skriver "æblegrød@õstrãg.zxy" - men kun x@x.tld :)

--
pacroon
Avatar billede hmmhelpinghmm Nybegynder
10. juni 2004 - 08:58 #13
Postnr. virker fint, men når jeg bruger den med email, så sker der bare de, at den ikke vil finde sig i at der er @ eller . i. Hvis jeg skriver noget som "asfas" så går den igennem!
Avatar billede Slettet bruger
10. juni 2004 - 10:40 #14
Nåja, doh

if (!ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $email)) {
    die("Din email skal være x@x.tld");
}

My bad :)
Avatar billede hmmhelpinghmm Nybegynder
10. juni 2004 - 11:12 #15
Hvad står ^@ for? står det for alle tegn?
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
Computerworld tilbyder specialiserede kurser i database-management

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