![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich!
Jestem nowym użytkownikiem forum i z php nie miałem wiele do czynienia, mam skrypt z zagranicznej strony i skrypt ma za zadanie generowanie praktycznie wszystkich podstron, cala stronę miałem oparta na ramkach teraz chce się wyzbyć ramek i mój problem zaczyna się przy includowaniu treści z php. Cala stronę mam podzielona na kilka sekcji w divach menu jest oparte na css. I chodzi mi o to by przy kliknięciu z menu strona wyświetlała się w divie "main". Korzystam z następującego skryptu: CODE if (isset($_GET['page'])) { $page = $_GET['page']; if(!empty($page)) if (is_file("$page")) include ("$page"); else echo "Podana strona nie istnieje."; } else include "home.php"; ?> I wszystko jest dobrze dopóki w linkach są konkretne pliki przykladowo: CODE <li><a href="index.php?prace.php" >Moje prace</a></li> problem zaczyna sie gdy link ze skryptu przyjmuje postac taka: CODE <li><a href="index.php?page=prace.php?mod=kat&kid=3" >Moje fotografie</a></li> i wtedy include jaki stosuje nie chodzi? Czy ktoś mógł by mi pomóc jak sobie z tym poradzić ew. coś doradzić? z góry bardzo dziękuje za pomoc. Dołączam index.php w którym jest fragment tego mojego menu i ten skrypt: CODE <? session_start(); if(!$_SESSION['lang']) $_SESSION['lang']='pl'; if($_GET['lang']) $_SESSION['lang']=$_GET['lang']; header("Content-Type: text/html; charset=ISO-8859-2"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml2/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" /> <title> tytul</title> <link href="style2.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="container"> <div id="header"> <h1>Header</h1> <ul id="menu"> <li><a href="index.php?page=his.php">O mnie » <!--[if gte IE 7]><!--></a><!--<![endif]--> <!--[if lte IE 6]><table><tr><td><![endif]--> </a> <ul> <li><a href="index.php?page=home.php" >Tytul1</a></li> <li><a href="index.php?page=rozne.php" >Rozne » </a></li> <li><a href="index.php?page=content.php?content=Prace" >Prace » <!--[if gte IE 7]><!--></a><!--<![endif]--> <!--[if lte IE 6]><table><tr><td><![endif]--> </a><ul> <li><a href="index.php?page=prace.php?mod=kat&kid=3">Fotografie</a></li> <li><a href="index.php?page=prace.php?mod=kat&kid=4">Rysunki</a></li ></ul> <!--[if lte IE 6]></td></tr></table></a><![endif]--> </li> <li><a href="index.php?page=produkty.php?dzial=2" >Sztuka a sztuka</a></li> <li><a href="index.php?page=produkty.php?dzial=4" >W obiektywie</a></li> </ul> <!--[if lte IE 6]></td></tr></table></a><![endif]--> </li> <li><a href="index?page=produkty.php?dzial=5">Multimedia » <!--[if gte IE 7]><!--></a><!--<![endif]--> <!--[if lte IE 6]><table><tr><td><![endif]--> </a> <ul> <li> </a><a href="index.php?galeria.php">Galeria</a></li> <li> </a><a href="index.php?page=nagrania.php">Nagrania </a></li> </ul> <!--[if lte IE 6]></td></tr></table></a><![endif]--> </li> </ul> <!-- end #header --></div> <div id="main"> <?php if (isset($_GET['page'])) { $page = $_GET['page']; if(!empty($page)) if (is_file("$page")) include ("$page"); else echo "Podana strona nie istnieje."; } else include "home.php"; ?> <!-- end #main --></div> <div id="footer"> <!-- end #footer --></div> <div id="copyright"> <p>Copyright © 2003-2009 <a href="mailto:ktesibios@gmail.com"Ktesibios</a>. Wszelkie prawa Zastrzeżone. </p> <!-- end #copyright --></div> <!-- end #container --></div> </body> </html> |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 850 Pomógł: 120 Dołączył: 15.02.2007 Skąd: Łódź Ostrzeżenie: (10%) ![]() ![]() |
No to powiem Tobie że linki wyglądać muszą tak
wtedy za include bierzesz
Poza tym musisz zabezpieczyć includowanie. Ten post edytował Lion_87 14.03.2009, 11:54:05 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Pamiętaj o zabezpieczeniach. Taki skrypt to otwarte drzwi, wystarczy, że ktoś wpisze np. ?page=config.php i już ma twoje hasła do bazy, czy obojętne co tam trzymasz w takim pliku, a co jak wpisze ../../../etc/passwd?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Probowalem zrobic tak jak mówiliście i po wgraniu na serwer wystepuje coś następującego:
Warning: include() [function.include]: Failed opening '.php' for inclusion (include_path='.:/:/usr/php/pear') in /index.php on line 91 a jak najlepiej to zabezpieczyc?? Ten post edytował ktesibios 14.03.2009, 14:26:12 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
albo dajesz tablice z nazwami plików które mogą być includowane i potem sprawdzasz czy przysłana wartość się tam znajduje, jeśli tak to include.
albo dajesz nazwy plików np: cos.inc.php , cos.class.php i includujesz w formie 'includes/'.$inc.'.class.php'; |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Warning: include() [function.include]: Failed opening '.php' for inclusion (include_path='.:/:/usr/php/pear') in /index.php on line 91 Ten błąd mówi, że próbujesz zaincludować plik .php czyli że zmienna, w której miała być nazwa pliku (przed rozszerzeniem) jest pusta. To dlatego, że zamiast
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Swietnie, includowanie wszystkiego chodzi
![]() Ten post edytował ktesibios 14.03.2009, 14:46:22 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat i jak ustawic strone startowa "defualt" bo rowniez mam ja z php. Sprawdzaj, czy zmienna w $_GET jest pusta. Cytat jeszcze mam 2 pytania odnosnie tego jak to najlepiej zabezpieczyc Jest przyklejony wątek, poszukaj. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Swietnie, includowanie wszystkiego chodzi ![]() Napisałem ci na temat zabezpieczenia , przeczytałeś ? a co do default to np rozwiń to: $def=()?:; |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem jak to sprawdzac? a nie mozna tego po prostu ustawic? w kwesti zabezpieczenia juz sie doczytalem dzieki:)
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Przy zabezpieczeniach warto wspomnieć jeszcze o funkcji basename(). Zainteresuj się nią, bo nawet jak zrobisz takie coś 'includes/'.$zmienna.'.costam.php' to nie jest to bezpieczne - null byte (% 00) i twoje skomplikowane rozszerzenie nagle znika.
Ten post edytował Mephistofeles 14.03.2009, 17:10:28 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Moze to sie dla was wyda smieszne ale ja naprawde mam male pojecie o php i robie w nim cos moze 4 raz w zyciu... i stad te problemy, robie stronke dla siebie i za bardzo niechce wydawac kasy niewiadomo ile zeby ktos mi zrobil i juz praktycznie mam wszystko zrobione tylko zostalo podpiac. i Z gory dzieki wszystkim za pomoc.
wkleilem cos nastepujacego: CODE <?php //93// include ($_GET['page'].'.php'); if(empty($_GET['page'])) { include('home.php'); } ?> i po wejsciu na strone wyskakuje mi Warning: include() [function.include]: Failed opening '.php' for inclusion (include_path='.:/:/usr/php/pear') in /index3.php on line 93 aha i dodam ze ten blad pojawia sie na stronie home a pozniej jest juz okej... i wszystko ladnie chodzi Ten post edytował ktesibios 14.03.2009, 18:29:19 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Raczej powinno być:
Ale pamiętaj o kwestiach bezpieczeństwa, o których już tu wspominano. I koniecznie przeczytaj: Temat: Bezpieczenstwo_skryptow_PHP Ten post edytował Foxx 14.03.2009, 18:34:00 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
ekstra wszystko chodzi, teraz zaglebie sie dokladniej w te kwestie bezpieczenstwa.
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:53 |