Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Filtrowanie danych, Czy dobrze użyte?
ArekJ
post
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

Ostrzeżenie: (0%)
-----


Witam,

mam pytanie, czy dobrze zastosowałem filtrowanie danych w tym skrypcie(błędów nie wywala, ale nie wiem jak sprawdzić czy filtruje). A oto kod:

  1. <?php
  2. els:
  3.  
  4. dbConnect('xxx');
  5.        
  6. $login=htmlspecialchars($_POST['login']);
  7. $haslo=htmlspecialchars($_POST['haslo']);
  8. $email=htmlspecialchars($_POST['email']);
  9.  
  10.  
  11. $login=strip_tags($_POST['login']);
  12. $haslo=strip_tags($_POST['haslo']);
  13. $email=strip_tags($_POST['email']);
  14.  
  15.        
  16. if (!check_email($_POST['email']) || $_POST['login']=='' || $_POST['haslo']=='' || $_POST['email']=='') {
  17. error('Błąd podczas wypełniania formularzu! Popraw go i spróbuj ponownie. Możliwe błęd:    \n'.'-puste pole,\n'.'-błędny e-mail.');
  18. }
  19.  
  20.  
  21. $sql = 'SELECT COUNT(*) FROM uzytkownik WHERE login = "'.$_POST['login'].'"';
  22. $result = mysql_query($sql);
  23. if (!$result) {
  24. error('Błąd w zapytaniu SQL');
  25. }
  26. if (@mysql_result($result,0,0)>0) {
  27. error('Wybrany login jest zajęty. \n'.
  28. 'Proszę wpisać inny login. ');
  29. }
  30.  
  31. $sql = 'INSERT INTO uzytkownik SET
  32. login = "'.$_POST['login'].'",
  33. haslo = md5("'.$_POST['haslo'].'"),
  34. email = "'.$_POST['email'].'"';
  35. if (!mysql_query($sql)) error('Błąd w zapytaniu SQL');
  36.  
  37. echo('<HTML>
  38. <HEAD>
  39. <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  40. <TITLE>Rejestracja zakończona</TITLE>
  41. <STYLE type=\"text/css\">
  42. <!--
  43. BODY, { font: 8pt; font-famil: Verdana, Arial; text-decoratio: none }
  44. -->
  45. </STYLE>
  46. </HEAD>
  47. <BODY>
  48. <P><B>Rejestracja zakończona pomyślnie!</B></P>
  49. <P>Logi: <B>'.$_POST['login'].'</B><BR>
  50. Hasło: <B>'.$_POST['haslo'].'</B></P>
  51. ');
  52.  
  53. endif
  54. ?>


I mam jeszcze pytanie o inne metody zabezpieczania i o wskazówki jak je zastosować (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
b4x
post
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

Ostrzeżenie: (0%)
-----


Ja bym to tak zrobił

  1. <?php
  2.  
  3.    $login = htmlspecialchars(strip_tags($_POST['login']));
  4.    $haslo = md5($_POST['haslo']);
  5.    $email = htmlspecialchars(strip_tags($_POST['email']));
  6.  
  7.    if (!check_email($_POST['email']) || $_POST['login']=='' || $_POST['haslo']=='' || $_POST['email']=='') {
  8.  
  9.        error('Błąd podczas wypełniania formularzu! Popraw go i spróbuj ponownie. Możliwe bł&#281:    \n'.'-puste pole,\n'.'-błędny e-mail.');
  10.  
  11.    }
  12.  
  13.  
  14.    $sql = 'SELECT COUNT(*) FROM uzytkownik WHERE login = "'.mysql_real_escape_string($login).'"';
  15.  
  16.    $result = mysql_query($sql);
  17.  
  18.        if (!$result) {
  19.  
  20.            error('Błąd w zapytaniu SQL');
  21.  
  22.        }
  23.    
  24.        if (@mysql_result($result,0,0)>0) {
  25.            error('Wybrany login jest zajęty. \n'.
  26.            'Proszę wpisać inny login. ');
  27.        }
  28.  
  29.  
  30.        $sql = 'INSERT INTO uzytkownik SET login = "'.mysql_real_escape($login).'", haslo = "'.$haslo.'", email = "'.mysql_real_escape_string($email).'"';
  31.  
  32.            if (!mysql_query($sql)) error('Błąd w zapytaniu SQL');
  33.    
  34.            echo('<HTML>
  35.                <HEAD>
  36.                <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  37.                <TITLE>Rejestracja zakończona</TITLE>
  38.                <STYLE type=\"text/css\">
  39.                <!--
  40.                BODY, { fo: 8pt; font-famil: Verdana, Arial; text-decoratio: none }
  41.                -->
  42.                </STYLE>
  43.                </HEAD>
  44.                <BODY>
  45.                <P><B>Rejestracja zakończona pomyślnie!</B></P>
  46.                <P>Lo: <B>'.$login.'</B><BR>
  47.                Hasło: <B>'.$haslo.'</B></P>
  48.            ');
  49.  
  50. ?>


;]

Ten post edytował b4x 17.09.2008, 15:55:36
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 07:03