Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z przekierowaniem do podstrony
Forum PHP.pl > Forum > PHP
neneth
Witam, dziękuję za wszelką pomoc udzieloną na forum. Mam teraz problem innego typu. Na stronie mam dwa rodzaje menu boczne i górne. Do tej pory używałam kodu php zamieszczonego w divie treść, który mnie przekierował na odpowiednią podstronę. Teraz jednak ten kod nie działa, nie mogę wkleić tekstu na stronę ani nic skasować. Czym to może być spowodowane. Chciałabym, aby nadal można było zamieszczać teksty w divie (u mnie treść).



<div id="mti" >
<div id="menupionowe" >
<dl id="menuboczne" >
<span style="color:#0000ff"><b><dt>Diety ró¿ne<span></b></dt>
<dd><a href="?page=dieta_odchudzajaca" style="text-decoration: none;"><span style="color:#0000ff">odchudzaj¹ca</a></dd>
<dd><a href="?page=dieta_1000" style="text-decoration: none;"><span style="color:#0000ff">1000 kalorii</a></dd>
<dd><a href="?page=kopenhaska" style="text-decoration: none;"><span style="color:#0000ff">kopenhaska</a></dd>
<dd><a href="?page=anderson" style="text-decoration: none;"><span style="color:#0000ff">Andersona</a></dd>
<dd><a href="?page=hay" style="text-decoration: none;"><span style="color:#0000ff">Hay'a</a></dd>
<dd><a href="?page=kwasniewski" style="text-decoration: none;"><span style="color:#0000ff">Kwaœniewskiego</a></dd>
<dd><a href="?page=cambridge" style="text-decoration: none;"><span style="color:#0000ff">Cambridge</a></dd>
<dd><a href="?page=gerson" style="text-decoration: none;"><span style="color:#0000ff">Gersona</a></dd>
<dd><a href="#" style="text-decoration: none;"><span style="color:#0000ff">diety dr Budwig</a></dd>
<dd><a href="#" style="text-decoration: none;"><span style="color:#0000ff">Dukana</a></dd>
<dd><a href="?page=morze" style="text-decoration: none;"><span style="color:#0000ff">œródziemnomorska</a></dd>
<dd><a href="?page=southbeach" style="text-decoration: none;"><span style="color:#0000ff">South-Beach</a></dd>
<dd><a href="?page=atkins" style="text-decoration: none;"><span style="color:#0000ff">Atkinsa</a></dd>
<dd><a href="?page=niskocholesterolowa" style="text-decoration: none;"><span style="color:#0000ff">niskocholesterolowa</a></dd>
<dd><a href="?page=wapn" style="text-decoration: none;"><span style="color:#0000ff">wysokowapniowa</a></dd>
<dd><a href="?page=sod" style="text-decoration: none;"><span style="color:#0000ff">niskosodowa</a></dd>
<dd><a href="?page=hollywood" style="text-decoration: none;"><span style="color:#0000ff">hollywoodzka</a></dd>
<dd><a href="?page=niskoenergetyczna" style="text-decoration: none;"><span style="color:#0000ff">niskoenergetyczna</a></dd>
<dd><a href="?page=lekkostrawna" style="text-decoration: none;"><span style="color:#0000ff">lekkostrawna</a></dd>
<dd><a href="?page=makrobiotyka" style="text-decoration: none;"><span style="color:#0000ff">makrobiotyczna</a></dd>
<dd><a href="?page=mayr" style="text-decoration: none;"><span style="color:#0000ff">Mayra</a></dd>
<dd><a href="?page=bircher" style="text-decoration: none;"><span style="color:#0000ff">Birchera</a></dd>
<dd><a href="?page=evers" style="text-decoration: none;"><span style="color:#0000ff">Eversa</a></dd>
<dd><a href="?page=chiny" style="text-decoration: none;"><span style="color:#0000ff">chiñska g³odówka</a></dd>
<dd><a href="?page=1200kcal" style="text-decoration: none;"><span style="color:#0000ff">1200 kalorii (biurowa)</a></dd>
<dd><a href="?page=celulit" style="text-decoration: none;"><span style="color:#0000ff">antycelulitowa</a></dd>
<dd><a href="?page=stres" style="text-decoration: none;"><span style="color:#0000ff">antystresowa</a></dd>
<dd><a href="?page=blekitna" style="text-decoration: none;"><span style="color:#0000ff">b³êkitna</a></dd>
<dd><a href="?page=czerwona" style="text-decoration: none;"><span style="color:#0000ff">czerwona</a></dd>
<dd><a href="?page=fiolet" style="text-decoration: none;"><span style="color:#0000ff">fioletowa</a></dd>
<dd><a href="?page=zielona" style="text-decoration: none;"><span style="color:#0000ff">zielona</a></dd>
<dd><a href="?page=zolta" style="text-decoration: none;"><span style="color:#0000ff">¿ó³ta</a></dd>
<dd><a href="?page=blyskawiczna" style="text-decoration: none;"><span style="color:#0000ff">b³yskawiczna</a></dd>
<dd><a href="?page=diamond" style="text-decoration: none;"><span style="color:#0000ff">Diamndów</a></dd>
<dd><a href="?page=france" style="text-decoration: none;"><span style="color:#0000ff">Franc Aubry</a></dd>
<dd><a href="?page=francuska" style="text-decoration: none;"><span style="color:#0000ff">francuska</a></dd>
<dd><a href="?page=hinduska" style="text-decoration: none;"><span style="color:#0000ff">hinduska</a></dd>
<dd><a href="?page=kekwicka" style="text-decoration: none;"><span style="color:#0000ff">kekwicka</a></dd>
<dd><a href="?page=ketogeniczna" style="text-decoration: none;"><span style="color:#0000ff">ketogeniczna</a></dd>
<dd><a href="?page=montignac" style="text-decoration: none;"><span style="color:#0000ff">Motignaca</a></dd>
<dd><a href="?page=kosci" style="text-decoration: none;"><span style="color:#0000ff">na mocne koœci</a></dd>
<dd><a href="?page=redukcyjna" style="text-decoration: none;"><span style="color:#0000ff">redukcyjna</a></dd>
<dd><a href="?page=rownowaga" style="text-decoration: none;"><span style="color:#0000ff">zrównowa¿ona</a></dd>
<dd><a href="?page=bomba_witaminowa" style="text-decoration: none;"><span style="color:#0000ff">bomba witaminowa</a></dd>


