Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [wolontariat]Potrzebny mały skrypcik
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
Posio
Witam. Jestem zielony co do php, a potrzebuje skrypt na stronę firmową rodziców. Szukałem już wielu tego typu skryptów ale nic nie znalazlem.
Chodzi mi o zrobienie strony, która przekierowywała by mnie na adresy zapisane w jakimś pliku. Przykładowo wpisując w przeglądarce adres www.xx.pl/index.php?przek=1 skrypt pobierze mi z innego pliku adres do strony na którą ma mnie przekierować. Nie wiem kompletnie jak się za to zabrać i nie wiem czy to dobrze wytłumaczyłem ale proszę o pomoc. I z góry jestem wdzięczny
Leni2991
Ja to widzę tak:

  1. <?php
  2. if (file_exists('folder/z/linkami'.$_GET['przek'].'.txt'){
  3. $red=file_get_contents('folder/z/linkami'.$_GET['przek'].'.txt');}
  4. else{
  5. $red=0;}
  6. if($red!=0){
  7. header('Location: '.$red);
  8. else{
  9. echo('Brak przekierowania');}
by_ikar
Zanim zastosujesz rozwiązanie które zaproponował #Leni2991 poczytaj ten artykuł: http://blog.albitos.eu/2008/02/22/director...file-inclusion/
Posio
Ok wielkie dzięki, a jak miał by wyglądać plik z linkami ? chodzi mi o to, że każdy link miał by mieć swój odnośnik np 1,2,3, żeby nie było trzeba wpisywać długich adresów w przeglądarce
peter13135
Sposobów jest wiele, można trzymać w (1)bazie, w (2)pliku, albo w (3)samym skrypcie (czyli też w pliku, w sumie baza to też pliki, ale wiadomo o co chodzi).
pierwszy sposób sobię daruję, bo pewnie by ci się nie chciało robić tabeli itp. zresztą chyba to nie potrzebne.

Sposób drugi:
Robisz sobie np plik.txt i wrzucasz do niego linki oddzielając je "enterami" czyli znakami nowej linii (czyli \n) (inaczej mówiąc każdy link ma być w osobnej linii).
a skrypt (index.php na przykład)
  1. <?php
  2.  
  3. if(isset($_GET['id']){
  4. $plik = file('plik.txt');//rozszerzenie moze być jakie chcesz
  5. if(isset($plik[$_GET['id']]))
  6. header('location: ' . $plik[$_GET['id']);
  7. }


no i aby przekierować, w adresie musisz dać index.php?id=0
0 to pierwsza linijka, 1 to druga linijka itd.

sposób trzeci

robisz sobie tylko index.php i do niego wrzucasz:
  1. <?php
  2.  
  3. if(isset($_GET['id']){
  4. $adres[0]='http://google.pl';
  5. $adres[1]='http://php.pl';
  6. if(isset($adres[$_GET['id']]))
  7. header('location: ' . $adres[$_GET['id']);
  8. }

w tym przypadku, indexem nie musi być liczba całkowita, może być także string np.
$adres['wino'] = 'http://example.pl';

link będzie wyglądał tak : index.php?id=wino
Posio
super, wszystko nawet rozumiem elegancko, a w jaki sposób mam ustawić czas po jakim mi przekieruje do danej strony ?
Dipter
  1. <?php
  2. header('refresh: 5; url=/tutaj/link/');
  3. ?>


Gdzie 5 to czas w sekundach po jakim ma przekierować smile.gif
Posio
Ok, wielkie dzięki, nie spodziewałem się tak szybkiej pomocy. Jeszcze raz dziękuje wszystkim, którzy pomagali i pozdrawiam. A no i wesołych wakacji haha.gif

niestety coś mi nie wychodzi, z każdym kodem wywala mi taki błąd serwer
Kod
Parse error: syntax error, unexpected '{' in


jesli usune "{" to wyskakują następne błędy...
messmaker
Prawdopodobnie błąd tkwi przed klamrą, sprawdź nawiasy.
Armstrong
header() {} != ()

I dodatkowo kod przy którym wywala. Pomocny byłby jak go skleiłeś.
marcinpruciak
Tu Wam brakuje nawiasu
  1. if(isset($_GET['id'])){

Był jeden
Posio
ok, wszystko zrobione. Teraz mam problemik z plikiem z linkami. Jest to zwykły plik txt a w nim linki. Mój problem polega na tym, że z linków nie domyśle się gdzie one mnie prowadzą, oto przykład:

Teraz:
Kod
http://www.google.pl
http://www.php.pl


a chciałbym móc zrobić tak:

Kod
http://www.google.pl     //GOOGLE
http://www.php.pl     //PHP.PL


niestety jeśli tak zrobię to przekierowuje mnie na stronę http://www.google.pl //GOOGLE


Mój kod na stronie wygląda tak:

  1. <?php
  2.  
  3. if(isset($_GET['id'])){
  4. $adres = file('system/urls_1.bak');
  5. if(isset($adres[$_GET['id']]))
  6. echo('Trwa pobieranie linku </br> <img src="images/loader.gif" alt="opis" />');
  7. header('refresh: 5 ' . $adres[$_GET['id']]);
  8. }
  9. ?>
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.