index.php
<?php $login = $_POST["login"]; $haslo = $_POST["haslo"]; function ShowLogin($komunikat=""){ } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> <html> <head> <title>logowanie</title> </head> <body> <?php if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany";} if($_SESSION["zalogowany"]!=1){ { if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($login)."' AND user_haslo = '".htmlspecialchars(md5($haslo))."'"))){ $_SESSION["zalogowany"]=1; } } } } else ShowLogin(); } else{ ?> Zalogowałeś się pomyślnie! <br><a href='index.php?wyloguj=tak'>wyloguj się</a> <?php } ?> </body> </html>
rejestruj.php
<?php $login = $_POST["login"]; $haslo = $_POST["haslo"]; function ShowForm($komunikat=""){ //funkcja wyświetlająca formularz rejestracyjny } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> <html> <head> <title>Formularz rejestracyjny</title> </head> <body> <?php if($_POST["send"]==1){ //sprawdzanie czy formularz został wysłany { if(mysql_num_rows(mysql_query("select * from users where user_login='".htmlspecialchars($login."'"))))ShowForm("Użytkownik o podanym loginie już istnieje!!!");// sprawdzanie czy użytkownik o podanej nazwie już istnieje else { mysql_query("insert into users values(NULL, '".htmlspecialchars($login)."', '".htmlspecialchars(md5($haslo))."')"); // zapisywanie rekordu do bazy echo "Rejestracja przebiegła pomyślnie. Możesz teraz przejść do <a href='index.php'>strony głównej</a> i się zalogować."; } } else ShowForm("nie dozwolone znaki"); } else ShowForm("Nie uzupełniono wszystkich pól!!!"); } else ShowForm(); ?> </body> </html>
1. czy jest ten skrypt bezpieczny? jeśli nie to jakie zmiany proponujecie
2. jak zabezpieczyć najlepiej w md5() hasło do bazy danych?
<?php ?>
3. użyłem funkcji preg_match do zabezpieczenia formularza ale działa on tylko dla jednej zmiennej $login lub $haslo:
<?php ?>
gdy próbuje napisać tak(by obydwa pola formularza zabezpieczyć, bo co mi da że pole loginu zabezpiecze tylko jeśli w polu hasła można wpisać co sie chce..):
<?php ?>
to pojawia sie błąd.
jak tego użyć by zabezpieczyć obydwa pola?
PS nie mam pojęcia dlaczego nie koloruje składni :/ być może kod html to powoduje ale nie wiem...