Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Skrypt sprawdzający na jakiej podstronie jestem
Forum PHP.pl > Forum > Przedszkole
Giluś
Cześć, mam taki problem chciałbym sprawdzić przez PHP na jakiej aktualnie podstronie jestem, a następnie zmienić kod w PHP, przykład:
Jeśli jestem na stronie głównej = www.mojastrona.pl/index.php to mam taki kod:
  1. <div class="mnon"><a href="index.php">Strona Glowna</a></div>
  2. <div class="mnoff"><a href="konto.php">Moje Konto</a></div>
  3. <div class="mnoff"><a href="pomoc.php">Pomoc</a></div>
  4. <div class="mnoff"><a href="kontakt.php">Kontakt</a></div>

(zmienia się class - jest jest otworzona strona głowna to jest "mnon", a reszta mnoff
Jeśli jestem na podstronie kontakt.php to jest taki kod:
  1. <div class="mnoff"><a href="index.php">Strona Glowna</a></div>
  2. <div class="mnoff"><a href="konto.php">Moje Konto</a></div>
  3. <div class="mnoff"><a href="pomoc.php">Pomoc</a></div>
  4. <div class="mnon"><a href="kontakt.php">Kontakt</a></div>


Z samą zmianą kodu to sobie poradzę, ale zastanawia mnie jak sprawdzić na jakiej podstronie jestem aktualnie... ?
Calibri
Cześć.
Kod html który napisałeś sugeruje, że nie bazujesz na jednym pliku (index.php) - tylko że każda twoja strona/podstrona ma swój plik (Strona Główna to index.php, Konto to konto.php, itd).

Więc w tym wypadku nie potrzebujesz sprawdzać na jakiej podstronie jesteś i generować z automata kod. Wystarczy w każdym z tych plików wpisać "na sztywno" to co chcesz aby przechodząc z jednej strony na drugą miało być wyświetlane.


Jeżeli już chcesz sprawdzać na jakiej podstronie jesteś z automata, to albo:

a) tworzysz jeden plik index.php w którym będziesz miał menu:
  1. <div><a href="index.php">Strona Glowna</a></div>
  2. <div><a href="index.php?a=konto">Moje Konto</a></div>
  3. <div><a href="index.php?a=pomoc">Pomoc</a></div>
  4. <div><a href="index.php?a=kontakt">Kontakt</a></div>


i taki kod php
Kod
<?php
$a = (isset($_GET['a'])) ? htmlspecialchars($_GET['a']) : 'start';
switch($a)
{
case 'start':
// coś co ma być jak jesteś na stronie głównej
break;

case 'konto':
// coś co ma być jak jesteś w dziale konto.
break;

case 'pomoc':
// ...
break;

case 'kontakt':
// ...
break;
}
?>





albo cool.gif musisz zrobić translację adresów url, znaną z architektury modelu MVC. Ten link przeniesie cię do książki którą posiadam wersji papierowej (szczerze to jeszcze nie przejrzałem jej do końca - tylko z grubsza przewertowałem sprawdzając co tam ciekawego)

Tam jest takie coś że po wpisaniu np projekt.html kontroller sprawdza i tłumaczy adres na akcję php i ją wykonuje. Możliwe że poza MVC też da się zrobić - niewiem nie próbowałem.

3maj się. Pozdrawiam.
zamper
Możesz zrobić całą stronę w jednym pliku index.php i pokombinować coś z $_SERVER['PHP_SELF'] lub $_SERVER['SCRIPT_NAME'] biggrin.gif Jak masz każdą podstronę w innym pliku to zrób tak jak mówił ten nade mną biggrin.gif
Giluś
Chciałem zrobić np.: coś takiego:
  1. require_once('inc/function.php');


I tam było by coś takiego

  1. if (jakaś funkcja sprawdzająca na jakiej stronie jest == index.php ) {$txt = "class="mnon"";}
  2. elseif (jakaś funkcja sprawdzająca na jakiej stronie jest == konto.php ) {$txt = "class="mnon"";}

I mniej więcej coś takiego zrobić później w tym kodzie ustawić zmienna $txt i by wszystko śmigało...

Ale potrzebuje jakiś kod aby postawić warunek... że tam jest index.php czy tam konto.php
Czym to sprawdzić... www.mojadomena.pl/index.php - że tu jest index.php - jak by ktoś nie rozumiał..


Dzięki i pozdrawiam

Edit:
na localhost dobrze działa mi funkcja $_SERVER['PHP_SELF'] i $_SERVER['SCRIPT_NAME'] tu i tu wyświetla się np.: "/~d/konto.php" z całego adresu: "http://localhost/~d/konto.php"
Wiec jestem w domu praktycznie


zamper
Użyj
do przeglądania
  1. $_SERVER['SCRIPT_NAME']
. Zrob to mniej więcej tak:

  1. if(stristr($_SERVER['SCRIPT_NAME'], 'index.php')) {$class = '..';}
  2. else if(stristr($_SERVER['SCRIPT_NAME'], 'fsgdg.php')) {$class = '...';}
  3. else {}




Nie wiem czy dobrze napisałem kod (mogą być jakieś błędy więc daje link do przetłumaczonego już przez googla manuala biggrin.gif

stristr()

Cytat
Edit:
na localhost dobrze działa mi funkcja $_SERVER['PHP_SELF'] i $_SERVER['SCRIPT_NAME'] tu i tu wyświetla się np.: "/~d/konto.php" z całego adresu: "http://localhost/~d/konto.php"
Wiec jestem w domu praktycznie

$_SERVER['PHP_SELF'] i $_SERVER['SCRIPT_NAME'] to nie funkcje tylko tablice super globalne wink.gif

-----------------------------------------------------------------------------------------------------------------
Ja na twoim miejscu robił bym stronę w jednym pliku. Jest o wiele łatwiej ją potem modyfikować niż wszystko zmieniać w poru plikach tongue.gif
Jak nie wiesz jak takie coś zrobić to napisz na GG(22779936) wink.gif
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.