<div id="tk" >
<div id="tresc" >
<?php
$page = (isset($_GET['page']) ? $_GET['page'] : "");
$name = "$page.php";
if(file_exists(basename($name))){
include($name);
}else{
echo'Strona w budowie';
}
?>
</div>
Jakie są inne sposoby tworzenia przekierowań do podstron, żeby zadziałały? Proszę o pomoc.
piotr94
http://webm.wordpress.com/2007/08/04/przek...ony-6-sposobow/
na 6 sposobów biggrin.gif
Google nie boli: http://www.google.pl/search?q=przekierowan...lient=firefox-a 3-ci link i masz odpowiedź
neneth
Cytat(piotr94 @ 22.07.2010, 10:10:25 ) *


Już to przerobłam i nic niestety nie pomogło. Jeśli ktoś będzie uprzejmy podać mi rozwiązanie, bo normalnie do tej proy wszystko działało. Nie wiem, dlaczego nic nie chce zaskoczyć teraz
piotr94
1. umieść kod w znacznikach
2. w kodzie który podałeś nie ma w ogóle przekierowania
3. NIGDY nie includuj z $_GET, bo ktoś Ci się włamie i będziesz miał fajerwerki biggrin.gif
4. tam masz normalnie wszędzie href="", nie wiem po co Ci przekierowania i mam nadzieję, że nie pomyliłeś przekierowania z odnośnikiem...
neneth
piotr94, mógłbyć mi napisać w takim razie, jak powinien wyglądać kod, bo do tej pory mój sposób wstawiania podstron działał i nie wiem, jak to przerobić, żeby znów było dobrze. Jestem początkującym webmasterem i brdzo proszę o pomoc.
piotr94
  1. <span style="color:#0000ff"><b><dt>Menu<span></b></dt>
  2. <dd><a href="?page=strona1" style="text-decoration: none;"><span style="color:#0000ff">menu 1</a></dd>
  3. <dd><a href="?page=strona3" style="text-decoration: none;"><span style="color:#0000ff">ta strona nie istnieje</a></dd>
  4. <dd><a href="?page=strona2" style="text-decoration: none;"><span style="color:#0000ff">menu 2</a></dd><hr />
  5. <?php
  6. switch($_GET['page']){
  7. case 'strona1':
  8. $name='strona1.php';
  9. break;
  10. case 'strona2':
  11. $name='strona2.php';
  12. break;
  13. default:
  14. $name='budowa.php';
  15. break;
  16. }
  17. if(file_exists('strony/'.$name)){
  18. include('strony/'.$name);
  19. }else{
  20. echo'Strona w budowie';
  21. }
  22. ?>

