Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przekierowanie
Forum PHP.pl > Forum > Przedszkole
BLS
Napotkałem kolejny problem w procesie tworzenia mojej strony.

Mam 2 przykladowe adresy:

1) http://domena.pl/katalog/galeria/dluganzawapliku.jpg
koduję katalog/galeria/dluganzawapliku.jpg na postac 00011
otrzymuje
2) http://domena.pl/00011

obydwa wprowadzam do bazy mysql

Chciałbym osiągnąć efekt taki, że po wpisaniu adresu 2) uzytkownik zostaje automatycznie przekierowany na adres 1)

Nie wiem czy jest możliwe "przypisanie" adresu 2) do 1) w bazie mysql? I na tej podstawie przekierowanie. Może też być w samym php, tylko już pogubiłem się, bo próbowałem na kilka sposobów.

Proszę o choćby podpowiedź w jaki sposób rozwiązać ta zagwozdkę.
Kszyhuu
Mod rewrite?
Albo wyjmij z bazy dwa adresy, użyj ifa z krótkim adresem i tam daj header na długi adres.
BLS
Cytat(Kszyhuu @ 1.11.2009, 10:44:22 ) *
Mod rewrite?
Albo wyjmij z bazy dwa adresy, użyj ifa z krótkim adresem i tam daj header na długi adres.


Dzięki wypróbuję obydwie metody.

EDIT:
Na szybko probuje przekierowac takim sposobem:

  1. $kieruj = mysql_query("SELECT linkpierwotny, linkzakodowany FROM images WHERE image_id = '$id'") or die(mysql_error());
  2. if($linkzakodowany == 1)
  3. {
  4. header('location:http://domena.pl/foto/galeria2.php?id='.$id.'');
  5. }


ale nie idzie...

W jaki sposób pobrać info, że użytkownik wklepał do paska adresu przeglądarki mój adres zakodowany (krótki adres do pliku)?
InosU31
to moze switch ?

[PHP] pobierz, plaintext
  1. $kieruj = mysql_query("SELECT linkpierwotny, linkzakodowany FROM images WHERE image_id = '$id'") or die(mysql_error);
  2. while ($rekord = mysql_fetch_array ($kieruj))
  3. {
  4. $rekord['linkzakodowany'] = $_GET;
  5. switch ($_GET)
  6. {
  7. case $rekord['linkzakodowany']:
  8. header("location:".$rekord['linkpierwotny']."");
  9. break;
  10. }
  11. }
[PHP] pobierz, plaintext

teraz chyba powinno zadzialac ;-) ale poprobuj

Pozdrawiam
BLS
Cytat(InosU31 @ 1.11.2009, 20:17:44 ) *
to moze switch ?


  1. $kieruj = [url="http://www.php.net/mysql_query"]mysql_query[/url]("SELECT linkpierwotny, linkzakodowany FROM images WHERE image_id = '$id'") or [url="http://www.php.net/die"]die[/url]([url="http://www.php.net/mysql_error"]mysql_error)[/url];
  2. while ($rekord = [url="http://www.php.net/mysql_fetch_array"]mysql_fetch_array[/url] ($kieruj))
  3. {
  4.  
  5. $rekord['linkzakodowany'] = $_GET;
  6. switch ($_GET)
  7. {
  8. case $rekord['linkzakodowany']:
  9.  
  10. [url="http://www.php.net/header"]header[/url]("location:".$rekord['linkpierwotny']."");
  11.  
  12. break;
  13. }
  14.  
  15. }




teraz chyba powinno zadzialac ;-) ale poprobuj

Pozdrawiam



Poradziłem sobie w inny sposób. Przekierowanie działa gdy podam w formularzu link zakodowany. Ale przecież kierowanie ma działać na podstawie zmiennej pobranej z url a nie formularza. W jaki sposós ustawić zmienną na podstawie adresu z url?

Szukałem i robię tak:

  1. $link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
  2. $link = $_GET['link'];
  3. $zapytanie2 = mysql_query("SELECT linkpierwotny, linkzakodowany FROM images WHERE linkzakodowany='$link'");


i nie działa:(
InosU31
  1. $link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
  2. $link = $_GET['link'];
  3. $zapytanie2 = mysql_query("SELECT linkpierwotny, linkzakodowany FROM images WHERE linkzakodowany='$link'");


no nie wiem jak ma ci to dzialac skoro najpierw przypisujesz do zmiennej $link jakis adres a pozniej zmienna GET ?

nie rozumiem za bardzo co ma wspolnego formularz z wyswietleniem linka? Pozatym przeciez Ci napisalem i u mnie to dziala :|

Moze objasnij bardziej jak chcesz wyswietlac te zdjecia bo juz nie wiem.

ja to widze tak :

otwierasz strone i widzisz fotki (bardz jakiegos linka):



  1. $kieruj = mysql_query("SELECT linkpierwotny, linkzakodowany FROM images");// wybierasz wszystkie linki/fotki
  2. while ($rekord = mysql_fetch_array($kieruj))
  3. {
  4.  
  5. echo "<a href=\"".$rekord['linkzakodowany']."\">".$rekord['linkzakodowany']
  6. ."</a>";
  7. // wyswietlasz wszystkie linki z bazy z zakodowanym linkiem na stronie
  8.  
  9. if ($rekord['linkzakodowany'] == $_GET)
  10. {
  11.  
  12. switch ($_GET)
  13. {
  14. case $rekord['linkzakodowany']:
  15.  
  16. header("location:".$rekord['linkpierwotny']."");
  17.  
  18. break;
  19. }
  20. }
  21.  
  22. }
  23.  
  24.  


nie wiem czy o to ci chodzilo.

pozdrawiam
BLS
Dzięki serdeczne za skrypt- na pewno mi się przyda w dalszej pracy.
Jeszcze raz tłumaczę o co mi chodzi: w każdym hostingu plików, kiedy podasz np. http://rapidshare.com/files/287027078/plik.rar to nie otworzy się strona główna RS, a strona na której masz możliwość pobrania pliku.
Ja chciałbym uzyskać ten sam efekt. Wklepując "linkzakodowany" user jest kierowany do odpowiadającego mu "linkupierowtnego" , a gdy wklepie jakiś inny adres to jest kierowany na strnę główną mojego serwisu.

Pozdrawiam
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.