Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wysywalnie formularza, pliku bezpieczenstwo, Wysywalnie formularza, pliku bezpieczenstwo
bigos1995-95
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 18.05.2012

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


Witam, napisałem skrypt który obsługuje błedy i dodaje informacje do bazy danych a nastepnie na innej stronie informacje sa odczytywane. Chciałbym was zapytać jak oceniacie mój skrypt i czego w nim brakuje.

Oczywiście brakuje tutaj obslugi błedów co do JS,PHP itd jak mam sformatować zmienne aby nie formatowały kodu JS, PHP itd (IMG:style_emoticons/default/questionmark.gif)


Dodawanie informacji do bazy danych
  1. if (isset($_POST['przycisk'])) {
  2.  
  3. //Tworzymy krótkie nazwy zmiennych
  4. $nazwaskryptu = $_POST['nazwaskryptu'];
  5. $profesja = $_POST['profesja'];
  6. $nazwapoziom = $_POST['nazwapoziom'];
  7. $komentarz = $_POST['komentarz'];
  8. $miasto = $_POST['miasto'];
  9. $jaki_bot = $_POST['jaki_bot'];
  10. $plikuzytkownika = $_FILES['plikuzytkownika'];
  11. $skrypter = $_POST['skrypter'];
  12.  
  13. //Sklejanie zmiennych
  14. $danatabela = $jaki_bot . $miasto;
  15.  
  16. //lokalizacja pliku
  17. $lokalizacja = 'wyslane/'.$_FILES['plikuzytkownika']['name'];
  18.  
  19. if(strlen($lokalizacja) > 50) {
  20. echo 'Dodawany plik nie może mieć nazwy dłuższej niż 50 znaków';
  21. }
  22.  
  23. // tworzenie zmiennej nazwy pliku
  24. $nazwapliku = $_FILES['plikuzytkownika']['name'];
  25.  
  26. // Sprawdzanie, czy wszystkie dane zostały wpisane
  27. if(!$nazwaskryptu || !$nazwapoziom || !$komentarz || $miasto == "brak" || $jaki_bot == "pusty" || $profesja == "brak" || !$plikuzytkownika) {
  28. echo 'Nie podałeś wszystkich danych';
  29. }
  30.  
  31. // Sprawdzenie, czy przy próbie wysłania pliky wystąpił błąd
  32. if ($_FILES['plikuzytkownika']['error'] > 0)
  33. {
  34. echo 'Problem: ';
  35. switch ($_FILES['plikuzytkownika']['error'])
  36. {
  37. case 1: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize'; break;
  38. case 2: echo 'Rozmiar pliku przekroczył wartość max_file_size'; break;
  39. case 3: echo 'Plik wysłany tylko częściowo'; break;
  40. case 4: echo 'Nie wysłano żadnego pliku'; break;
  41. case 6: echo 'Nie można wysłać pliku: Nie wskazano katalogu tymczasowego.'; break;
  42. case 7: echo 'Wysłane pliku nie powiodło się: Nie zapisano pliku na dysku.'; break;
  43. }
  44. }
  45.  
  46. // sprawdzanie czy pole POZIOM zawiera same cyfry
  47. if(!ctype_digit($nazwapoziom)) {
  48. echo 'Pole "Podaj poziom" musi zawierać same cyfry';
  49. }
  50. //sprawdzanie czy plik o podanej nazwie istnieje w katalogu
  51. $istnieje = file_exists($lokalizacja);
  52. if($istnieje) {
  53. echo 'Plik o nazwie <font color="#00FF00">'.$nazwapliku.'</font> istnieje już w katalogu, zmień nazwę pliku i spróbuj ponownie.';
  54. }
  55.  
  56.  
  57. //formatowanie zmiennych przed włożeniem do bazy danych
  58. $nazwaskryptu = mysql_escape_string($nazwaskryptu);
  59. $profesja = mysql_escape_string($profesja);
  60. $nazwapoziom = doubleval($nazwapoziom);
  61. $komentarz = mysql_escape_string($komentarz);
  62. $miasto = mysql_escape_string($miasto);
  63. $jaki_bot = mysql_escape_string($jaki_bot);
  64. $skrypter = mysql_escape_string($skrypter);
  65. }
  66.  
  67. //laczenie z baza danych i dodawanie zapytania
  68. @ $db = new mysqli('xxxxxxxx', 'xxxxxxxx', 'xxxxxxx', 'xxxxxxxx');
  69.  
  70.  
  71. if(mysqli_connect_errno()) {
  72. echo 'Blad: Polaczenie z baza danych nie powiodlo sie';
  73. }
  74. $zapytanie = "insert into $danatabela values (NULL, '".$profesja."', '".$nazwaskryptu."', '".$nazwapoziom."', '".$komentarz."', '".$skrypter."', '".$lokalizacja."',
  75. '".$lokalizacja."') ";
  76. $wynik = $db->query($zapytanie);
  77. if(!$wynik) {
  78. echo "Wystąpił błąd podczas zapisywania danych";
  79. }
  80. $db->close();
  81.  
  82.  
  83. // umieszczenie pliku w pożądanej lokalizacji
  84.  
  85. if (is_uploaded_file($_FILES['plikuzytkownika']['tmp_name']))
  86. {
  87. if (!move_uploaded_file($_FILES['plikuzytkownika']['tmp_name'], $lokalizacja))
  88. {
  89. echo 'Problem: Plik nie może być skopiowany do katalogu';
  90. }
  91. }
  92. else
  93. {
  94. echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: ';
  95. echo $_FILES['plikuzytkownika']['name'];
  96. }
  97.  
  98. echo 'Plik został wysłany<br><br>';
  99. }




