xomer
11.09.2003, 08:05:17
Witam ;-)
Ostatnio spotkałem się w jednym z serwisów Internetowych że adres strony opierał się o następujący schemat:
http://www.nazwa_strony.pl/page.php?numer (np.
http://www.costam.pl/page.php?1829). Niedawno użytkownik adwol na tym forum powiedział mi że w SSI robi się to następująco:
Kod
<!--#if expr=""${QUERY_STRING}" != """ -->
<!--#include file="${QUERY_STRING}.html" -->
<!--#else -->
<!--#include file="glowna.shtml" -->
<!--#endif -->
Nie wiem jak to się robi w php. Czy mógłby mi ktoś pomóc?
P.S. Niechodzi mi o schemat np. page.php?id=cos_tam.
spenalzo
11.09.2003, 08:09:56
Najprostszą metodą to:
[php:1:0adc93cb60]<?php
include("./katalog/".$_SERVER["QUERY_STRING"].".html");
?>[/php:1:0adc93cb60]
xomer
11.09.2003, 09:07:59
Cytat
Najprostszą metodą to:
[php:1:844f2fd814]<?php
include("./katalog/".$_SERVER["QUERY_STRING"].".html");
?>[/php:1:844f2fd814]
Nie wiem za bardzo na czym to polega. Umieściłem ten skrypt na stronie głównej w pliku index.php i umiescilem w folderze /katalog/ plik 1.html
Gdy wchodze przez adres index.php?1 nie otwiera mi sie strona. Mógłbyś mi krótko treścić na czym polega ten kod?
spenalzo
11.09.2003, 09:09:49
Cytat
Nie wiem za bardzo na czym to polega. Umieściłem ten skrypt na stronie głównej w pliku index.php i umiescilem w folderze /katalog/ plik 1.html
Zawuaż że na początku była kropka, co oznacza biężący katalog, czyli katalog 'katalog' w miejkscu gdzie ejst skrypt.
DeyV
11.09.2003, 09:11:27
proponuję test:
[php:1:fba35a4b74]<?php
echo ("./katalog/".$_SERVER["QUERY_STRING"].".html");
?>[/php:1:fba35a4b74]
spenalzo
11.09.2003, 09:13:51
Jeżeli masz wersję php < 4.1.0 to zamiast $_SERVER musisz użyć $HTTP_SERVER_VARS.
xomer
11.09.2003, 09:18:16
Działa, chciałem dodac strone głowną. Czyli zrobiłem takie coś:
[php:1:9edd0cd4d6]<?php
include("./katalog/".$_SERVER["QUERY_STRING"].".html");
else
{
include("home.html");
}
?>[/php:1:9edd0cd4d6]
i mi wyświetla bład
Cytat
Parse error: parse error, unexpected T_ELSE in /index.php on line 3
Za bardzo sie nieznam na php. Mógłbyś mi powiedzieć co jest nie tak?
DeyV
11.09.2003, 09:20:42
a nie przydało by sie najpierw IF, przed else?
[php:1:d0335212f3]<?php
if( !empty( $_SERVER["QUERY_STRING"] ) )
{
include("./katalog/".$_SERVER["QUERY_STRING"].".html");
}
else
{
include("home.html");
}
?>[/php:1:d0335212f3]
spenalzo
11.09.2003, 09:21:39
[php:1:61ff2cc2e6]<?php
if(file_exists("katalog/".$_SERVER["QUERY_STRING"].".html"))
{
include("./katalog/".$_SERVER["QUERY_STRING"].".html"));
{
else
{
include("home.html");
}
?>[/php:1:61ff2cc2e6]
xomer
11.09.2003, 09:27:08
Teraz mi wyświetla błąd:
Cytat
Parse error: parse error, unexpected ')' in /index.php on line 4
spenalzo
11.09.2003, 09:29:54
A teraz?
[php:1:341cca2683]<?php
if(file_exists("katalog/".$_SERVER["QUERY_STRING"].".html"))
{
include("./katalog/".$_SERVER["QUERY_STRING"].".html");
{
else
{
include("home.html");
}
?>[/php:1:341cca2683]
xomer
11.09.2003, 09:34:04
A teraz błąd:
Cytat
Parse error: parse error, unexpected T_ELSE in /index.php on line 6
wassago
11.09.2003, 09:37:02
[php:1:09f9a6e057]<?php
if(file_exists("katalog/".$_SERVER["QUERY_STRING"].".html"))
{
include("./katalog/".$_SERVER["QUERY_STRING"].".html");
}
else
{
include("home.html");
}
?>[/php:1:09f9a6e057]
radzaw
11.09.2003, 09:37:48
to moze tak
[php:1:92d937b29f]<?php
$ktora=$_SERVER['QUERY_STRING'];
include((@file_exists($ktora.".html")) ? $ktora.".html" : "glowna.html");
?>[/php:1:92d937b29f]
xomer
11.09.2003, 09:39:31
Tez nie, moze lepiej powrucic do poprzedniego kodu. Tylko co tam trzeba zmienic zeby chodzilo?
xomer
11.09.2003, 09:45:37
Cytat
[php:1:82b8166c84]<?php
if(file_exists("katalog/".$_SERVER["QUERY_STRING"].".html"))
{
include("./katalog/".$_SERVER["QUERY_STRING"].".html");
}
else
{
include("home.html");
}
?>[/php:1:82b8166c84]
Ten działa

Dzieki
xomer
11.09.2003, 09:49:54
I jeszcze jedno. Czy wiecie jak przerobić ten kodzik tak zeby było w adresie:
http://www.costam.pl/page?1&1
na przykładzie:
[php:1:0bf0abf588]<?php
<?
/*
$kat = kategoria, glowna pod-strona zapisane w pliki <nazwa_kategorii>/index.txt
$sub = pod-strona kategorii, zapisana w pliku <nazwa_kategorii>/<nazwa_podstrony>.txt
*/
$roz='.txt';
if(isset($HTTP_GET_VARS['kat'])&&!isset($HTTP_GET_VARS['sub']))
{
if(file_exists($HTTP_GET_VARS['kat'].'/index.txt')) include ($HTTP_GET_VARS['kat'].'/index.txt');
else include ('404.txt'); // zrob sobie taki pliczek z info o bledzie
}
if(isset($HTTP_GET_VARS['kat'])&&isset($HTTP_GET_VARS['sub']))
{
if(file_exists($HTTP_GET_VARS['kat'].'/'.$HTTP_GET_VARS['sub'].'.txt')) include ($HTTP_GET_VARS['kat'].'/'.$HTTP_GET_VARS['sub'].'.txt');
else include ('404.txt'); // zrob sobie taki pliczek z info o bledzie
}
?>[/php:1:0bf0abf588]
Jak to zrobić w kodzie:
[php:1:0bf0abf588]<?php
if(file_exists("katalog/".$_SERVER["QUERY_STRING"].".html"))
{
include("./katalog/".$_SERVER["QUERY_STRING"].".html");
}
else
{
include("home.html");
}
?>[/php:1:0bf0abf588]
spenalzo
11.09.2003, 09:49:55
Cytat
Ten działa

Dzieki
A czym ten sie różni od mojego - bo naprawdę nie widzę :?
spenalzo
11.09.2003, 09:50:44
Ja już nie mogę...
Weź uruchom mózg i pomyśl trochę!!! Nie możemy wszystkiego za Ciebie robić.
xomer
11.09.2003, 09:50:55
I jeszcze jedno. Czy wiecie jak przerobić ten kodzik tak zeby było w adresie:
http://www.costam.pl/page?1&1
na przykładzie:
[php:1:1ddd6e07c7]<?php
<?
/*
$kat = kategoria, glowna pod-strona zapisane w pliki <nazwa_kategorii>/index.txt
$sub = pod-strona kategorii, zapisana w pliku <nazwa_kategorii>/<nazwa_podstrony>.txt
*/
$roz='.txt';
if(isset($HTTP_GET_VARS['kat'])&&!isset($HTTP_GET_VARS['sub']))
{
if(file_exists($HTTP_GET_VARS['kat'].'/index.txt')) include ($HTTP_GET_VARS['kat'].'/index.txt');
else include ('404.txt'); // zrob sobie taki pliczek z info o bledzie
}
if(isset($HTTP_GET_VARS['kat'])&&isset($HTTP_GET_VARS['sub']))
{
if(file_exists($HTTP_GET_VARS['kat'].'/'.$HTTP_GET_VARS['sub'].'.txt')) include ($HTTP_GET_VARS['kat'].'/'.$HTTP_GET_VARS['sub'].'.txt');
else include ('404.txt'); // zrob sobie taki pliczek z info o bledzie
}
?>[/php:1:1ddd6e07c7]
Jak to zrobić w kodzie:
[php:1:1ddd6e07c7]<?php
if(file_exists("katalog/".$_SERVER["QUERY_STRING"].".html"))
{
include("./katalog/".$_SERVER["QUERY_STRING"].".html");
}
else
{
include("home.html");
}
?>[/php:1:1ddd6e07c7]
xomer
11.09.2003, 09:52:44
Cytat
Ja już nie mogę...
Weź uruchom mózg i pomyśl trochę!!! Nie możemy wszystkiego za Ciebie robić.
ale to ja sam prubowalem najpierw, usuwałem ")" itd... potem dopiero sie zwrucielem na forum. wiec nie wszystko.
wassago
11.09.2003, 09:53:25
Cytat
Cytat
Ten działa

Dzieki
A czym ten sie różni od mojego - bo naprawdę nie widzę :?
[php:1:44bb689e25]<?php
...
if {
...
{ // juz wiesz?? :wink:
...
?>[/php:1:44bb689e25]
pozdrawiam
xomer
11.09.2003, 09:54:05
Pozatym tu jest co dałem zupełnie inny kod. A ja niewiem jak na jego źródle zrobic ten co chce.
spenalzo
11.09.2003, 09:55:27
Dzięki wassago, nie zauważyłem :-) :-P
xomer
11.09.2003, 09:58:19
A to o co ja proszę, wogle jest mozliwe w tej metodzie includowania?
radzaw
11.09.2003, 10:05:12
no tak, do mojego kodziku tez wdarl sie maly blad - brak kropki
a oto nastepna podpowiedz :
[php:1:4f1c888c51]<?php
$tmp=explode("&",$_SERVER['QUERY_STRING']);
$kat=$tmp[0];
$podkat=(($tmp[1]) ? $tmp[1] : 'index');
$plik=$kat.'/'.$podkat.'.html';
include((@file_exists($plik)) ? $plik : "home.html");
?>[/php:1:4f1c888c51]
jezeli nie ma $podkat to $podkat='index'
PS. nie testowane na zwierzetach; jak cos nie dziala (a moze cos z nawiasami nie dzialac), bo pisze "na zywo", to radze pomyslec
xomer
11.09.2003, 10:15:53
Nie działa, ale nieważne. Dzieki wielkie za poświęcony czas.
Teraz mam kolejne pytanie. Dla mnie bardzo ważne. Sorx ze tak ide na latwizne. To pytanie jest skierowane dla profesjonalistów w php.
Czy istnieje kod aby w ten sposób co mi przedstawiliście, czyli przez kod kilka odpowiedzi wyżej(ten co mi przedstawił wassago) zamieniał z page.php?101 na 101,page.php (tak jak to jest w serwisach portalu Onet.pl)? Jeśli tak to jak on wygląda? Z góry dziękuje za poświęcony czas na odpowiedź na te pytanie :
spenalzo
11.09.2003, 10:19:39
[php:1:0b90981ae8]<?php
$id=$_SERVER["QUERY_STRING"];
echo "<a href="page,".$id.".php">Link</a>";
?>[/php:1:0b90981ae8]
:-)
xomer
11.09.2003, 10:23:23
Nooo, myślałem że nikt nie wie
Ale mi chodziło jak mozna zmienić to w tym kodzie który jest wyżej. Bo ja prubuje wstawić to sam do niego ale mi błędy wyświetla
spenalzo
11.09.2003, 10:26:10
Widze że bardzo Ci zależy na wyglądzie linków :-)
xomer
11.09.2003, 10:29:13
Też, ale bardzo mnie to interesuje. No więc?
spenalzo
11.09.2003, 10:33:15
Cytat
Też, ale bardzo mnie to interesuje. No więc?
No więc, pora sie czegoś nauczyć :-P
http://pl.php.net/manual/pl/ -> powinno Ci pomóc.
xomer
11.09.2003, 10:35:44
Hehe znam to. Właśnie tam przed chwila szukałem. Ale tam niema nic na temat budowy adresu tego co ja chce. Gdyby tam było to bym przecież nie pisał na forum. Więc zna ktoś taki kodzik albo umie przerobić?
spenalzo
11.09.2003, 10:41:42
Nie ma nic na temat budowy adresu, ale za to masz wszystko co jest potrzebne do tego. Reszta to własna praca + pomysł.
Wiem, że byś chciał, żeby było coś takiego:
[php:1:dddaabf368]<?php
create_address('101','page');
?>[/php:1:dddaabf368]
ale takie coś możesz samemu zrobić :-P
xomer
11.09.2003, 10:54:57
No dobra dzieki wam za pomoc

Właściwie to wystarczy mi to pierwsze rozwiązanie.
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.