Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] generowanie jednorazowej strony / adresu
Forum PHP.pl > Forum > Przedszkole
Beneglih
jak w temacie
nie jestem pewien, jaki sposób nada się do tego najlepiej, ale domyślam się, że php

pytanie więc brzmi:
w jaki sposób można generować jednorazowy losowy adres strony z wybraną treścią?

czyli np. mam na serwerze plik strona.php

i chciałbym mieć np. drugą stronę na którą wchodzę, wciskam generuj i dostaję losowy adres po slashu który będzie includował plik strona.php

ogólnie prosta sprawa typu formularz, include itd.

pytanie tylko jak stworzyć losowo generujący się i działający JEDNORAZOWO link?

czyli generuje mi się strona np. http://domena.pl/afisaet2131.php
i w niej zincludowana jest strona.php
ALE LINK DZIAŁA TYLKO JEDNORAZOWO
czyli jak ktoś wejdzie na ten wygenerowany link i opuści stronę, to link automatycznie wygasa

jak się do tego zabrać, poradźcie proszę smile.gif
z góry dzięki
Sephirus
Hmm nie do końca kumam ;P

Ale po kolei -

Przede wszystkim będziesz potrzebował na serwerze jakiegoś mechanizmu do translacji adresów (mod-rewrite pod apache w .htaccess na przykład)
/Proponuje tu też zapoznać się z podstawami wyrażeń regularnych/

Mając to możesz sobie zrobić translacje dowolnego ciągu po domenie tak aby był zamieniany na to co chcesz na przykład:

Strona www.strona.pl/costam_co_sobie_tylko_wymyslisz.php może przekierowywać na www.strona.pl/index.php?strona=costam_co_sobie_tylko_wymyslisz

Jak już to ogarniesz to jedziemy dalej:

Musisz wybrać mechanizm do przechowywania tymczasowych adresów, podstawowe opcje są 3:
1. Pliki tekstowe (mogą mieć nazwę równą temu po domenie) po wygenerowaniu takiej losowej strony zapisujesz plik. Po wejściu na nią kasujesz go. Proste.
2. Baza danych (MySQL na przykład)
3. MemCache

Jak już masz wybrany sposób zapisu tymczasowych linków czas na ich pseudo-losową generację. Opcji masz wiele:
1. MD5 z jakiegoś czasu (np z funkcji time() albo microtime())
2. MD5 z liczby pseudolosowej (na przykład md5(mt_rand(0-10000))
3. Własny generatorek znaków o podanej długości - deklarujesz tablicę ze znakami na przykład:

  1. $znaki = array('a','b','c','d',......'A','B','C','D',.....'0','1','2',3'....'-','_');


Następnie losujesz na przykład tak:

  1. $dlugosc = 10;
  2. $link = '';
  3.  
  4. for($i = 0; $i < $dlugosc; $i++)
  5. {
  6. $link .= $znaki[ mt_rand(0, count($znaki) - 1 ];
  7. }


No i to by było na tyle wink.gif Zapoznaj się z tym wszystkim wink.gif

Jakby co to pisz wink.gif

HTH! wink.gif
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.