ja bym to zrobił tak (u mnie to działa, strony masz w folderze strony, switch zabezpiecza przed nieautoryzowanym przeglądaniem serwera, wiem co mówię, bo sam kiedyś robiłem menu tak jak Ty i się na tym mocno przejechałem...)
PS. oryginalny kod u mnie tez działał, być może problem tkwi w innym miejscu...
neneth
Cytat(piotr94 @ 22.07.2010, 11:58:51 ) *
  1. <span style="color:#0000ff"><b><dt>Menu<span></b></dt>
  2. <dd><a href="?page=strona1" style="text-decoration: none;"><span style="color:#0000ff">menu 1</a></dd>
  3. <dd><a href="?page=strona3" style="text-decoration: none;"><span style="color:#0000ff">ta strona nie istnieje</a></dd>
  4. <dd><a href="?page=strona2" style="text-decoration: none;"><span style="color:#0000ff">menu 2</a></dd><hr />
  5. <?php
  6. switch($_GET['page']){
  7. case 'strona1':
  8. $name='strona1.php';
  9. break;
  10. case 'strona2':
  11. $name='strona2.php';
  12. break;
  13. default:
  14. $name='budowa.php';
  15. break;
  16. }
  17. if(file_exists('strony/'.$name)){
  18. include('strony/'.$name);
  19. }else{
  20. echo'Strona w budowie';
  21. }
  22. ?>

ja bym to zrobił tak (u mnie to działa, strony masz w folderze strony, switch zabezpiecza przed nieautoryzowanym przeglądaniem serwera, wiem co mówię, bo sam kiedyś robiłem menu tak jak Ty i się na tym mocno przejechałem...)
PS. oryginalny kod u mnie tez działał, być może problem tkwi w innym miejscu...

Ja mam za kaażdym razem dodawać ten fragment kodu? case: 'strona 1': $name='strona1.php' aż do 'strona70.php?' pytam dla pewności, bo siedzię nad tym już kilka godzin i odchodzę od zmysłów a zależy mi na czasie. Proszę odpowiedz, piotr94.
case 'strona1':
$name='strona1.php';
break;
case 'strona2':
$name='strona2.php';
break;
case 'strona70.php:
$name=strona70.php;
piotr94
tak, ewentualnie można szybciej i prościej:
  1. <span style="color:#0000ff"><b><dt>Menu<span></b></dt>
  2. <dd><a href="?page=strona1" style="text-decoration: none;"><span style="color:#0000ff">menu 1</a></dd>
  3. <dd><a href="?page=strona3" style="text-decoration: none;"><span style="color:#0000ff">ta strona nie istnieje</a></dd>
  4. <dd><a href="?page=strona2" style="text-decoration: none;"><span style="color:#0000ff">menu 2</a></dd><hr />
  5. <?php
  6. $dozwolone=array('strona1','strona2');
  7. if(in_array($_GET['page'],$dozwolone)){
  8. $name="$_GET[page].php";
  9. }else{
  10. $name='budowa.php';
  11. }
  12. if(file_exists('strony/'.$name)){
  13. include('strony/'.$name);
  14. }else{
  15. echo'Strona w budowie';
  16. }
  17. ?>

