Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Przerobienie pewnego skryptu
flaq1991
post 2.01.2013, 04:36:09
Post #1





Grupa: Zarejestrowani
Postów: 89
Pomógł: 0
Dołączył: 11.12.2012

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


witam mam skrypt dodający pewne dane do bazy mysql i chciałbym sprawdzać ich poprawnośc , i aby nie doawał pustych danych do tabeli o to kod :

  1. {
  2. $login = ($_GET['login']);
  3. $haslo = ($_GET['haslo']);
  4. $poziom = ($_GET['poziom']);
  5. $userid = ($_GET['userid']);
  6.  
  7. if((($login!='') AND ($haslo!='')))
  8.  
  9. $select = mysql_query( 'SELECT * FROM `konta` WHERE `login`= "'.$login.'"');
  10.  
  11. if(mysql_num_rows($select)>0) {}
  12. else
  13.  
  14. {
  15. $zapytanie = "INSERT INTO konta(login,haslo,poziom,userid) VALUES ('$login','$haslo','$poziom','$userid')";
  16. $wyslij = mysql_query($zapytanie);
  17. }


wystarczy wejsc na skrypt.php i dodają się puste pola do bazy danych nie wiem jak to zabezpieczyć prośiłbym o jakieś pomoce z góry dziekuję.
Go to the top of the page
+Quote Post
Saki
post 2.01.2013, 05:10:26
Post #2





Grupa: Zarejestrowani
Postów: 240
Pomógł: 2
Dołączył: 5.12.2010
Skąd: Fulda

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


Nie wiem czy Ci o to chodzi ale proszę.
Dodałem funkcje clean_text() aby zabezpieczyła Twój skrypt przed SQL Injection..
Skrypt odpali się dopiero gdy w adresie URL dodasz &check=1
przykład: skrypt.php?login=aaa&haslo=aaa&poziom=aaa&userid=aaa&check=1
PS. Osobiście radzę używać POST zamiast GET do przesyłania takich danych jak hasła...

  1. function clean_text($wert) {
  2. if (!empty($wert)) {
  3. $wert = strip_tags($wert);
  4. $wert = htmlentities($wert, ENT_QUOTES, "UTF-8");
  5. $wert = trim($wert);
  6. $wert = stripslashes($wert);
  7. $wert = mysql_real_escape_string($wert);
  8. }
  9. return $wert;
  10. }
  11.  
  12. if ( $_GET['check'] == 1 ) {
  13. $login = clean_text($_GET['login']);
  14. $haslo = clean_text($_GET['haslo']);
  15. $poziom = clean_text($_GET['poziom']);
  16. $userid = clean_text($_GET['userid']);
  17. if ($login != '' AND $haslo != '') {
  18. $select = mysql_query('SELECT * FROM `konta` WHERE `login`= "' . $login . '"');
  19. if (mysql_num_rows($select) > 0) {
  20. mysql_query("INSERT INTO konta(login,haslo,poziom,userid) VALUES ('$login','$haslo','$poziom','$userid')");
  21. }
  22. }
  23. }


Ten post edytował Saki 2.01.2013, 05:12:26


--------------------
Moje serwisy: services.itunix.eu | spytajsie.com

Server: Debian; Desktop: Mac Mini 10.8.1, ArchLinux XFCE
Go to the top of the page
+Quote Post
flaq1991
post 2.01.2013, 12:08:41
Post #3





Grupa: Zarejestrowani
Postów: 89
Pomógł: 0
Dołączył: 11.12.2012

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


Chodziło mi ogólnie o to aby skrypt nie doawał do bazy mysql pustych danych tak aby nic nie było pustego login,haslo,poziom,userid jeżeli coś będzie puste to nie wysyła o to mi chodziło bo wystarczy wejsc skrypt przez test.php i dodaje pusty rekord a co za tym idzie mogę dostać owned bazy w 10 sekund biggrin.gif
Go to the top of the page
+Quote Post
17misiek09
post 2.01.2013, 22:12:01
Post #4





Grupa: Zarejestrowani
Postów: 137
Pomógł: 8
Dołączył: 16.12.2011
Skąd: Kraków

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


albo:

  1. function clean_text($wert) {
  2. if (!empty($wert)) {
  3. $wert = strip_tags($wert);
  4. $wert = htmlentities($wert, ENT_QUOTES, "UTF-8");
  5. $wert = trim($wert);
  6. $wert = stripslashes($wert);
  7. $wert = mysql_real_escape_string($wert);
  8. }
  9. return $wert;
  10. }
  11.  
  12. if ( ($login!='') || ($haslo!='') || ($poziom!='') || ($userid!='') ) {
  13. $login = clean_text($_GET['login']);
  14. $haslo = clean_text($_GET['haslo']);
  15. $poziom = clean_text($_GET['poziom']);
  16. $userid = clean_text($_GET['userid']);
  17. if ($login != '' AND $haslo != '') {
  18. $select = mysql_query('SELECT * FROM `konta` WHERE `login`= "' . $login . '"');
  19. if (mysql_num_rows($select) > 0) {
  20. mysql_query("INSERT INTO konta(login,haslo,poziom,userid) VALUES ('$login','$haslo','$poziom','$userid')");
  21. }
  22. }
  23. }
  24.  


jesli login rozny od '' albo haslo rozne od '' albo poziom rozny od '' albo userid rozne od '' - jesli ktorekolwiek pole jest puste, to nie doda rekordu.


--------------------
Lombi !! kłaniam Ci się od 00:45 dnia 2012-01-27 !! :)
Serdeczne dzięki !! :)

zespół na wesele?wejdź :)
ręcznie robione ozdoby, obrazy, figurki i wiele innych :) zapraszam :)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 13:04