![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 30.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
dziś chciałbym przedstawić skrypt na upload zdjęć php + MySql Skrypt ten powstał ze zlepków z różnych stron Jest to pierwszy mój tego typu skrypt więc proszę o uwagi i krytykę oraz lepsze rozwiązania tego skryptu. Właściwość: - Linki do zdjęcia (bezpośredni, html, code) - Losowanie nazwy pliku (dla niepowożenia się 2 takich samych nazw. (Dodając system logowanie, rejestracji + profil otrzymamy mniejszą szanse na powtórzenie pliku bo do losowej nazwy doklejany jest login użytkownika co daje nam dodatkowo jaki użytkownik wysłał to zdjęcie. (Niezalogowany nie ma do tego dostępu ponieważ nie dodało by nicku))) - Można rozbudować dodając do tego system logowania, rejestracji + profil (mogę to przedstawić jeżeli ktoś chciałby) - Można dodać galerię wszystkich dodanych zdjęć - Można dodać stronę która za pomocą ID z bazy wyświetli nam zdjęcia (losowe lub w kolejność) 1. A więc jako pierwsze co musimy zrobić to taką oto tabelę w bazie danych MySql: Kod CREATE TABLE IF NOT EXISTS `img` ( `id` int(10) NOT NULL AUTO_INCREMENT, `pojemnosc` varchar(10) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, `nazwa` varchar(60) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, `typ` varchar(45) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; 2. Teraz pozostało nam stworzyć plik o nazwie upload.php w którym umieszczamy poniższy kod: Kod <html> <!DOCTYPE html> <html lang="pl-PL"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Darmowy upload plików by Okti</title> <meta name="keywords" content="Upload, free" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> </head> <body> <center> <font size="50"><b>MyFotobyEinisan</b></font> </br> <form action="upload-v.php" method="post" enctype="multipart/form-data" name="form1"> <p align="center">Wysyłanie plików na serwer. </p> <input name="plik" type="file" size="50"/> <input name="max_file_size" type="hidden" value="1048576" /> <input value="Wyślij plik" type="submit" /> </form> </center> </body> </html> 3. Teraz pozostało zrobić plik o nazwie upload-v.php oraz wpisać tam ten kod Kod <html> <!DOCTYPE html> <html lang="pl-PL"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Darmowy upload plików by Okti</title> <meta name="keywords" content="Upload, free" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> </head> <body> <center> <font size="50"><b>MyFotoEinisan</b></font> </br> <?php session_start(); // Konfiguracja $config['mode'] = array(true, true, true, true); // Fajna tablica, nie? $config['length'] = 8; // Alfabet $letters = 'abcdefghijklmnopqrstuvwxyz'; // Liczby if($config['mode'][0]) { $values = '0123456789'; // Można użyć tego: implode('', range(0, 9)); } // Znaki specjalne if($config['mode'][1]) { $values .= '!@#$%&'; } // Małe litery if($config['mode'][2]) { $values .= $letters; } // Duże litery if($config['mode'][3]) { $values .= strtoupper($letters); } for($h = 0, $length = (strlen($values) - 1); $h < $config['length']; ++$h) { $random_symbols .= substr($values, mt_rand(0, $length), 1); } $p_pojemnosc=$_FILES['plik']['size'];//pojemnosc pliku $p_typ=$_FILES['plik']['type']; // typ pliku $p_nazwa=$_FILES['plik']['name']; // nazwa pliku $p_smiec=$_FILES['plik']['tmp_name']; // chwilowa nazwa pliku //wycinamy rozszerzenie z pobieranego pliku $explode_dir = explode(".", $p_nazwa); $p_roz = array_pop($explode_dir); /* odbieramy dane z pola ukrytego i zaokrąglamy je do 3 miejsca po przecinku/dzielimy przez 1204*1024 by było w MB*/ $max_size=round(($_POST['max_file_size']/1048576),3)."MB"; //zaokrąglamy "round" do 2 miejsc po przecinku i przeliczamy rozmiar pliku na MB $poj_MB=round(($p_pojemnosc/1048576),2).'MB'; //kodujemy nasz plik metodą MD5 i dodajemy date i godzinę oraz rozszerzenie pliku $p_nazwa_zm=($random_symbols).".".$p_roz; $folder="pliki/"; //---Kolorki HTML--- $k_cze="<font color=#ff0000>"; $f_koniec="</font>"; $k_nieb="<font color=white>"; if ($p_pojemnosc <= 0) { echo ("Plik jest pusty nie mogę go przesłać <b>".$k_cze.$p_nazwa." ".$poj_MB.$f_koniec."</b><br />"); echo "<a href=upload.php>Wracaj ...</a>"; exit; } if ($poj_MB > $max_size) { echo("Plik jest za duży maksymalnie można wysłać <b>".$k_cze.$max_size.$f_koniec."</b>"." .Plik wysyłany ma rozmiar <b><i>".$k_nieb.$poj_MB.$f_koniec."</b></i><br />"); echo "<a href=upload.php>Wracaj ..."; exit; } if (file_exists($folder.$p_nazwa_zm)) { echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$p_nazwa_zm."</b></i><br />"); echo "<a href=upload.php>Wracaj ..."; exit; } else { if(!@move_uploaded_file($p_smiec, $folder.$p_nazwa_zm)) exit('Nie mozna zachowac pliku. Prawdopodobnie nie ma folderu lub nie moĹĽna w nim zapisać'); echo "<center><div class='link'>Przeslanie udało się - <b>".$k_nieb.$p_nazwa."</b>"." Waga:".$poj_MB."</div><br />"; echo "<div class='link'>Link do obrazka: - <b><a href='http://twój-adres.pl/pliki/".$p_nazwa_zm."' target='_blank'> http://twój-adres.pl/pliki/".$p_nazwa_zm."</a></b></div></br>"; echo "<div class='link'>Na stonę www: - <b> <img src='pliki/".$p_nazwa_zm."'></b></div></br>"; echo "<div class='link'>Na forum: - <b> [img]http://twój-adres.pl/pliki/".$p_nazwa_zm."[/img]</b></div></br>"; echo "Podgląd: </br><fieldset><img src='http://twój-adres.pl/pliki/".$p_nazwa_zm."' width='600px'></fieldset></br>"; $path_file=$folder.$p_nazwa_zm; $connection = @mysql_connect('host', 'user', 'pass') or die('Error connecting to mysql'); mysql_select_db('name-db'); $zapytanie=mysql_query("insert into img values(NULL,'$p_pojemnosc','$path_file','$p_typ')"); echo "<a href=upload.php>Wracaj ...</a>"; } ?> </center> </body> </html> Całość działa jak należy. Daję możliwość przetestowania skryptu Skrypt na tej stronie ma dodany system logowania, rejestracji + profil Testowe dane logowanie: Login: TesterUpload Hasło: TesterUpload Link: Kod http://einisan.hol.es/upload/upload.php
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Pierwszy lepszy security checker: https://sitecheck.sucuri.net/results/einisa...load/upload.php (może się chwilę ładować jak się ważność cache skończy)
Pozdrawiam Ten post edytował lukaskolista 30.08.2016, 16:04:02 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 30.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
Pierwszy lepszy security checker: https://sitecheck.sucuri.net/results/einisa...load/upload.php (może się chwilę ładować jak się ważność cache skończy) Pozdrawiam Tak ale chcę nadmienić że ta strona jest na darmowym hostingu (na jakiś czas) po prostu testuje na niej takie rzeczy żeby w przyszłość stworzyć na normalnym płatnym dobrym hostingu. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:32 |