![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 31.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kod <?php addslashes($_GET['ajdi']); htmlspecialchars($_GET['ajdi']); strip_tags($_GET['ajdi']); addslashes($_GET['ajdi']); stripslashes($_GET['ajdi']); if(!isset($_GET['ajdi'])) { include"start.php"; } else if ($_GET['ajdi']=='1') { include"wstaw/me.php"; } else if($_GET['ajdi']=='2') { include"wstaw/sikret.php"; } else if($_GET['ajdi']=='3') { include"wstaw/nius.php"; } else if($_GET['ajdi']=='5') { include"wstaw/ziomki.php"; } else if($_GET['ajdi']=='6') { include"wstaw/kontakt.php"; } else if($_GET['ajdi']=='7') { include"wstaw/prodzekt.php"; } else if($_GET['ajdi']=='8') { include"wstaw/artikles.php"; } else if($_GET['ajdi']=='9') { include"wstaw/propsy.php"; } else if($_GET['ajdi']=='4' && $_GET['nius']=='1') { include"nius/n1.php"; } else if($_GET['ajdi']=='4' && $_GET['nius']=='2') { include"nius/n2.php"; } else if(ereg('../', $_GET['ajdi'])) { include"lfi.php"; } else if(ereg('../', $_GET['artikles'])) { include"lfi.php"; } else if(ereg('../', $_GET['nius'])) { include"lfi.php"; } else if(ereg('http://', $_GET['ajdi'])) { include"lfi.php"; } else if(ereg('http://', $_GET['artikles'])) { include"lfi.php"; } else if(ereg('http://', $_GET['nius'])) { include"lfi.php"; } else if(ereg('union', $_GET['artikles'])) { echo 'sqlite'; } else if(ereg('union', $_GET['nius'])) { echo 'sqlite'; } else if(ereg('union', $_GET['ajdi'])) { include"sql.php"; } else{ include"shit.php"; } ?> to mój skrypt, troche go połatałem, działa następująco, w indexie jest funckja include z oto tym skryptem, a odnosniki wygladaja nastepujaco : index.php?ajdi=1. Moje pytanie : czy da sie jakos zoptymalizowac ten skrypt? bo uciążliwe jest dodawanie w tym skrypcie ciagle nowego warunku if Ten post edytował unlock 31.08.2008, 16:51:41 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Użyć switch....
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 31.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
no to praktycznie na to samo wyjdzie
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Napisz klasę, funkcję która ci jakoś uporządkuje mapowanie $_GETów do plików.
Spróbuj jakąś konwencję wymyślić. Jakiś wzór, który będzie się powtarzał, tylko zmienne będą inne - na początek. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 9 Dołączył: 21.05.2004 Skąd: Glogau/Breslau Ostrzeżenie: (0%) ![]() ![]() |
Nie do końca na to samo, bo switch jest czytelniejszy.
Na początek zamiast tego dziwnego filtrowania ajdi lepiej daj jakieś $ajdi=(int)$_GET['ajdi']; I przemyśl jeszcze raz tą całą strukturę, bo za pomocą jednego ciągu ifów chcesz dołączać pliki (tj wykonywać akcje) z różnych poziomów drzewa strony. I w tym momencie ciężko o jakąś optymalizacje tego. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 31.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
do filtracji ajdi dam preg_math,
no wlasnie, dlatego moze ktos ma jakis pomysl na optymalizacje ? wchodzi w gre calkowita przebudowa |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To czego szukasz to Router. Poszukaj na forum
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 198 Pomógł: 3 Dołączył: 27.02.2007 Skąd: Tczew Ostrzeżenie: (0%) ![]() ![]() |
masz tutaj przykład następnym razem google i szukaj! http://forum.dobreprogramy.pl/viewtopic.ph...8&p=1791053
-------------------- ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Swithc czytelniejsz, szybszy.
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 198 Pomógł: 3 Dołączył: 27.02.2007 Skąd: Tczew Ostrzeżenie: (0%) ![]() ![]() |
teraz sam się zainteresowałem wookieb a mógłbyś pokazać przykład zastosowania switch ;>
-------------------- ![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 1 Dołączył: 1.04.2008 Skąd: WARSZAWA Ostrzeżenie: (0%) ![]() ![]() |
Nie jest to switch ale możne ci się przyda. Znalazłem go w starych plikach u siebie na dysku
![]() Kod @$go=$_GET['go']; if (file_exists(''.$go.'.php')){ include(''.$go.'.php'); // a tutaj includowane są pliki } else if (($go != null) && (!file_exists(''.$go.'.php'))){ include('error.php');j // jeżeli brak pliku o podanej nazwie lub ktoś poda błędny link wyświetli błąd } else{ include('glowna.php'); // tutaj wyświetla ci sie strona główna czyli jak wejdziesz na stronę to właśnie to bedzie widoczne } a linki będą wyglądać następująco i nie dajesz rozszerzenia , rozszerzenie dopisywane jest w include(''.$go.'.php'); możesz dowolnie modyfikować te rozszerzenia. Skrypt dajesz w miejscu w którym maja się pojawiać includowane pliki. To na tyle myślę ze się skrypt przyda ![]() Ten post edytował ErrorMessage 31.08.2008, 20:40:29 -------------------- ![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 31.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
bardzo podoba mi sie propozycja ErrorMessage, dziękuje
![]() PS: ale jezeli ktoś będzie znał nazwe pliku, to może go wywołać z poziomu przeglądarki a napisalem skrypt logowania : Kod <?php if($_SERVER['REQUEST_METHOD'] == 'POST') { if(isset($_POST['user']) && isset($_POST['pass'])) { addslashes($_POST['user']); htmlspecialchars($_POST['user']); strip_tags($_POST['user']); addslashes($_POST['pass']); htmlspecialchars($_POST['pass']); strip_tags($_POST['pass']); $podany_login = md5(md5($_POST['user'])); $podane_haslo = md5(md5($_POST['pass'])); $login = '5d11d0ba47a80b25d819f86557d662a7'; $haslo = 'c88b2f7570949ab69c96f7674b25fbd4'; if($login == $podany_login && $haslo == $podane_haslo) { include('wstaw/666.php'); } else { header("Location: http://www.domain.com/8337"); } } else { header("Location: http://www.domain.com/8337"); } } else { header("Location: http://www.domain.com/8337"); } ?> i chodzi mi o to by ktos byl przekierowany na strone 666.php, ale nie mogl jej wywolac z poziomu przegladarki, jak to zrobic ? jakie uprawniena nadac plikowi 666.php ? hasła są wziete 2 razy w md5 bo z praktyki wiem ze proste hasła można złamać a md5 w md5 to pare milionow lat ;dd
Powód edycji: Zmoderowałem linki w skrypcie, na przyszłość patrz co dodajesz. /webdicepl
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 1 Dołączył: 1.04.2008 Skąd: WARSZAWA Ostrzeżenie: (0%) ![]() ![]() |
Zaszalejmy wprowadźmy parę modyfikacji a mianowicie:
wprowadź sesje: Kod <?php session_start(); //to musisz zostawić bo pracujesz na sesjach ob_start(); //to musisz zostawić bo pracujesz na sesjach ........... //reszta kodu if($login == $podany_login && $haslo == $podane_haslo){ $_SESSION['user'] = $login; echo 'Zostałe¶ zalogowany'; header("Refresh:3; URL = 666.php"); } else { echo 'Zły login lub hasło!'; } ............. //reszta kodu ob_end_flush(); //to musisz zostawić bo pracujesz na sesjach ?> a w pliku 666.php sprawdzaj czy sesja istnieje Kod session_start(); //to musisz zostawić bo pracujesz na sesjach ob_start(); //to musisz zostawić bo pracujesz na sesjach if(isSet($_SESSION['user'])){ // tu wprowadzasz treśc która ma sie pojawiac po zalogowaniu } else{ // no to tu wiadomo co } ob_end_flush(); //to musisz zostawić bo pracujesz na sesjach no i wylogowanie tworzysz plik logout.php Kod session_destroy(); if (empty($_SESSION['user'])){ echo 'Zostale¶ poprawnie wylogowany!'; header("Refresh:2; URL = gdzie ma przenosić"); } else { echo 'Wylogowanie nie powiodło się!'; } to chyba tyle. Powinno być w miarę bezpieczne i przyjazne dla środowiska ![]() Ten post edytował ErrorMessage 31.08.2008, 21:24:33 -------------------- ![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 31.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
pomysłowe, ale mam pare pytan, mianowicie, czy jezeli sesja istnieje w pliku 666.php to zawartosc strony bede musial dac w echo ' '; ? czy jest jakis inny sposób ?
Pytanie 2 : jak bedzie wyglądał odnosnik do logout.php? |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 198 Pomógł: 3 Dołączył: 27.02.2007 Skąd: Tczew Ostrzeżenie: (0%) ![]() ![]() |
odwołujesz się linkiem do logout np z menu
![]() -------------------- ![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 1 Dołączył: 1.04.2008 Skąd: WARSZAWA Ostrzeżenie: (0%) ![]() ![]() |
Moze inaczej przykład:
Kod session_start(); //to musisz zostawić bo pracujesz na sesjach
ob_start(); //to musisz zostawić bo pracujesz na sesjach if(isSet($_SESSION['user'])){ echo 'Witaj świecie'; // to będą widzieć osoby które się zalogowały echo '<a href="logout.php">Wyloguj</a>'; // to będą widzieć osoby które się zalogowały } else{ echo 'Nie jesteś zalogowany'; } ob_end_flush(); //to musisz zostawić bo pracujesz na sesjach Ten post edytował ErrorMessage 31.08.2008, 21:47:24 -------------------- ![]() |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 31.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
okej, kodzik działa wszystko gra, ale pytanie czy po zalogowaniu w pliku 666.php tresc strony html musze wstawiac w echo ? czy jest inne rozwiazanie ?
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
A moja propozycja co do tego stada inkludów - wrzuć te wszystkie includowane pliki do jednego folderu, zrób z nich tablicę funkcją glob, a następnie podstawiaj tylko numer ze zmiennej $_GET:
Proste i wydajne. Ale jeszcze lepiej, żebyś zrobił sobie tablicę z opisami, anchorami etc. i trzymał ją w bazie/pliku, coś w stylu: ID||Nazwa||Title||Link do pliku 1||pozycja 1||kliknij, by coś tam||includy/plik1.php 2||pozycja 2||kliknij, by coś tam||includy/plik2.php Na podstawie takiej tablicy generujesz menu i wybraną pozycję. Zalecam takie rozwiązania dlatego, że nikt Ci nie zainkluduje czegoś, czego nie ma na Twoim serwerze. |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 1 Dołączył: 1.04.2008 Skąd: WARSZAWA Ostrzeżenie: (0%) ![]() ![]() |
okej, kodzik działa wszystko gra, ale pytanie czy po zalogowaniu w pliku 666.php tresc strony html musze wstawiac w echo ? czy jest inne rozwiazanie ? Możesz wstawiać w echo " title="Zobacz w manualu PHP" target="_manual lub print " title="Zobacz w manualu PHP" target="_manual Ten post edytował ErrorMessage 31.08.2008, 22:15:10 -------------------- ![]() |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 31.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
powstawiałem, ale podczas wylogowywania dostaje :
Kod [b]Fatal error[/b]: Call to undefined function session_destory() in [b]/var/www/logout.php[/b] on line [b]2[/b]
Ten post edytował unlock 31.08.2008, 22:45:04 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 20:19 |