Avatar billede blackscorpion Nybegynder
27. februar 2007 - 20:11 Der er 15 kommentarer og
1 løsning

Validering af login script.

Hej Eksperter.

Gider i lige kigge dette igennem og komme med ris/ros

<?php

$uri = "index.php";

trim($_POST['username']);
trim($_POST['password']);

if (empty($_POST['username'])) {
if (!empty($_POST['password'])) { 
  $uri .= "?password=".$_POST['password'];
  header("Location: $uri");
  exit;
}
else {;
  header("Location: $uri");
  exit;
}
}

elseif (empty($_POST['password'])) {
if (!empty($_POST['username'])) {
  $uri .= "?username=".$_POST['username'];
  header("Location: $uri");
  exit;
}
else {
  header("Location: $uri");
  exit;
}
}

else {
if ((!empty($_POST['username'])) && (!empty($_POST['password'])) && (ctype_alnum($_POST['username'])) && (ctype_alnum($_POST['password']))) {
  echo "Everything is okey, logging user in.";
}
else {
  $uri .= "?username=".$_POST['username']."&password=".$_POST['password'];
  header("Location: $uri");
}
}

?>
Avatar billede jakobdo Ekspert
27. februar 2007 - 20:22 #1
Jeg tror jeg ville lave det i stil med dette:

<?php

$uri = "index.php";

$username = trim($_POST['username']);
$password = trim($_POST['password']);

if(empty($username) || empty($password))
{
  $uri .= "?username=" . $username . "&password=".$password;
  header("Location: $uri");
  exit();
}
else
{
    if(ctype_alnum($_POST['username']) && (ctype_alnum($_POST['password']))
    {
      echo "Everything is okey, logging user in.";
    }
    else
    {
      $uri .= "?username=".$_POST['username']."&password=".$_POST['password'];
      header("Location: $uri");
      exit();
    }
}

?>
Avatar billede jakobdo Ekspert
27. februar 2007 - 20:23 #2
Og det skal selvfølgelig være:

<?php

$uri = "index.php";

$username = trim($_POST['username']);
$password = trim($_POST['password']);

if(empty($username) || empty($password))
{
  $uri .= "?username=" . $username . "&password=".$password;
  header("Location: $uri");
  exit();
}
else
{
    if(ctype_alnum($username) && (ctype_alnum($password))
    {
      echo "Everything is okey, logging user in.";
    }
    else
    {
      $uri .= "?username=".$username."&password=".$password;
      header("Location: $uri");
      exit();
    }
}

?>
Avatar billede blackscorpion Nybegynder
27. februar 2007 - 20:35 #3
er ked af at måtte sige det, men får blank skærm på dit sidste indlæg. :(
Avatar billede blackscorpion Nybegynder
27. februar 2007 - 20:43 #4
så vidt jeg kan se, fejler den her:

if (empty($username) || empty($password)) {
Avatar billede blackscorpion Nybegynder
27. februar 2007 - 20:46 #5
he, never mind, testede den med begge felter udfyldt.. får dog stadig blank skærm.
Avatar billede blackscorpion Nybegynder
27. februar 2007 - 20:48 #6
$uri = "index.php";

trim($_POST['username']);
trim($_POST['password']);

if ((empty($_POST['username'])) || (empty($_POST['password']))) {
  $uri .= "?username=" . $_POST['username'] . "&password=".$_POST['password'];
  header("Location: $uri");
  exit();
}
else {
    if ((ctype_alnum($_POST['username'])) && (ctype_alnum($_POST['password']))) {
      echo "Everything is okey, logging user in.";
    }
    else {
      $uri .= "?username=".$_POST['username']."&password=".$_POST['password'];
      header("Location: $uri");
      exit();
    }
}

Sådan. :)
Avatar billede jakobdo Ekspert
27. februar 2007 - 20:49 #7
Sådan skal det være:

<?php
//http://www.eksperten.dk/spm/765154

$uri = "index.php";

$username = trim($_POST['username']);
$password = trim($_POST['password']);

if(empty($username) || empty($password))
{
    $uri .= "?username=" . $username . "&password=".$password;
    header("Location: $uri");
    exit();
}
else
{
    if(ctype_alnum($username) && ctype_alnum($password))
    {
        echo "Everything is okey, logging user in.";
    }
    else
    {
        $uri .= "?username=".$username."&password=".$password;
        header("Location: $uri");
        exit();
    }
}

?>
Avatar billede blackscorpion Nybegynder
27. februar 2007 - 20:50 #8
nice du skar den ned med 231 tegn. :)

ellers andet du kunne tilføje ? måske mishabs eller andet ?
Avatar billede jakobdo Ekspert
27. februar 2007 - 20:54 #9
Altså man kunne j godt som du havde lavet før, sende brugeren tilbage med kun brugernavn eller kodeord.
Dog synes jeg måske man af sikkerhedsmæssige hensyn burde droppe kodeordet, når man sender brugeren tilbage.
Avatar billede blackscorpion Nybegynder
27. februar 2007 - 20:56 #10
tænkte jeg også.

lige et spørgsmål... hvad pokker ændrede du ?

Kan se du har tilføjet 13 tegn, men kan seriøst ikke få øje på hvor...
Avatar billede jakobdo Ekspert
27. februar 2007 - 21:07 #11
Jeg rettede her:

if(ctype_alnum($username) && ctype_alnum($password))
Før var det:
if(ctype_alnum($username) && (ctype_alnum($password))

Jeg tror dog ikke jeg rettede 13 tegn.
Avatar billede blackscorpion Nybegynder
27. februar 2007 - 21:13 #12
det er hvad min text editor siger. :)

lige et hurtigt spørgsmål.

jeg har en funktion der forbinder til mysql og alt det der snask, den kalder vi connect().

er det muligt at lave f.eks. en login() funktion, og så kalde connect() funktionen inde fra login() funktionen ?
Avatar billede blackscorpion Nybegynder
27. februar 2007 - 21:23 #13
never mind fandt svaret. :D

smid lige et svar så du kan få point.
Avatar billede jakobdo Ekspert
27. februar 2007 - 21:25 #14
Svar!
Avatar billede blackscorpion Nybegynder
27. februar 2007 - 21:29 #15
Tak :D
Avatar billede jakobdo Ekspert
27. februar 2007 - 21:37 #16
Takker for point.
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