Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Skrypt uploadu - blokowanie uploadowania innych plikow niz obrazki
o2w5n778
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 10.12.2009

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


Witam!
Czy ktoś może wie co zrobic aby w tym skrypcie dało się uploadować tylko obrazki?

Kod:
  1. <?
  2. $site ="http://adres.pl/"; // adres strony na kocu pamitaj o /
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. <title>Dokument bez tytuu</title>
  9. </head>
  10.  
  11. <body>
  12.  
  13. <?php
  14. if ($_POST['dodaj']) {
  15.  
  16. $plik_nazwa = trim($_POST['plik_nazwa']);
  17. $plik_tmp = $_FILES['foto']['tmp_name'];
  18. $plik_nazwa = $_FILES['foto']['name'];
  19. $ext = pathinfo($plik_nazwa, PATHINFO_EXTENSION);
  20. $kodowanie = md5($_POST['plik_nazwa']);
  21. $lacz = $kodowanie.$ext;
  22.  
  23. if(is_uploaded_file($plik_tmp)) {
  24. move_uploaded_file($plik_tmp, "../uploads/galeria/$lacz");
  25. echo "Plik: <strong>$plik_nazwa</strong> zosta przesany na serwer!<br>";
  26. print 'link dla forum: <input type="text" value="'.$site.''.$plik_nazwa.'" size="40" /><br>';
  27. print 'link dla przegldarki: <input type="text" value="'.$site.''.$plik_nazwa.'" size="40" /><br>';
  28. print 'kod dla html: <input type="text" value="<img src=&quot;'.$site.''.$plik_nazwa.'&quot; alt=&quot;aduje&quot; />" size="40" /><br>';
  29. /* Komenda Sprawdzajca Dziaanie Uploadu Zdjcia */
  30. }
  31.  
  32. }
  33. ?>
  34.  
  35. <div id="okno">
  36. <form enctype="multipart/form-data" action="index.php" method="POST" name="newad">
  37. <div class="oknoDane">
  38. <p class="oknoDanePotrzebne">Podaj Potrzebne Dane:</p>
  39. <table><tr>
  40. <td><table><tr>
  41. <td>fotografia:</td><td><input type="file" name="foto" class="nazwy" /></td></tr></table></td>
  42. </tr></table>
  43. </div>
  44. <div class="pagesPrzyciski">
  45. <input type="submit" name="dodaj" class="pages" value="Dodaj" />
  46. <input type="reset" class="pages" value="Resetuj" />
  47. <input type="button" class="pages" onclick="java script:history.back();" name="wstecz" value="Wstecz" />
  48. </div>
  49. </form>
  50. </div>
  51. </body>
  52. </html>


Ten post edytował o2w5n778 3.08.2010, 22:06:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Johnas
post
Post #2





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


Ja mam taki upload plików img. Nie dość że sprawdzam czy plik jest grafiką to zmieniam chmody na 600 automatycznie. Przeczytaj broszurkę co Ci podałem dwa posty wyżej to tam pisze jak jeszcze możesz upload zabezpieczyć plikiem .htaccess tak aby skrypt złośliwy był pokazywany jako text.

  1.  
  2. <h2>&raquo;YouPhoto-Dodaj zdjęcie</h2>
  3. <div class="content">
  4.  
  5.  
  6. <form class="form" action="upload.php" method="post" enctype="multipart/form-data" onsubmit="openProgressBar(); return true;">
  7.  
  8. <br>Dodaj zdjęcie:<br>
  9. <p>
  10. <input type="file" name="userfile" size="40">
  11. </p>
  12.  
  13. <p class="submit2">
  14. <input type="submit" name="submit" value="Submit">
  15. </p>
  16. </form>
  17.  
  18. <?
  19. if($_POST){
  20.  
  21.  
  22.  
  23. $uploaddir = 'img/';//katalog gdzie ma być wgrane zdjęcie chmod ustaw na 777
  24. $rand=rand(100,999);
  25.  
  26.  
  27.  
  28. $uploadfile = $uploaddir.$rand.$_FILES['userfile']['name'];
  29. $userfile =$_FILES['userfile']['name'];
  30. $ext = substr( $userfile, strrpos( $userfile, '.' ) );
  31.  
  32.  
  33.  
  34. $mime = $_FILES[ 'userfile' ][ 'type'];
  35.  
  36. if( strpos( $mime, 'image/' ) === false )
  37. die( 'Wybrany plik nie jest obrazkiem.' );
  38.  
  39.  
  40. if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){
  41. chmod( $uploadfile, 0600 );
  42.  
  43. if( is_uploaded_file( $_FILES[ 'file' ][ 'tmp_name' ] ) )
  44.  
  45.  
  46.  
  47. print "Opis: <b>$opis</b><br>";
  48. print "Lokalizacja: <b>$uploadfile</b><br>";
  49. print "Twoje ID: <b>$id_usera</b><br>";
  50. print "Numer dodany: <b>$rand</b><br></p>";
  51. echo '<center> <strong>"'.$_FILES['userfile']['name'].'"</strong>Zdjęcie Zostało dodane poprawnie.';
  52.  
  53.  
  54. }else {
  55. print "<center><font color=red><strong>Coś jest nie tak, spróbuj ponownie!</font>";
  56.  
  57. }
  58. }
  59.  
  60.  
  61. ?>
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: 28.12.2025 - 15:56