Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmiana adresu linku
Forum PHP.pl > Forum > PHP
bok
Witam
Mam taki mały problem jak można zrobić coś takiego:
W pliku „lista.php” mam takie coś:

  1. <?
  2. $cos1 = 'http://www.wp.pl';
  3. $cos2 = 'http://www.onet.pl';
  4. $cos3 = 'http://www.google.pl';
  5. ?>


A w pliku “lista2.php” mam takie coś:

  1. <? include(lista.php'); ?>
  2. <p><a href="open.php?id=<? print($cos1); ?>">jakis napis 1</a></p>
  3. <p><a href="open.php?id=<? print($cos2); ?>">jakis napis 2</a></p>
  4. <p><a href="open.php?id=<? print($cos3); ?>">jakis napis 3</a></p>


A w pliku “open.php” mam takie coś:

  1. <form method="POST" action="<? print($id) ?>">
  2. <p><input type="submit" value="Prześlij" name="B1"><input type="reset" value="Resetuj" name="B2"></p></form>


A problem mój polega na tym że jak ktoś uruchomi link np. „jakis napis 1” na stronie “lista2.php” to wyświetli mu się adres strony: „open.php?id=http://www.wp.pl”, a jak można by to przerobić tak aby wyświetlał mu się adres np.: „open.php?id=cos1”. Jak można przerobić to tak aby powodował to samo ale żeby wyświetlał krótszy link i zeby niewyswietlalo tych adresow stron (http://www.wp.pl, itd..).
Czy istnieje w ogóle taka możliwość, lub czy znacie inne podobne sposoby.
Dzięki z góry.
nospor
temat zamykam. Proszę sformuŁować najpierw odpowiedni temat do treści (Regulamin, podpunkt b).
Zrozumcie, że dobry temat ułatwi i wam i nam życie. łatwiej go np. później znaleźć, czy też ludzie poważniej podchodzą do sprawy gdy i ich się poważnie traktuje (poprzez solidnie przedstawienie sprawy, co dotyczy również tematu).
Pozatym w wyszukiwarce można przeszukiwać wg. tematu, a nic nie znaczący temat nie pozwoli na jego określenie w kryteriach wyszukiwania.
Jak temat zostanie poprawiony, proszę przesłać mi PW (Prywatną Wiadomość) - odblokuję.

edit. otwieram - obieacno poprawę biggrin.gif
tiraeth
Proponuję aby adresy były w pliku tekstowym:
Kod
http://www.onet.pl
http://www.wp.pl
http://www.interia.pl


lista2.php
  1. <?php
  2. $adresy = file('lista.txt');
  3. foreach($adresy as $id => $url) # <----- LITEROWKA
  4. {
  5.  $id++;
  6.  echo '<p><a href="open.php?id='.$id.'">jakis napis</a></p>';
  7. }
  8. ?>


open.php
  1. <?php
  2. $id = $_GET['id']; $id--;
  3. $adresy = file('lista.txt');
  4. header("Location: ".$adresy[$id]);
  5. ?>

I już mamy gotowe przekierowanie smile.gif
bok
Niebardzo tak moze byc ponieważ w pliku "lista.php" jest tego ponad 500 ja podalem lekko zmodyfikowany kod.
nospor
I co z tego że 500? W czym to przeszkadza?

@tiraeth A czemu zmniejszaj id po odebraniu go z url? Przecież do url zapodajesz id indexowane od 0, więc nie trzeba zmniejszać
tiraeth
w kodzie wyraźnie napisałem pod instrukcją foreach $id++ smile.gif

ajajja, nie zauważyłem. To powiedz mi jeszcze a pokiego gdzyba to dodałeś?
---
nospor
bok
Lepiej by było jak by był link np: open.php?id=cos1

a nie open.php?id=1

poniewarz ta nazwa "cos1" bylaby wykozystywana w jeszcze jedny skrypcie, a jak bym wstawił nowy link w tym pliku lista.php to by sie troche tam pomieszalo.

Może ktoś wie jak to zrobic??
tiraeth
@nospor: użyłem tego, aby każdy ID odpowiadał odpowiedniej linijce w pliku tekstowym. Oczywiście obie operacje (inkrementacji i dekrementacji) można usunąć z kodu smile.gif

@bok: z nazwą zmiennej przesyłanej przez parametr id nie będzie problemu, gorzej w wyświetleniem (dynamicznym) wszystkich linków...
  1. <?php
  2. # jako $_GET['id'] przesylamy nazwe zmiennej
  3. include('lista.php'); # pobieramy adresy (Twój kod)
  4. header("Location: ".${$_GET['id']}); # ten kod przekieruje na adres zawarty w odpowiedniej zmiennej
  5. ?>
sniper1993
Coś żeś chyba przekombinował biggrin.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.