tu trzeba tylko dodawać wartości do tablicy $dozwolone
neneth
Cytat(piotr94 @ 22.07.2010, 12:24:30 ) *
tak, ewentualnie można szybciej i prościej:
  1. <span style="color:#0000ff"><b><dt>Menu<span></b></dt>
  2. <dd><a href="?page=strona1" style="text-decoration: none;"><span style="color:#0000ff">menu 1</a></dd>
  3. <dd><a href="?page=strona3" style="text-decoration: none;"><span style="color:#0000ff">ta strona nie istnieje</a></dd>
  4. <dd><a href="?page=strona2" style="text-decoration: none;"><span style="color:#0000ff">menu 2</a></dd><hr />
  5. <?php
  6. $dozwolone=array('strona1','strona2');
  7. if(in_array($_GET['page'],$dozwolone)){
  8. $name="$_GET[page].php";
  9. }else{
  10. $name='budowa.php';
  11. }
  12. if(file_exists('strony/'.$name)){
  13. include('strony/'.$name);
  14. }else{
  15. echo'Strona w budowie';
  16. }
  17. ?>

tu trzeba tylko dodawać wartości do tablicy $dozwolone

czyli to ma wyglądać w ten sposób: $dozwolone=70 czy $dozwolone70 ? bo nigdy się nie spotkałam z takim kodem
piotr94
powinno być tak:
  1. $dozwolone=array('strona1','strona2','strona3','strona70','stronaX');

czyli mówiąc łopatologicznie dodajesz każdą następną stronę w cudzysłowach oddzieloną przecinkiem od poprzedniej...
in_array
array
EDIT:
kiedyś mnie pomagano, teraz poczuwam się do pomocy innym
neneth
Dziękuję za odpowiedź. Bardzo mi pomogłeś

piotr94, a czy ten numery stron należy dodać w dwóch miejscach czy tylko w jednym?

Wkleiłam ten kod, ale nie chce wyświetlić żadnego tekstu. Gdzie robię błąd?

<?php
$dozwolone=array('strona1','strona2','strona3','strona4','strona5','strona6','strona7','strona8','strona9','strona10','strona11','strona12','strona13','strona14','strona15','strona16','strona17','strona18','strona19','strona20','strona21','strona22','strona23','strona24','strona25','strona26','strona27','strona28','strona29','strona30','strona31','strona32','strona33','strona34','strona35','strona36','strona37','strona38','strona39','strona40','strona41','strona42','strona43','strona44','strona45','strona46','strona47','strona48','strona49','strona50','strona51','strona52','strona53','strona54','strona55','strona56','strona57','strona58','strona59','strona60','strona61','strona62','strona63','strona64','strona65','strona66','strona67','strona68','strona69','strona70','strona71','strona72','strona73','strona74','strona75','strona76','strona77','strona78','strona79','strona80','strona81','strona82','strona83','strona84','strona85','strona86','strona87','strona88','strona89','strona90','strona91','strona92','strona93','strona94','strona95','strona96','strona97','strona98','strona99','strona100','strona101','strona102','strona103','strona104','strona105','strona106','strona107','strona108','strona109','strona110','strona112','strona113','strona114','strona115','strona116','strona117','strona118','strona119');
if(in_array($_GET['page'],$dozwolone)){
$name="$_GET[page].php";
}else{
$name='budowa.php';
}
if(file_exists('strony/'.$name)){
include('strony/'.$name);
  1. [/php]
  2. }else{
  3. echo'Strona w budowie';
  4. }
  5. ?>[php]
