Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP] Unikalny link jednorazowy
Forum PHP.pl > Forum > Przedszkole
camilost
Witam!
Poszukuję otóż małego skryptu, który by tworzył unikalny link do pliku RAR (zabezpieczonego hasłem).
Pragnę, aby każdy kto wejdzie w ten link, nigdy już nie mógł go odwiedzić - link wygasa i nie da się pobrać pliku.

Dokładniej to szukam rozwiązania na aukcje allegro, aby jak przyjdzie wiadomość, iż ktoś zakupił przedmiot, jakoś autoresponderem lub poniższym (o ile to możliwe sposobem - darmowy hosting).
Strona co jakiś czas sprawdzała pocztę, i odsyłała kupującemu w odpowiedzi unikalny link do pliku.
Link ten zobaczyć mozna raz/2 tak dla pewności wink.gif, a plik będzie ciągle w tym samym folderze i o takiej samej nazwie.

Znalazłem coś co możliwe, że się jakoś przyda: http://stackoverflow.com/questions/1465573...-file-using-php
lub http://stackoverflow.com/questions/1019030...ed-on-amazon-s3
Rysh
Ale w czym masz problemy, w wygenerowaniu linku unikalnego?
d3ut3r
W tym dziale nie ma co szukać gotowca, pozostaje Ci napisanie w gotowe rozwiązania -> szukam, lub w dziale ze zleceniami. Ew spróbuj sam coś napisać i wróć z konkretnym problemem w kodzie.
Shido
Ja to widzę tak:
1/ Wygeneruj sobie losowego stringa ( w jakikolwiek sposób ).
2/ Sprawdź czy takiego nie ma już w bazie danych.
3/ Jeżeli nie ma to zapisz do bazy danych.
4/ W skrypcie od ściągania dodaj zmienną przechwytywaną przez $_GET w której będzie ten losowy string.
5/ Sprawdź czy string jest w bazie, jeżeli tak to rozpocznij ściąganie i usuń z bazy danych stringa. Jeżeli nie to wyświetl errora.
bpskiba
Zamiast losowego sringa ja zaproponuję znacznik czasu
Rysh
Jeżeli $_GET['get'] istnieje a $_GET['key'] nie, to dodajesz jakiś losowy hash, który jest ważny przykładowo 1 minutę (timestamp) i tworzysz link przykładowo taki:

http://example.com/index.php?get=plik.exe&...d5plustimestamp

Natomiast, jeżeli $_GET['get'] i $_GET['key'] istnieją, sprawdza czy dla danego pliku istnieje ważny hash. Jeżeli tak pobierasz dane.

Jeżeli $_GET['get'] oraz $_GET['key'] nie istnieją, dajesz formularz do uploadu pliku i wsio smile.gif
erix
Cytat
ja zaproponuję znacznik czasu

Są dwa żądania naraz, co wtedy?
bpskiba
Cytat(erix @ 25.07.2012, 09:51:56 ) *
Są dwa żądania naraz, co wtedy?


Bardzo dobre pytania smile.gif W teorii to możliwe dziękuję

  1. <?
  2. echo time()."<br>";
  3. echo time()."<br>";
  4. echo time()."<br>";
  5. echo time()."<br>";
  6. echo time()."<br>";
  7. ?>


ale to już wygląga dobrze:
  1. <?
  2. echo microtime()."<br>";
  3. echo microtime()."<br>";
  4. echo microtime()."<br>";
  5. echo microtime()."<br>";
  6. echo microtime()."<br>";
  7. ?>
erix
Raczej uniqid...
bpskiba
Cytat(erix @ 26.07.2012, 14:03:26 ) *
Raczej uniqid...


To jest niewątpliwie najlepsze
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.