Avatar billede alex13 Nybegynder
09. april 2010 - 15:13 Der er 4 kommentarer

Hvorfor virker det ikke?! preg_repace

Hvorfor virker det ikke??? Det er blot et uddrag af en login side, men jeg må gøre noget nede forkert i mysql_query.. for man kan stadig sql injecte..

$login = preg_replace("[/<#.*'?>/]", "", $_POST['login']);
$password = preg_replace("[/<#.*'?>/]", "", $_POST['password']);


$data = mysql_query("SELECT * FROM brugere WHERE login = '$login' AND password = '$password' ") or die(mysql_error());
Avatar billede michael_stim Ekspert
09. april 2010 - 15:25 #1
Umuligt at sige, men hvorfor bruge preg_replace? Har man tastet forkert, skal man bare sendes tilbage til login. Med hensyn til SQL injection kan du kigge på mysqli_query.
Avatar billede erikjacobsen Ekspert
09. april 2010 - 15:37 #2
Ja, man kan li'så godt lære sig at bruge parameters i SQL-sætninger. Men fejlen er at dit regulære udtryk ikke er korrekt. Du kan fx. bruge:

$login = preg_replace("&[/<#.*'?>/]&", "", $_POST['login']);
Avatar billede alex13 Nybegynder
09. april 2010 - 15:43 #3
Hvorfor skal rækkefølgen af $login = preg_replace("&[/<#.*'?>/]&", "", $_POST['login']);  lige præcis være den rækkefølge?? :O
Avatar billede erikjacobsen Ekspert
09. april 2010 - 17:36 #4
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
Kurser inden for grundlæggende programmering

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