Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Generowanie nazwy pliku
Forum PHP.pl > Forum > Przedszkole
Bajki
Witam
Tworze serwis, którego częścią jest uploadowanie różnych obrazów. Chciałem aby nazwy uploadowanych plików byly nieprzewidywalne dla przeciętnego użytownika ale łatwe do odtworzenia w skrypcie. Użyłem do tego md5(), przepuściłem przez funkcje id użytkownika oraz id zdjęcia
  1. <?php
  2. $nazwa = md5($id_uzytkownika).md5($id_zdjecia);
  3. ?>

jednak nie do konca wiem na jakiej zasadzie działa md5 i wygląda na to, że słowo powiedzmy "szklanka" zakodowane md5 nie zawsze da ten sam wynik...ale moge się mylić ponieważ - jak już wspomniałem - nie wiem jak funkcjonuje ta funkcja tongue.gif

Czy istnieją jakieś typowe sposoby nazywania plików nieczytelnie dla użytkownika ale czytelnie dla skryptu ? winksmiley.jpg jakieś funkcje szyfrujące itp

Pozdarwiam i czekam na propozycje winksmiley.jpg
AxZx
wystarczy takie cos
  1. <?php
  2. $nazwa = md5($iduser.$idzdjecie.time().mt_rand())
  3. ?>


md5('szklanka') da zawsze ten sam wynik
'2d9cae7e5351796b0438a536892fc84a'
HellRider
Dokładnie jak wyżej.
Od siebie dodałbym sprawdzanie czy dane ID nie jest już użyte, trudno je zdublować
kiedy użyjesz time() i mt_rand(), ale powinno się przed tym zabezpieczyć.

Po wygenerowaniu (jak wyżej):
  1. <?php
  2. $nazwa = md5($iduser.$idzdjecie.time().mt_rand())
  3. ?>


powinieneś sprawdzić w bazie:
  1. <?php
  2. $res = mysql_query("SELECT * FROM tabela_fotek WHERE fotka = '".$wynik."'");
  3. if (mysql_num_rows($res) > 0) {
  4.  ... powtórz generowanie nazwy ...
  5. }else{
  6.  ... kontynuuj ...
  7. }
  8. ?>
Pilsener
Cytat
Chciałem aby nazwy uploadowanych plików byly nieprzewidywalne dla przeciętnego użytownika ale łatwe do odtworzenia w skrypcie
- po co się tak męczyć? Nadajesz po prostu plikowi nazwę taką, jak ID zdjęcia - co za różnica, czy użytkownik zna nazwę pliku czy nie zna?
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.