dundey
2.07.2003, 22:50:45
Mam taki oto problem:
Pisze sobie stronkę w php. Linki w menu mają następującą postać:
http://localhost/Projekt/index.php?page=felietony
W pliku index.php mam taki oto fragment kodu php:
[php:1:d8cd2972ec]<? if(!isset($page)) {
$page="index";
}
if(file_exists("strony/$page.inc")) {
include "strony/$page.inc";
} else {
echo "Strona niedostępna!";
} ?>[/php:1:d8cd2972ec]
Wszystkie podstrony (np. felietony.inc) mam umieszczone w katalogu strony.
I problem polega na tym, że za gdy będąc off-line, czli korzystając z
jakiegoś serwera (korzystawłem w Apache z php, teraz zainstalowałem FoxServ)
po kliknięciu na link ni pokazuje się treść owego pliku o rozszerzeniu *.inc,
tylko za każdym razem ostrzeżenie "Strona niedostępna!", a adres w polu, w
którym wpisuje się adresu pojawia się taki, jaki ma być, czyli:
http://localhost/Projekt/index.php?page=felietony
Więc dlaczego to nie działa!!!
Pomóżcie proszę!!!
Tylko nie piszcie "zainstaluj krasnala" !!!
spenalzo
2.07.2003, 22:56:50
Cytat
I problem polega na tym, że za gdy będąc off-line, czli korzystając z jakiegoś serwera
1. To off-line czy nie?!
2. Na pewno istnieje taki plik? Sprawdź rozszerzenia.
3. Spróbuj przeczytać
TO i zrobić tak:
[php:1:cd30937569]<?php
if(!empty($HTTP_GET_VARS["page"]))
{
$HTTP_GET_VARS["page"]="index";
}
if(file_exists("strony/".$HTTP_GET_VARS["page"].".inc"))
{
include "strony/".$HTTP_GET_VARS["page"].".inc";
}
else
{
echo "Strona niedostępna!";
}
?>
[/php:1:cd30937569]
Poza tym lepiej stosuj rozszerzenie .inc.php, ponieważ nie wszystkie serwery obsługują rozszerzenie .inc - wtedy wszystko widać na dłoni: hasła, loginy itd.
dundey
2.07.2003, 23:03:26
Już jest lepiej, bo działa jak klikam na linki
Tylko, że gdy jest taki adres:
http://localhost/Projekt/index.php
Pokazuje się takie coś
Warning: Undefined index: page in d:phpfoxservwwwprojektindex.php on line 49
Strona niedostępna!
Co teraz??
spenalzo
2.07.2003, 23:08:17
Zrób tak:
[php:1:69449eff2a]<?php
$page=$HTTP_GET_VARS["page"];
if(!empty($page))
{
$page="index";
}
if(file_exists("strony/".$page.".inc"))
{
include "strony/".$page.".inc";
}
else
{
echo "Strona niedostępna!";
}
?>
[/php:1:69449eff2a]
i powinno być OK.
dundey
2.07.2003, 23:10:46
Teraz wszedzie pisze strona niedostepna, a w indexie nadal to samo
!!
spenalzo
2.07.2003, 23:12:39
To zapodaj linię nr 49.
dundey
2.07.2003, 23:12:58
$page="index";
spenalzo
2.07.2003, 23:17:32
usuń z linii nr 3 (na tej stronie) wykrzyknik (!).
dundey
2.07.2003, 23:20:20
wszytsko dziala
tylko znowu to na indexie
Warning: Undefined index: page in d:phpfoxservwwwprojektindex.php on line 46
TO JEST INDEX.php
Czy $_GET['page'] tez zwraca ten blad?
Wydaje mi sie, ze masz wlaczone pokazywanie nawet bledow typu E_NOTICE w php.ini, bo one wlasnie takie rzeczy pokazuja...
jesli nie chcesz tego zmieniac to sprobuj tak:
[php:1:19016fe374]<?php
$page = (isset($_GET['page']))?$_GET['page']:"index";
if(file_exists("strony/".$page.".inc"))
{
include "strony/".$page.".inc";
}
else
{
echo "Strona niedostępna!";
}
?>[/php:1:19016fe374]
dundey
3.07.2003, 21:42:22
Wszystko działa, tylko, że w pliku index.php nadal sie pokazuje taki oto błąd:
Warning: Undefined index: page in d:phpfoxservwwwprojektindex.php on line 46
linia 46 to: $page=$HTTP_GET_VARS["page"];
Jeśli ktoś będzie umiał, bardzo proszę o pomoc!
Następnie jest taka oto sprawa:
Wszystkie strony mam umieszczone w katalogu "strony".
i w plików "liga" o rozszerzeniu *.inc chce zrobić
linki do innych stron (o tym samym rozszerzeniu) w katalogu
"strony/historia". I nie wiem jak ma wyglądać kod, który
powinienem wkleić do pliku "liga.inc", oraz jak powinna wyglądać
składnia linku. Podejrzewam, że coś chyba takiego:
<a href=index.php?page=liga&historia=1>plik 1</a>
Bardzo proszę o pomoc.
spenalzo
3.07.2003, 22:30:25
start -> uruchom
i wpisz "notepad c:windowsphp.ini"
potem odszukaj linijkę
error_reporting = E_ALL
i zamień na
error_reporting = E_ALL & ~E_NOTICE
amen
dundey
3.07.2003, 22:48:58
Tak własnie mam ustawione... więc
spenalzo
3.07.2003, 22:51:41
Ale tą pierwszą czy drugą linijkę?
Jak masz tą drugą to takie ostrzeżenia nie powinny się pojawiać.
KaMeLeOn
3.07.2003, 22:56:22
Jemu pojawia się ostrzeżenie (warning), a nie notice...
Oznacza, że nie zdefiniowano $HTTP_GET_VARS['page']...
dundey
3.07.2003, 22:57:55
wiec jak to zdefiniowac
spenalzo
3.07.2003, 22:59:23
Ja na próbę dałem sobie E_ALL i pojawiały się takie same błędy. PRzywróciłem tą drugą linijkę i zniknęły...
KaMeLeOn
3.07.2003, 23:01:05
Cytat
wiec jak to zdefiniowac