Odczytywanie informacji
  1. @ $db = new mysqli('xxxxx', 'xxxxxx', 'xxxxxxx', 'xxxxxxxxx');
  2.  
  3. if(mysqli_connect_errno()) {
  4. echo 'Blad: Polaczenie z baza danych nie powiodlo sie';
  5. }
  6. $zapytanie = "select * from $tabela order by profesja";
  7. $wynik = $db->query($zapytanie);
  8.  
  9. $ile_znalezionych = $wynik->num_rows;
  10.  
  11. for($i=0; $i <$ile_znalezionych; $i++) {
  12. $wiersz = $wynik->fetch_assoc();
  13. echo "<tr>";
  14. echo '<td width="50" bgcolor="#00FF00"><font size="5">';
  15. echo $l = $i + 1;
  16. $numerrek = stripslashes($wiersz['numer']); // numer rekordu w bazie danych nie usuwac tego
  17. echo '</font></td>';
  18. echo '<td width="55" bgcolor="#C0C0C0">';
  19. echo stripslashes($wiersz['profesja']);
  20. echo '</td>';
  21. echo '<td width="100" bgcolor="#993333">';
  22. echo stripslashes($wiersz['nazwa']);
  23. echo '</td>';
  24. echo '<td width="50" bgcolor="#00FFFF">';
  25. echo stripslashes($wiersz['poziom']);
  26. echo '</td>';
  27. echo '<td width="570" bgcolor="#663399">';
  28. echo stripslashes($wiersz['opis']);
  29. echo '</td>';
  30. echo '<td width="55" bgcolor="#99ccff">';
  31. echo stripslashes($wiersz['skrypter']);
  32. echo '</td>';
  33. echo '<td width="100" bgcolor="#99ff99">';
  34. $infpodg = stripslashes($wiersz['podglad']);
  35. echo '<a href="podglad.php?lokalizacja='.$infpodg.'">Zobacz</a>';
  36. echo '</td>';
  37. echo '<td width="100" bgcolor="#ccff33">';
  38. $infpobi = stripslashes($wiersz['pobierz']);
  39. echo '<a href="pobierz.php?skad='.$infpobi.'">Pobierz</a>';
  40. echo '</td>';
  41. if(isset($_SESSION['prawid_uzyt']))
  42. {
  43. echo '<td width="10">';
  44. echo '<a href="usunskr.php?numerskr='.$numerrek.'&nazwatab='.$tabela.'&sciezka='.$infpodg.'">X</a>';
  45. echo '</td>';
  46. }
  47. echo "</tr>";
  48. }
  49. $wynik->free();
  50. $db->close();

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: 30.09.2025 - 17:27