+NAVIGACJA

  • Rejestracja: dni
  • Ostatnio: dni
0

Hmn mam coś takiego (tabelkę ;))


|link1 | |
|link2 | |
|link3 | miejsca na wyświetlanie linków |
|link4 | |
|link5 | |
| (...) | |
||_____________________|

i teraz tak mam sobie zmienną $link (na przykład) w komórce gdzie jest "miejsce do wyświetlania linków" chciałbym zrobić różną zawartość w zależności od wartości zmiennej $link,która z kolei zmieniałaby się po kliknięciu w link....taki sposób nawigacji jest mi potrzebny ( nie wiem,jak się normalnie "nawiguje" w php [może tak ;)] w każdym razie prosiłbym o pomoc by

w "miejsa na wyświetlanie linków" można było wyświetlić inne.W php całość.

Hmn miałem pomysł coś w tym <ort>stulu </ort>( => tych linków jest AŻ 5 ;-) )

po prawej

<? if $link=="1" include("1.php"); if $link=="2" include("2.php"); ?>

i tak do końca... nie wiem czy to działa ,ale prosiłbym kogoś o pomoc by to działało ;-) A tak poza tym to na tym kończy się moja inwencja a jeszcze potrzebuje napisać coś by po kliknięciu w link zmieniała się ta wartość na taką jak chce.

Może onclick="<? &link="1" ?>" ?? można tak? lub coś w tym <ort>stulu </ort>byle działało .... PROSZĘ O POOOMOOOC :) bardzo uprzejmie :)
Shin ^^'

PS. Rysunek jakby ktoś nie <ort>zauwarzył </ort>jest schematyczny i jest w nim błąd stylistyczny,ale mniejsza o niego ;)

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
<?php 
  include($link.".php");
?>

tylko musisz się zabezpieczyć przed podaniem nieprawidłowych wartości $link, w przeciwnym razie będzie można otworzyć pliki, które niekoniecznie mają zostać otwarte.

a co do onclick="<? &link="1" ?>" [rotfl]

onclick="window.location="stronka.php?link=1"" - tylko po co tak, przecież jest to jednoznaczne z < a href="stronka.php?link=1" >

  • Rejestracja: dni
  • Ostatnio: dni
0

Aj dzięki Ci bardzo to naprawde działa ;-)))) Właśnie oto mi chodziło.
Tylko zostaje jeden mały problem ... Mianowicie wszystkie linki włączają się ok tylko zaraz po wejściu na strone w miejscu ,gdzie mają być wyświetlane pisze

"Warning: Failed opening '.php' for inclusion (include_path='.; \apache\includes;\apache\htdocs;\apache\htdocs\phpmyadmin') in C:\apache\htdocs\nielog.php on line 36"

hmn błąd jest dla mnie dziwny ,ale ma chyba coś wspólnego z tym ,że na "dzieńdobry" każe mu wyświetlać zmienną link, która jeszcze nie jest określona ( bo nie klikneliśmy linka?) Tylko jak ją sobie określiłem to potem mogę klikać po linkach do końca mojego życia ;) i NIC. Jak tego dokonać by po władowaniu nie było tam błedu tylko np plik ogolnie.php ,a po kliknieciu w link zmienial sie na jakis tam inny .php?
Jeszcze tylko to ;-)

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
0

popatrz sobie do pliku php.ini

SE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1103
0
Kopiuj
if($link=='') include("jakis_index.php");

ew. jeszcze na takiej zasadzie obsługę błędów:

Kopiuj
if( ( $link<>'' ) && ( !file_exists($link) ) ) {
include("strona_z_tekstem_o_bledzie");
//ew. echo 'Nie ma takiej strony';
}

Mały OT, ale ważny:
To bylo podane na Twoim przykładzie ja jednak radzę używać zmiennych superglobalnych - $_GET['link'], bo potem dodasz sobie formularze, metodą post - i jeszcze zaczniesz sprawdzać taką samą metodą jak GET'y to się pogubisz, a juz nie mówie o tym, że Ci się będą mieszały wyniki jak w jakimś formularzu użyjesz nazwy link :). Uprzedzając pytania - $_POST['nazwa_pola'] :).

-- Przykład z mojej strony --

Tworzysz katalog podstrony w nim robisz pliki .php odpowiadające zmiennej z $_GET['link'] czyli np. strona.php?link=o_mnie, będzie próbowało zincludować podstrony/o_mnie.php. Skrypt ma prostą obsługę strony 404 :-) i zabezpiecza przed zinclude'owaniem ważnych katalogów - /var/ etc... w przykładzie bez takiego zabezpieczenia włamywacz może użyć /../ do przejścia katalog niżej aż do / a następnie do jakiego chce folderu systemu... (oczywiście zależnie od zabezpieczenia serwera przez administratora.

Kopiuj
if($_GET['link']<>'') {
 if(!file_exists("podstrony/{$_GET['link']}.php")) {
  echo 'Błąd szukana przez Ciebie strona nie istnieje!';
 } else {
  if( (!eregi("/", $_GET['link'])) && (!eregi("", $_GET['link'])) )
   include("podstrony/{$_GET['link']}.php"); else Header('Location: index.php');
 }
} else {
 // skoro pytaliśmy się czy jest różny od '' to teraz będzie tylko '' :-)
 echo ' tekst strony głównej lub include("podstrony/glowna.php") lub co tam sobie wymarzysz :-)';
}

PS. Pisane z głowy ale powinno działać :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.