Popieram przedmówców co do PDO - bo samo zabezpiecza dane gdy je "bindujemy" i jest bardziej czytelne i równie łatwe w obsłudze a po chwili nawet wyda Ci się wygodniejsze.
Co do samego skryptu - nie ma bezpiecznego skryptu, który ma jakąś interakcję z użytkownikiem a co do Twojego:
$zapytanie = 'select * from uwierzytelnieni_uzytkownicy '
."where uzytkownik='$iduzytkownika' "
." and haslo=sha1('$haslo')"; // nie brakuje tu cudzysłowów? - to raz a dwa dowiedz się czym jest SALT
co do tego addslashes - PDO rozwiązuje problem.
Podoba mi się proste a skuteczne zabezpieczenie na IP - pamiętaj jedynie o tych co mają dynamiczne - jak rozłączy im net albo korzystają z GSM to będzie ich to zabezpieczenie mocno wkurzało - taki OT.
Poza tym, po tym co widuje się w necie jako "bezpieczne skrypty rejestracji i logowania" ten Twój jak na poziom początkujący jest dobry (poza tym co wspominaliśmy).