Zainteresuj się funkcją [manual:09b3ca6652]isset[/manual:09b3ca6652]... Na takie błędy jest niezawodna...
dundey
3.07.2003, 23:03:03
nie rozumiem......
KaMeLeOn
3.07.2003, 23:09:00
Jeśli przesyłasz jakąś zmienną w URL'u i robisz takie przypisanie musisz pilnować czy zawsze istnieje zmienna $HTTP_GET_VARS['page']. Jeśli na jakiejkolwiek stronie nie używasz jej to pojawia się tego typu warning oznaczający że po prostu nie została ona zdefiniowana...
Można się przd tym zabezpieczyć funkcją [manual:2e38306736]isset[/manual:2e38306736].
Np.
[php:1:2e38306736]<?php
$page = isset($HTTP_GET_VARS['page']) ? $HTTP_GET_VARS['page'] : 1;
?>[/php:1:2e38306736]
Powyższe oznacza: jeśli istnieje zmienna page w URL'u przypisz jej wartość do zmiennej $page, jeśli nie przypisz np. 1...
dundey
3.07.2003, 23:11:00
w pliku liga.inc dodaj linijkę
include("historia/".$HTTP_GET_VARS["historia"]."inc");
i linki przekazujesz tak
<a href=index.php?page=liga&historia=1>plik 1</a>
Sorry, sorry - nie kapuje!!
Cytat
w pliku liga.inc dodaj linijkę
include("historia/".$HTTP_GET_VARS["historia"]."inc");
i linki przekazujesz tak
<a href=index.php?page=liga&historia=1>plik 1</a>
Sorry, sorry - nie kapuje!!

