Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Skrypt sprawdzający na jakiej podstronie jestem
Giluś
post 29.07.2011, 09:17:27
Post #1





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


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... ?
Go to the top of the page
+Quote Post
Calibri
post 29.07.2011, 09:51:49
Post #2





Grupa: Zarejestrowani
Postów: 26
Pomógł: 4
Dołączył: 22.07.2011

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


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.

Ten post edytował Calibri 29.07.2011, 09:52:30
Go to the top of the page
+Quote Post
zamper
post 29.07.2011, 11:12:06
Post #3





Grupa: Zarejestrowani
Postów: 156
Pomógł: 17
Dołączył: 11.12.2010
Skąd: Częstochowa

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


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


--------------------
GG(22779936)
Go to the top of the page
+Quote Post
Giluś
post 29.07.2011, 11:29:43
Post #4





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


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




Ten post edytował Giluś 29.07.2011, 11:33:53
Go to the top of the page
+Quote Post
zamper
post 29.07.2011, 11:42:59
Post #5





Grupa: Zarejestrowani
Postów: 156
Pomógł: 17
Dołączył: 11.12.2010
Skąd: Częstochowa

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


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

Ten post edytował zamper 29.07.2011, 11:49:40


--------------------
GG(22779936)
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: 12.06.2025 - 13:15