Avatar billede straszek Praktikant
30. december 2005 - 14:05 Der er 13 kommentarer og
1 løsning

validering af inpu felt

Jeg har et lille login system basseret på sessions.

Hvilke tjek børn man "køre" på det indtastede brugernavn og password - for at sikre mod at "onde" brugere kan lave onde ting....??
Avatar billede udvikler Nybegynder
30. december 2005 - 14:23 #1
Du kan gøre mange ting, men intet vil sikre dit loginsystem 100%, det skal du huske på. Du kan bland andet md5 hashe dine kodeord, det vil resultere i at alle passwords bliver lavet om til en 32 cifret kode. Intet kodeord vil have den samme kode.
Avatar billede cronaldo Nybegynder
30. december 2005 - 14:23 #2
<form action="?action=login" method="POST" ecntype="multipart/form-data">
<input type="hidden" name="action" value="login" />
<input type="text name="bruger" size="30" />
<input type="text name="kode" size="30" />
</form>

<?php
$action = $_POST['action'];
if($action == "login"){

$bruger = $_POST['bruger'];
$pass = $_POST['kode'];
$pass = md5($pass);

// MYSQL-DUMP
$password = (det er det felt der hedder password i tabellen, det skal også være lagt ind som md5()!)
$brugernavn = (brugernavn fra din tabel)

if($pass == $password){
  if($bruger == $brugernavn){
  // LOGIN
  } else {
  echo "Du har tastet forkert brugernavn.";
  }
} else {
  echo "Du har tastet forkert password.";
}

}

?>

---------------------------
-CRonaldo------------------
-Jeg håber det kan bruges?-
---------------------------
Avatar billede straszek Praktikant
30. december 2005 - 14:28 #3
Nej det kan ikke bruge; Jeg har selve login systemet, og det virker fint, jeg er bare usikker på hvorledes jeg skal validere $pass & $user, for at sikre at disse strenge ikke indeholde tegn eller kode der kan være skaldeligt for databasen
Avatar billede udvikler Nybegynder
30. december 2005 - 14:30 #4
cronaldo ->
Hvorfor har du skrevet ecntype="multipart/form-data"
Det bruges kun til billede upload :-)
Samt at din kode kun virker til en bruger hvilket ikke er smart ;-)

straszek->
Prøv at kigge her: http://www.eksperten.dk/artikler/669
Avatar billede udvikler Nybegynder
30. december 2005 - 14:31 #5
Nårh det er det du vil :)

Indsæt denne øverst i filen som opretter en bruger i dit loginsystem:


$_POST[brugernavn] = strtolower($_POST[brugernavn]);
$_POST[brugernavn] = ereg_replace("æ+", "ae", $_POST[brugernavn]);
$_POST[brugernavn] = ereg_replace("ø+", "oe", $_POST[brugernavn]);
$_POST[brugernavn] = ereg_replace("å+", "aa", $_POST[brugernavn]);
$_POST[brugernavn] = ereg_replace("[^[:alnum:][:space:]]", "", $_POST[brugernavn]);
$_POST[brugernavn] = ereg_replace("[ ]+", "_", $_POST[brugernavn]);


du skal så ændre $_POST[brugernavn] til det din variabel for brugernavn
Avatar billede cronaldo Nybegynder
30. december 2005 - 14:32 #6
-aco-: jeg har skrevet han skal mysql-dumpe ? Så kan han da bare sætte en while-løkke på, og så fungerer det med flere brugere? :)

Det er sådan jeg selv gør B)
Avatar billede udvikler Nybegynder
30. december 2005 - 14:35 #7
cronaldo ->
Okay, men det gør ingen forskel da han allerede har et loginsystem :)

straszek ->
med mit sidste exempel vil brugernavne kun kunne indeholder tegn fra a til z og hvis man skriver æ,ø eller å så vil det blive ændret til ae,oe eller aa
Avatar billede cronaldo Nybegynder
30. december 2005 - 14:49 #8
må man ikke bruge æ,ø og å i db'er, da ? :S
Avatar billede cronaldo Nybegynder
30. december 2005 - 14:52 #9
$brugernavn
$renset_echo = strip_tags($row['brugernavn'],"");

<< taget fra "huskeliste til en sikkerside", bare rettet lidt. Nu kan dit brugernavn ikke indeholde nogen form for html-koder :)
Avatar billede udvikler Nybegynder
30. december 2005 - 14:57 #10
jo og nej, har fået af vide engang at det ikke er en god idé at bruge det i databasen, kan dog ikke huske hvorfor eller af hvem jeg fik det af vide af. Har lige søgt i mine gamle spørgsmål, fandt det desværre ikke.
Avatar billede cronaldo Nybegynder
30. december 2005 - 14:58 #11
ok, men man kan vel bare replace ae med æ, aa med å og oe med ø når man trækker det ud? :)
Avatar billede udvikler Nybegynder
30. december 2005 - 15:04 #12
jo, men det har jeg valgt ikke at gøre i mit system, da brugere fra udlandet eller med udenlandske computere vil have problemer, og programmering er jo trods alt internationalt så hvorfor ikke bare gøre ens systemer internationale.
Avatar billede udvikler Nybegynder
30. december 2005 - 15:23 #13
fandt du ud af noget straszek ? :-)
Avatar billede straszek Praktikant
05. maj 2006 - 15:36 #14
lukker
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