Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak przekazać parametry do skryptu?
Forum PHP.pl > Forum > Serwery WWW
spenalzo
Została mi narzucona taka struktura dokumentu:

serwer.pl/dzial/
serwer.pl/dzial/poddzial/
serwer.pl/dzial/poddzial/podpodzial/
(...)

i teraz mam pytanie - jak przekazać takie cos do skrytpu php, zeby otrzymać coś takiego:
serwer.php/skrypt.php?dzial1=dzial&dzial2=poddzial&dzial3=podpodzial...
itd
scanner
Speniu, speniu... Użyj swojej wyszukiwarki i poszukaj. Kurtz bodajrze mówił o mod_rewrite i ForceType
spenalzo
O forcetype znalazłem coś takiego, ale nie ma najmniejszej ochoty zadziałąc:

mam katalog /test
w tym katalogu mam .htaccess i go.php

Cytat
<Files go>
ForceType application/x-httpd-php
</Files>


i jak wpisze localhost:81/test/go/costam/ ciagle nie można znaleźć strony...

Korzystałem z tego: http://www.devarticles.com/c/a/Apache/Usin...er-Page-URLs/1/
spenalzo
Jakiś pomysł? Na home.pl również nie działa sad.gif ehhhh

Jakie inne sposoby znacie oprócz powyższego i mod_rewrite ?
GeoS
Najlepszy jest mod_rewrite - to naprade potezne narzedzie.

Dzieki temu modulowi mozna zrealizowac przekazywanie x parametrow na y sposobow.
scanner
Cytat
w tym katalogu mam .htaccess i go.php
Cytat
<Files go>
ForceType application/x-httpd-php
</Files>

A zmień nazwę pliku z go.php na go (bez rozszerzenia)
spenalzo
scanner: Hmm faktycznie teraz jest lepiej, bo coś sie ruszyło ale nadal nie to co trzeba sad.gif Po prostu serwer wysyłą mi do zapisu plik 'go' jako application/octetstream lub application/x-httpd-php :|

GeoS: wiem, ale na home.pl mod_rewrite nie jest zainstalowany.
GeoS
Napisz do home.pl, zeby podali Ci jaki maja ustawiony w Apache typ MIME dla skryptow php i wrzuc go zamiast application/x-httpd-php.
spenalzo
Cytat
php uruchamiany jest tylko dla plikow z rozszerzeniami .php, .php3 i .php4.
Nie ma mozliwosci skonfigurowania, aby pliki z innym rozszerzeniem byly
parsowane przez php.
GeoS
Jak nie, jak tak. Robisz to wlasnie przez dyrektywe ForceType dla danego pliku wrzucona do .htaccessa (najlepiej w katalogu o tym samym poziomie co plik).
spenalzo
No ale tak jak napisałem wyżej to nie działa.
Poza tym okazało się w praniu, że php nie widzi tego co jest po nazwie skryptu - np. index.php/zmienna/innazmienna/ widiz tylko index.php
GeoS
Cytat
Poza tym okazało się w praniu, że php nie widzi tego co jest po nazwie skryptu - np. index.php/zmienna/innazmienna/ widiz tylko index.php


A zmienna Request_URI :?:
spenalzo
No faktycznie, nie pomyślałem o tym smile.gif

Ale .htaccess o takiej postaci:
Cytat
<Files test>
ForceType application/x-httpd-php
</Files>

nie działa. sad.gif
GeoS
Nie wiem, czy w nowszych Apache cos pozmieniali z typami MIME dla php (w co jednak gleboko watpie), ale u mnie tego samego typu na koncie komercyjnym w www.newcomo.pl tez nie lapie tongue.gif aaevil.gif
lemming
A nie mozesz uzyc kodu z systemu bannerow ktory dales na forum:
http://php.pl/viewtopic.php?t=2513&start=45
Bez mod_rewrite to ciezko moze byc. Z mod_rewrite jest lepiej:
http://www.devarticles.com/c/a/Apache/Sear...th-mod-rewrite/
moze admin serwa na ktorym bedzie strona doda mod rewrite?
spenalzo
Właśnie że nie moge - klient sobie zażyczył, że ma być bez widocznych rozszerzeń plików.
Haha, już widze jak home.pl dodaje na moje życzenie mod_rewrite biggrin.gif
GeoS
Za cos im sie placi to minimum 600 PLN netto rocznie smile.gif
scanner
Na localhoście udało mi się wykonać NiceURL:

Przeniosłem ForceType do:
Cytat
DocumentRoot "D:PrivateMy Webs"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).  
#
# First, we configure the "default" to be a very restrictive set of  
# features.  
#
<Directory />
   Options FollowSymLinks
   AllowOverride None
   <Files redirect>
       ForceType application/x-httpd-php
   </Files>
</Directory>
I teraz mam ładnego url'a
http://localhost/test/redirect/news/page/3

a plik redirect:[php:1:ed1f26a3d6]<pre>
<?php
var_dump( $_SERVER['PATH_INFO'] );
?>
</pre>[/php:1:ed1f26a3d6]W manualu do Apache pisze:
http://httpd.apache.org/docs-2.0/howto/htaccess.html pisze, że w przypadku, gdy .htaccess nie jest analizowany, należy sprawdzić dyrektywę AllowOverride - ustawiona na "None" blokuje możźliwość użycia .htaccess (jeśli dobrze zrozumiałem). Niestety, póbowałem przestawić ją na All - nie pomogło. Dopiero wstawienie jak wyżej ForceType bezpośrednio do httpd.conf załatwiło sprawę.
scanner
Ok, pobawiłem się jeszcze trochę i doszedłem do wnuiosku (ale musże to jeszcze przetestować, że provider musiałby dać <directory> na Twój homedir . Ale tu pojawia się pytanie (bo nie mam chwilowo jak sprawdzić - czy <directory> można umieścić wewnątrz <VirtualHost> ?
GeoS
Mozna prawie wszystko tongue.gif

Jesli chodzi o moj problem, to w zasadzie go nie ma - kwestia poprawienia kilku rzeczy przez dragossaniego :]
spenalzo
A jakie metody przekazywania danych do skrytpru są na serwerze Zeus ? Z takich co user może zrobić sam?
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.