Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmiana linku GET
Forum PHP.pl > Forum > Przedszkole
kalafior122
witam chciałbym aby link: www.domena.pl/s.php?id=1 zmieniał się automatycznie na np www.domena.pl/s/1 itd gdy dam w menu np. www.domena.pl/s.php?id=2 automatycznie zmnieniło się w www.domena.pl/s/2. Albo żeby wgl się link nie zmnieniał tak jak jest na facebook'u
tomi1985
poczytaj o przyjaznych linkach smile.gif w sieci sporo jest tutoriali i gotowców smile.gif np.
http://funkcje.net/view/2/1591/index.html
kalafior122
nie działa mi

kod stronnicowania jeżeli to coś pomoże
  1. <?php
  2. if($_GET['strona']>0){
  3. echo '<a href="?strona='.($_GET['strona']-1).'">Nowsze</a> ';
  4. }
  5. for($i = 0;$i<=floor($iloscWpisow/$ilosc_wynikow_na_strone);$i++){
  6. echo '<a href="?strona='.($i).'">[ '.($i+1).' ]</a> ';
  7. }
  8. if($_GET['strona']<floor($iloscWpisow/$ilosc_wynikow_na_strone)){
  9. echo ' <a href="?strona='.($_GET['strona']+1).'">Starsze ></a>';
  10. }?>
tomi1985
musisz wszystku ustalic w pliku .htaccess... - ale nie ten kod co mi wysłałeś tongue.gif

poczytaj o tym na necie "przyjazne linki" smile.gif naprawde nic trudnego i wiele gotowych rozwiązań

np.
w htaccess

  1. RewriteEngine on
  2.  
  3. RewriteRule ^kategoria/(.*).html$ index.php?i=$1 [NC]


czyli w standardzie było by np. kategoria.php?i=test

a po zastosowanie wyżej wymienionego kodu można to zapisać w postaci

kategoria/test.html

w tym wypadku

$_GET['i'] = test
kalafior122
cały czas czytam i nic tongue.gif mam odblokowany mod_rewrite więc nie wiem dlaczego nie działa

ale czy ja musze coś zmieniać w tym skrypcie stronnicowania czy nie??

czy to powinno działaćquestionmark.gif bo już grzebie w httpd.conf bo nie działa sad.gif
  1. RewriteEngine on
  2. RewriteRule ^s/(.*).html$ index.php?strona=$1 [NC]
patrycjaBS
może musisz użyć polecenia "RewriteBase /"

u kogo masz wykupiony hosting?
tomi1985
utworz strone np test.php w którym daj wywołanie $_GET['i'];
np.

  1.  
  2. $i = $_GET['i'];
  3.  
  4. echp $i;
  5.  


a w htaccess

  1.  
  2. RewriteEngine on
  3. RewriteRule ^s/(.*).html$ test.php?i=$1 [NC]
  4.  


daj taki adres w przegladarke test/kategoria.html

i sprawdz czy wyswietli cos smile.gif

jesli tak to wszystko dziala a jesli nie to pokaz wszystko co masz w htaccess i w pliku test.php

możesz też użyc

test.php?view=cos&i=cos2

a po zastosowaniu

  1. RewriteRule ^/?([^/]*)/([^/]*)/$ test.php?view=$1&i=$2 [NC,L]


możesz użyc taki adres url

test/cos/cos2/

smile.gif - dziala na 100 %

co przekazuje $_GET smile.gif

$_GET['view'] = cos
$_GET['i'] = cos2

b4rt3kk
Czegoś chyba nie rozumiesz, Mod Rewrite nie przepisuje zwykłego linku po wpisaniu do przeglądarki, czyli np. strona.php?id=11 nie zmieni się automatycznie na strona/11 tylko serwer rozpozna, że wpisując strona/11 chodzi Ci o strona.php?id=11. Tak więc:

  1. <?php
  2. if($_GET['strona']>0){
  3. echo '<a href="/strona/'.($_GET['strona']-1).'">Nowsze</a> ';
  4. }
  5. for($i = 0;$i<=floor($iloscWpisow/$ilosc_wynikow_na_strone);$i++){
  6. echo '<a href="/strona/'.($i).'">[ '.($i+1).' ]</a> ';
  7. }
  8. if($_GET['strona']<floor($iloscWpisow/$ilosc_wynikow_na_strone)){
  9. echo ' <a href="/strona/'.($_GET['strona']+1).'">Starsze ></a>';
  10. }?>


Przy założeniu, że .httaccess wygląda np. tak:

Kod
RewriteRule ^/strona/([0-9]+)$ index.php?strona=$1 [L]
kalafior122
nadal nie strona jest na localhost a konkretnie localhost/folder/index.php korzystam z xampp'a :/
b4rt3kk
Cytat(kalafior122 @ 25.11.2012, 19:56:11 ) *
nadal nie strona jest na localhost a konkretnie localhost/folder/index.php korzystam z xampp'a :/


Tak więc, konieczne jest ustawienie:

Kod
RewriteBase /folder
kalafior122
nic

Nie znaleziono obiektu!
tomi1985
pokaz plik htccass

i jesli zrobiles ten test.php to rowniez pokaz kod
kalafior122
  1. RewriteBase /quej
  2. RewriteRule ^/strona/([0-9]+)$ index.php?strona=$1 [L]

test skopiowałem od cb i porawiłem tylko echo bo miałaeś echp
tomi1985
  1. RewriteEngine on - a gdzie to ?


i inna sprawa...

plik nazwałeś test.php ?
czy inaczej...

ponieważ jeśli nazwałeś test.php

to napewno działać nie będzie ponieważ

  1. RewriteBase /quej
  2. RewriteRule ^/strona/([0-9]+)$ index.php?strona=$1 [L]


to jest dostosowane do pliku o nazwie index.php smile.gif
kalafior122
ale mi chodzi o plik index po co robić dodatkowy test jak można testować na pliku właśniwym nadal nic nie znaleziono obiektu
tomi1985
no ok ....

pokaz kod tego pliku index.php bo tak to wiesz... ;/;/;/
kalafior122
po co?? tam nic nie ma oprócz tego stronnicowania
tomi1985
jaka masz zmienna ustawioną masz w tym pliku ?
kalafior122
kod wygląda tak
  1. if($_GET['strona']>0){
  2. echo '<a href="strona/'.($_GET['strona']-1).'">Nowsze</a> ';
  3. }
  4. for($i = 0;$i<=floor($iloscWpisow/$ilosc_wynikow_na_strone);$i++){
  5. echo '<a href="strona/'.($i).'">[ '.($i+1).' ]</a> ';
  6. }
  7. if($_GET['strona']<floor($iloscWpisow/$ilosc_wynikow_na_strone)){
  8. echo ' <a href="strona/'.($_GET['strona']+1).'">Starsze ></a>';
  9. }?>

daje casły kod po raz 2 bo niewiem o którą ci chodzi
tomi1985
ale strone wogole wyswietla czy nic wyskakuje blad typu 404 czy cos innego ?
kalafior122
pisałem już nie odnależiono obiektu po kliknięcu starsze wyskakuje link localhost/quej/strona/1

spróbowałem na innej stronie działa tylko nie pokazuje wgl wyglądu strony pokazuje tylko tekst a obrazków itd nie :/
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.