Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Nowy schemat adresu.
Forum PHP.pl > Forum > PHP
xomer
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
Najprostszą metodą to:
[php:1:0adc93cb60]<?php
include("./katalog/".$_SERVER["QUERY_STRING"].".html");
?>[/php:1:0adc93cb60]
xomer
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
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
proponuję test:
[php:1:fba35a4b74]<?php
echo ("./katalog/".$_SERVER["QUERY_STRING"].".html");
?>[/php:1:fba35a4b74]
spenalzo
Jeżeli masz wersję php < 4.1.0 to zamiast $_SERVER musisz użyć $HTTP_SERVER_VARS.
xomer
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
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
[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
Teraz mi wyświetla błąd:
Cytat
Parse error: parse error, unexpected ')' in /index.php on line 4
spenalzo
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
A teraz błąd:
Cytat
Parse error: parse error, unexpected T_ELSE in /index.php on line 6
wassago
[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
to moze tak winksmiley.jpg
[php:1:92d937b29f]<?php
$ktora=$_SERVER['QUERY_STRING'];
include((@file_exists($ktora.".html")) ? $ktora.".html" : "glowna.html");
?>[/php:1:92d937b29f]
xomer
Tez nie, moze lepiej powrucic do poprzedniego kodu. Tylko co tam trzeba zmienic zeby chodzilo?
xomer
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 smile.gif Dzieki
xomer
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
Cytat
Ten działa smile.gif Dzieki

A czym ten sie różni od mojego - bo naprawdę nie widzę :?
spenalzo
Ja już nie mogę...
Weź uruchom mózg i pomyśl trochę!!! Nie możemy wszystkiego za Ciebie robić.
xomer
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
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
Cytat
Cytat
Ten działa smile.gif 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
Pozatym tu jest co dałem zupełnie inny kod. A ja niewiem jak na jego źródle zrobic ten co chce.
spenalzo
Dzięki wassago, nie zauważyłem :-) :-P
xomer
A to o co ja proszę, wogle jest mozliwe w tej metodzie includowania?
radzaw
no tak, do mojego kodziku tez wdarl sie maly blad - brak kropki winksmiley.jpg
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 winksmiley.jpg
xomer
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 : biggrin.gif
spenalzo
[php:1:0b90981ae8]<?php
$id=$_SERVER["QUERY_STRING"];
echo "<a href="page,".$id.".php">Link</a>";
?>[/php:1:0b90981ae8]
:-)
xomer
Nooo, myślałem że nikt nie wie tongue.gif

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 sad.gif
spenalzo
Widze że bardzo Ci zależy na wyglądzie linków :-)
xomer
Też, ale bardzo mnie to interesuje. No więc?
spenalzo
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
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
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
No dobra dzieki wam za pomoc biggrin.gif 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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.