Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] index.php z domyslną załadowaną podstroną
Forti
post 4.05.2014, 18:22:56
Post #1





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


Witam serdecznie!

PHP uczę się od dzisiaj można powiedzieć. Zamierz rozbudowywać swoją stronę w oparciu własnie o ten język.
I niestety, już pierwszego dnia muszę zadać pytanie na forum. Szukałem odpowiedzi, jednak nawet nie wiem do końca gdzie i jak jej poszukiwać.

Mam na stronie pewne menu:
<li><a href="index.php?inc=news">Aktualne</a></li>
<li><a href="index.php?inc=zzz">plik nie istniejący</a></li>

następnie posiadam taki o to krótki strypcik:

<?PHP


@$strona=$_GET['inc'];

if (file_exists('inc/'.$strona.'.php'))
include('inc/'.$strona.'.php');
else
include('inc/error.php');


?>

I myślę, że nie którzy już wiedzą o co mi chodzi. Gdy klikamy w link, który ma załadować nie istniejący w plik w miejscu $strona, pojawia nam się strona nazwana error.php. Do tego momentu działa to idealnie. Jednak gdy wpiszę swój adres, sam, pojędynczy index.php ładuje mi stronę error.php - co oczywiście wynika ze skryptu, wszystko działa prawidłowo.

Chciałbym to rozwiązać w taki sposób, aby domyslnie samo index.php ładowało się wraz z news.php, a dopiero po wybraniu nie istniejącego linku index.php?inc=zzz ładowało domyslnie error.php.

Przyznam szczerze, próbowałem różnych metod, jednak wszystko bezskutecznie.

Pozdrawiam
Forti


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
mar1aczi
post 4.05.2014, 18:37:31
Post #2





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


Np.
Kod
@$strona=$_GET['inc'];

if (isset($_GET['inc'])) {
    if (file_exists('inc/'.$strona.'.php'))
        include('inc/'.$strona.'.php');
    else
        include('inc/error.php');
}
else {
    //załaduj stronę główną
    $strona="news";
    include('inc/'.$strona.'.php');
}


Ten post edytował mar1aczi 4.05.2014, 18:39:41


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
adeptofvoltron
post 4.05.2014, 18:39:54
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 2
Dołączył: 4.09.2013

Ostrzeżenie: (0%)
-----


używaj tagów php na forum

Skorzystaj z funkcji empty oraz isset

  1. isset($_GET['inc']) and !empty($_GET['inc'])


isset zwraca czy zmienna istnieje czy nie.
!empty zwróci ci true jeśli zmienna bedzie miała sensowną wartość.

@edit:
to co napisał przedmówca nie zadziała poprawnie jak ktoś wyśle zapytanie na adres
"index.php?inc="
bo zmienna $_GET['inc'] będzie miała wartość pustego łańcucha, ale będzie zadeklarowana.

Ten post edytował adeptofvoltron 4.05.2014, 18:42:18
Go to the top of the page
+Quote Post
Forti
post 4.05.2014, 18:49:30
Post #4





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


Rozwiązanie mar1aczi również próbowałem. Działa dobrze ale często wywala błąd i bez powodu pokazuje stronę error.php nawet gdy link jest prawidłowy.

Z tym esset i empty muszę poczytać, szczerze to nie wiem jak to umiejscowić w kodzie.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
mar1aczi
post 4.05.2014, 18:53:12
Post #5





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


Cytat(adeptofvoltron @ 4.05.2014, 19:39:54 ) *
@edit:
to co napisał przedmówca nie zadziała poprawnie jak ktoś wyśle zapytanie na adres
"index.php?inc="
bo zmienna $_GET['inc'] będzie miała wartość pustego łańcucha, ale będzie zadeklarowana.

i zadziała funkcja file_exists, a że pliku nie ma to zostanie załadowany "error.php", smile.gif czy się mylę?

Ten post edytował mar1aczi 4.05.2014, 18:53:46


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
adeptofvoltron
post 4.05.2014, 18:57:21
Post #6





Grupa: Zarejestrowani
Postów: 51
Pomógł: 2
Dołączył: 4.09.2013

Ostrzeżenie: (0%)
-----


mar1aczi przepraszam. masz rację.

forti to jakie ci blędy sypie?
Go to the top of the page
+Quote Post
Forti
post 4.05.2014, 18:57:56
Post #7





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


hm... faktycznie, twój schemat działa prawidłowo. Szybciej wyskakiwał błąd po wpisaniu index.php?inc=. Dzięki za pomoc, widać dużo muszę się nauczyć jeszcze, a już ambicje mam na system logowania i uprawnień do dodawania i komentowania 'newsów'.


@adeptofvoltron

po wpisaniu index.php?inc= a następnie wybraniu linku istniejącego wywalało error.php, jednak kolega chyba coś zmienił w kodzie, obecna forma działa prawidłowo z funkcją isset i file_exists.

Ten post edytował Forti 4.05.2014, 18:59:31


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 21:28