Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload grafiki
Forum PHP.pl > Forum > PHP
Tracid
A wiec chce zrobiccoś takiego aby każda osoba mogła dodawać pliki graficzne ale z takim zabezpieczeniem że 1 plik mozna wgrać raz na okolo 3 minuty.

Oto skrypt bez tego zabezpieczenia:

  1. <?php
  2.  
  3. $site_name = $_SERVER['HTTP_HOST'];
  4. $url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
  5. $url_this =  "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
  6.  
  7. $upload_dir = "upload_files/";
  8. $upload_url = $url_dir."/upload_files/";
  9. $message ="";
  10.  
  11. //create upload_files directory if not exist
  12. //If it does not work, create on your own and change permission.
  13. if (!is_dir("upload_files")) {
  14.     die ("upload_files directory doesn't exist");
  15. }
  16.  
  17. if ($_FILES['userfile']) {
  18.     $message = do_upload($upload_dir, $upload_url);
  19. }
  20. else {
  21.     $message = "Invalid File Specified.";
  22. }
  23.  
  24. print $message;
  25.  
  26. function do_upload($upload_dir, $upload_url) {
  27.  
  28.     $temp_name = $_FILES['userfile']['tmp_name'];
  29.     $file_name = $_FILES['userfile']['name']; 
  30.     $file_type = $_FILES['userfile']['type']; 
  31.     $file_size = $_FILES['userfile']['size']; 
  32.     $result    = $_FILES['userfile']['error'];
  33.     $file_url  = $upload_url.$file_name;
  34.     $file_path = $upload_dir.$file_name;
  35.  
  36.     //File Name Check
  37.     if ( $file_name =="") { 
  38.         $message = "Invalid File Name Specified";
  39.         return $message;
  40.     }
  41.     //File Size Check
  42.     else if ( $file_size > 500000) {
  43.         $message = "The file size is over 500K.";
  44.         return $message;
  45.     }
  46.     //File Type Check
  47.     else if ( $file_type == "text/plain" ) {
  48.         $message = "Sorry, You cannot upload any script file" ;
  49.         return $message;
  50.     }
  51.  
  52.     $result  =  move_uploaded_file($temp_name, $file_path);
  53.     $message = ($result)?"Url Pliku: <a href=$file_url>$file_url</a>" :
  54.               "Somthing is wrong with uploading a file.";
  55.  
  56.     return $message;
  57. }
  58. ?>
  59. <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
  60.   Upload: <input type="file" id="userfile" name="userfile">
  61.   <input type="submit" name="upload" value="Upload">
  62. </form>  



Co mam dodać aby nie mozna bylo dodawac plik co co chwile.
gu35t
setcookie albo ban na IP[najlepiej 2 razem]
Tracid
A mozesz jaśniej bo ja słabo znam php a raczej wogóle :/
Proszę o podanie kompletnego kodu jaki należy wstawić.
zbig13
  1. <?php
  2.  
  3. if (isset($_COOKIE['wyslano'])) { // Jeśli istnieje cookie (czyli wysłano już jakiś plik) wyświetlasz informacje i zatrzymujesz wykonywanie skryptu.
  4. echo 'Dodałeś już plik. Odczekaj chwilę i spróbuj ponownie.';
  5. exit();
  6. }
  7.  
  8. $site_name = $_SERVER['HTTP_HOST'];
  9. $url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
  10. $url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
  11.  
  12. $upload_dir = "upload_files/";
  13. $upload_url = $url_dir."/upload_files/";
  14. $message ="";
  15.  
  16. //create upload_files directory if not exist
  17. //If it does not work, create on your own and change permission.
  18. if (!is_dir("upload_files")) {
  19. die ("upload_files directory doesn't exist");
  20. }
  21.  
  22. if ($_FILES['userfile']) {
  23. $message = do_upload($upload_dir, $upload_url);
  24. }
  25. else {
  26. $message = "Invalid File Specified.";
  27. }
  28.  
  29. print $message;
  30.  
  31. function do_upload($upload_dir, $upload_url) {
  32.  
  33. $temp_name = $_FILES['userfile']['tmp_name'];
  34. $file_name = $_FILES['userfile']['name']; 
  35. $file_type = $_FILES['userfile']['type']; 
  36. $file_size = $_FILES['userfile']['size']; 
  37. $result = $_FILES['userfile']['error'];
  38. $file_url = $upload_url.$file_name;
  39. $file_path = $upload_dir.$file_name;
  40.  
  41. //File Name Check
  42. if ( $file_name =="") { 
  43. $message = "Invalid File Name Specified";
  44. return $message;
  45. }
  46. //File Size Check
  47. else if ( $file_size > 500000) {
  48. $message = "The file size is over 500K.";
  49. return $message;
  50. }
  51. //File Type Check
  52. else if ( $file_type == "text/plain" ) {
  53. $message = "Sorry, You cannot upload any script file" ;
  54. return $message;
  55. }
  56.  
  57. $result = move_uploaded_file($temp_name, $file_path);
  58. $message = ($result)?"Url Pliku: <a href=$file_url>$file_url</a>" :
  59. "Somthing is wrong with uploading a file.";
  60.  
  61. return $message;
  62.  
  63. setcookie ('wyslano', 1, time()+180); // Ustawienie "ciasteczka" na 3 minuty.
  64.  
  65. }
  66. ?>
  67. <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
  68. Upload: <input type="file" id="userfile" name="userfile">
  69. <input type="submit" name="upload" value="Upload">
  70. </form>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.