do siebie piszesz??
Sprawdzales rozwiazanie, ktore podalem Ci na 1 stronie (
tu)
bo odnosze wrazenie, ze go nawet nie przeczytales, bo dalej piszesz o swojej wersji skryptu.
spenalzo
4.07.2003, 00:22:03
Masz plik liga.inc i wstawiasz do niego linijkę która Ci podałem. Tu nie ma więcej co wyjaśniać!!!
Update: FiDO - rozwiązanie podałem mu na GG stąd taka forma :-)
dundey
4.07.2003, 12:07:48
Czyli mam teraz taki kod tak?
[php:1:886e4f989a]
<?php
$page=$HTTP_GET_VARS["page"];
if(empty($page))
{
$page="index";
}
if(file_exists("historia/".$page.".inc"))
{
include("historia/".$HTTP_GET_VARS["historia"]."inc");
}
else
{
echo "Strona niedostępna!";
}
?>
[/php:1:886e4f989a]
A link taki:
<a href=index.php?page=liga&historia=1>plik 1</a>
To nie wchodzi!!!
Zaraz po otworzeniu pliku liga.inc jest napis: "Strona niedostepna!"
Więc...
P.S. Metoda KaMeLeOn'a nie pokazuje błędu, ale i też nie otwiera podstron!
?>[/php]
KaMeLeOn
4.07.2003, 13:10:28
Hmm...
Zastanawiam się tylko jak ponazywałeś pliki i gdzie są
umieszczone, bo taka informacja byłaby istotna...
1.
[php:1:b56f84b49b]<?php
$page = ( isset($HTTP_GET_VARS['page']) && !empty($HTTP_GET_VARS['page']) ) ? $HTTP_GET_VARS['page'] : 'index';
?>[/php:1:b56f84b49b]
2. Domyślam się, że domyślna strona "index" jest w katalogu głównym...
[php:1:b56f84b49b]<?php
if( file_exists($page . ".inc") )
{
include($page . "inc");
}
else
if( file_exists("historia/".$page.".inc") )
{
include("historia/".$HTTP_GET_VARS["historia"]."inc");
}
else
{
echo "Strona niedostępna!";
}
?>[/php:1:b56f84b49b]
dundey
4.07.2003, 13:15:17
index.php -> główny katalog
index.inc -> katalog strony
W pliku liga.inc chce dodać linki, żeby otywierały się strony z katalogu "strony/historia"
Więc jaki i gdzie dać kod?
KaMeLeOn
4.07.2003, 13:26:06
[php:1:e7c3289012]<?php
$page = ( isset($HTTP_GET_VARS['page']) && !empty($HTTP_GET_VARS['page']) ) ? $HTTP_GET_VARS['page'] : 'index';
if( file_exists('strony/' . $page . '.inc') )
{
if( ($page == 'liga') && file_exists('historia/' . $HTTP_GET_VARS['historia'] . '.inc') )
{
include('historia/' . $HTTP_GET_VARS['historia'] . '.inc');
}
else
{
include('strony/' . $page . '.inc');
}
}
else
{
echo "Strona niedostępna!";
}
?>[/php:1:e7c3289012]
Resztę już powinieneś sobie wykombinować...
dundey
4.07.2003, 14:02:40
Heh...
Teraz znowu taki błąd:
Parse error: parse error in d:phpfoxservwwwprojektstronyliga.inc on line 2
Druga linia to:
[php:1:7ec27f2412]
$page = ( isset($HTTP_GET_VARS['page']) ) && !empty($HTTP_GET_VARS['page']) ) ?[/php:1:7ec27f2412]
Nie znam się dobrze na php, więc sam tego nie wykombinuje. oczekuje podania mi tego na tacy!!! Po to tu napisałem, żeby sie tego dowiedzieć! Gdybym umiał to nawet bym tu nie pisał!!
dundey
4.07.2003, 14:13:29
Kurcze, bardzo mi na tym zalezy...
Bardzo prosze o pomoc!!!
dundey
4.07.2003, 14:57:48
Dzięki Kameleonowi problem został zażegnany
Wielkie dzięki
dundey
4.07.2003, 19:03:51
[php:1:58c06017b2]<?php
$page = ( isset($HTTP_GET_VARS['page']) && !empty($HTTP_GET_VARS['page']) ) ? $HTTP_GET_VARS['page'] : 'index';
if( file_exists('linki/' . $page . '.inc') )
{
if( $page == 'liga' )
{
if( isset($HTTP_GET_VARS['historia']) && file_exists('linki/historia/' . $HTTP_GET_VARS['historia'] . '.inc') )
{
include('linki/historia/' . $HTTP_GET_VARS['historia'] . '.inc');
}
else
{
include('linki/' . $page . '.inc');
}
}
else
{
include('linki/' . $page . '.inc');
}
}
else
{
echo "Strona niedostępna!";
}
?>[/php:1:58c06017b2]
Potrzebuję ten kod przerobić tak, aby otwierał pliki w katalogach umieszczonych w katalogu linki. Chce, aby obsługiwał jeszcze następujące katalogi:
- foto
- ludzie
- publicystyka
spenalzo
4.07.2003, 19:14:17
Nie, to już lekka przesada.
dundey
5.07.2003, 15:32:34
Poprawi ktos dla mnie ten kod?
Proszę...
members_of_mayday
9.07.2003, 19:18:53
[php:1:2af75058db]<?php
$rozsz=".php";
if(file_exists("poczta/$akcja$rozsz")){ //sprawdza czy plik do wstawienia istnieje
include("poczta/$akcja$rozsz");
}
else {
include("poczta/brak$rozsz"); // jesli nie ma pliku, lub parametru wstawia text dla strony glównej
}
?>[/php:1:2af75058db]
tak jest ok
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.