piotr94
a czy masz pliki w odpowiednich katalogach??
czy php wyrzuca jakieś błędy??
neneth
Pliki mam w jednym folderze, w którym znajduje się cała strona, index.php, grafika itd. Nie wyrzuca mi żadnego błędy, po prostu nie mogę dadać żadnego pliku i nic skaswać. Dziwne to trochę i nie wiem, dlaczego tak jest. Gdzie w takim razie powinny być pliki?
piotr94
w folderze "strony"
daj sobie na początku skryptu:
neneth
Zrobiłam, jak mówiłeś i teraz pojawił się błąd
Notice: Undefined index: page in C:\xampp\htdocs\Odchudzanie\index.php on line 336
  1. <?php
  2. $dozwolone=array('strona1','strona2','strona3','strona4','strona5','strona6','strona7','strona8','strona9','strona10','strona11','strona12','strona13','strona14','strona15','strona16','strona17','strona18','strona19','strona20','strona21','strona22','strona23','strona24','strona25','strona26','strona27','strona28','strona29','strona30','strona31','strona32','strona33','strona34','strona35','strona36','strona37','strona38','strona39','strona40','strona41','strona42','strona43','strona44','strona45','strona46','strona47','strona48','strona49','strona50','strona51','strona52','strona53','strona54','strona55','strona56','strona57','strona58','strona59','strona60','strona61','strona62','strona63','strona64','strona65','strona66','strona67','strona68','strona69','strona70','strona71','strona72','strona73','strona74','strona75','strona76','strona77','strona78','strona79','strona80','strona81','strona82','strona83','strona84','strona85','strona86','strona87','strona88','strona89','strona90','strona91','strona92','strona93','strona94','strona95','strona96','strona97','strona98','strona99','strona100','strona101','strona102','strona103','strona104','strona105','strona106','strona107','strona108','strona109','strona110','strona112','strona113','strona114','strona115','strona116','strona117','strona118','strona119');
  3. if(in_array($_GET['page'],$dozwolone)){
  4. $name="$_GET[page].php";
  5. }else{
  6. $name='budowa.php';
  7. }
  8. if(file_exists('strony/'.$name)){
  9. include('strony/'.$name);
  10. }else{
  11. echo'Strona w budowie';
  12. }
  13. ?>


$name="$_GET[page].php";
błąd jest gdzie tutaj
futura
  1. $name="$_GET[page].php";


Wydaje mi się, że powinno być:

  1. $name= $_GET[page].".php";
neneth
Problem jest tutaj:

  1. if(in_array($_GET['page'],$dozwolone)){
  2.  
  3.  


Ju wszystko działa, ale mimo to pojawia się błąd

Notice: Undefined index: page in C:\xampp\htdocs\Odchudzanie\index.php on line 337

w kodzie

<?php
error_reporting(E_ALL);
$dozwolone=array('strona_glowna','dieta_odchudzajaca','dieta_1000','kopenhaska','anderson','hay','kwasniewski','cambridge','gerson','budwig','dukan','morze','southbeach','atkins','niskocholesterolowa','wapn','sod','hollywood','niskoenergetyczna','lekkostrawna','makrobiotyka','mayr','bircher','evers','chiny','1200kcal','celulit','stres','blekitna','czerwona','fiolet','zielona','zolta','blyskawiczna','diamond','france','francuska','hinduska','kekwicka','ketogeniczna','montignac','kosci','redukcyjna','rownowaga','bomba_witaminowa','gr0','grA','grB','grAB','wiosenna','lato','jesien','zima','ksiezyc','slonce','nowy_rok','swieta','weekend','jablko_ryz','bialko','grejpfrut','jogurt','kapusta','koktajl','mleko','sok','owoce','pszenica','twarog_ryz','ziemniaki','lod','aktywni','sportowcy','kulturysci','nastolatki','nastolatkowie','kosmonauta','szczupli','wysmukli','leniwi','zdrowie_uroda','odmlodzeni','oczyszczanie','wegetarianin','lasuchy','ciaza','matka','niecierpliwi','siedmiodniowa','stabilizacja','brzuch','komorka','wzrok','tradzik','cukrzyca1','cukrzyca2','cukrzycaII','ciaza_w_cukrzycy','zaparcia','jelito','bezglutenowa','bioskladniki','nowotwor','watroba','tarczyca','nerki','zatrucia','wrzody','miazdzyca','dna_moczanowa','krazenie','nadcisnienie','refluks','rekonwalescent','dziewczyna','3lata','20lat','30lat','40lat','starsi');
if(in_array($_GET['page'],$dozwolone)){
$name="$_GET[page].php";
}else{
$name='budowa.php';
}
if(file_exists('strony/'.$name)){
include('strony/'.$name);
}else{
echo'Strona w budowie';
}
?>
piotr94
Cytat(futura @ 23.07.2010, 10:15:11 ) *
  1. $name="$_GET[page].php";


Wydaje mi się, że powinno być:

  1. $name= $_GET[page].".php";

to nie ma znaczenia, poczytaj sobie jakie są różnice między " ", a ' '.
co do błędu, po prostu zakomentuj linię error_reporting(E_ALL); i będzie smigać biggrin.gif
error_reporting
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.