Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php?] Jak zrobic adres w formie:jakis_plik.php?cos=blabla?
muk4
post 16.03.2007, 06:39:41
Post #1





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

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


Jak zrobic adres w formie:jakis_plik.php?cos=blabla??

Dobry znacznik dałem? Bo nie wiem do którego to pytanie pasi.
Go to the top of the page
+Quote Post
Cienki1980
post 16.03.2007, 07:25:25
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Dokładnie w taki sposób jak pokazałeś:
  1. <a href="jakis_plik.php?cos=blabla">link do pliku jakis_plik.php?cos=blabla</a>


--------------------
404
Go to the top of the page
+Quote Post
muk4
post 16.03.2007, 07:32:46
Post #3





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

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


Niee o to mi chodzi.

Nie chce tworzyć 50 plików i każdego zapisywać.
Pytanie jak zrobić takie coś zamiast 50 plików np.
NIE
1.php,2.php,3.php,4.php...50.php
TAK
skrypt.php?plik=1

I odtworzy mi plik 1
Go to the top of the page
+Quote Post
Istalacar
post 16.03.2007, 07:38:02
Post #4





Grupa: Zarejestrowani
Postów: 108
Pomógł: 4
Dołączył: 3.03.2007

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


Witam
Może coś takiego:
  1. <?
  2. $tablica("pierwszy.php", "drugi.php", "trzeci.php");
  3. require($tablica[$_GET[plik]]);
  4. ?>

Jeżeli podasz http://www.adres.do/pliku.php?plik=1 to skrypt wyświetli plik o nazwie "drugi.php" znajdujący się w tym samym katalogu.

Pozdrawiam
Istalacar
Go to the top of the page
+Quote Post
dem
post 16.03.2007, 13:02:24
Post #5





Grupa: Zarejestrowani
Postów: 96
Pomógł: 7
Dołączył: 24.01.2006
Skąd: lublin/wawa

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


albo zrobic inaczej ale dobrze zabezpieczyc (czego ja nie w przykladzie nie zrobie):

link: index.php?id=1

  1. <?
  2. $plik = $_GET['id'].'.php'; // lub .html
  3.  
  4. if (!file_exists('jakis_katalog/'.$plik) || empty($_GET['id'])) 
  5. {
  6.  echo 'nie znaleziono pliku w katalogu jakis_katalog';
  7. }
  8. else
  9. {
  10.  require_once 'jakis_katalog'.$plik;
  11. }
  12. ?>


pisane z palca ale chyba nie zawiera bledow

oczywiscie jesli chodzi o bezpieczenstwo to raczej przyklad w poprzedajacym mojego posta jest bezpieczniejszy, bo to ty narzucasz jakie pliki moga byc includowane... no ale najpierw je trzeba wprowadzic do tablicy co dodaje niepotrzebna prace;]

Ten post edytował dem 16.03.2007, 15:14:47
Go to the top of the page
+Quote Post
Neojawor
post 16.03.2007, 13:29:28
Post #6





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

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


jeśli chcesz mieć kilka podstron w jednym pliku index.php i żeby różniły się tylko numerkiem, np index.php?plik=2, index.php?plik=3 itd, to musisz w index.php wsadzić kody źródłowe każdej z podstron i wsadzić switch-a:
  1. <?php
  2. switch ( $_GET['plik'] )
  3. {
  4. case 0:
  5. //cała treść podstrony o numerze 0
  6. break;
  7.  
  8. case 1:
  9. //cała treść podstrony o numerze 1
  10. break;
  11.  
  12. case 2:
  13. //cała treść podstrony o numerze 2
  14. break;
  15. }
  16. ?>

a jeśli gdzieś na stronie chcesz się odwołać do którejś z podstron to dajesz
  1. <?php
  2. echo <a href="index.php?plik=x>link do strony x</a>
  3. ?>


ot cała filozofija smile.gif
Go to the top of the page
+Quote Post
dem
post 16.03.2007, 13:34:22
Post #7





Grupa: Zarejestrowani
Postów: 96
Pomógł: 7
Dołączył: 24.01.2006
Skąd: lublin/wawa

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


Cytat(Neojawor @ 16.03.2007, 13:29:28 ) *
ot cała filozofija smile.gif


a czy nie uwazasz ze to troche nie wygodne?
Go to the top of the page
+Quote Post
Ociu
post 16.03.2007, 13:40:30
Post #8





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Jest nie wygodne i to strasznie, polecam filtrację poprzez file_exists i is_readable.
Go to the top of the page
+Quote Post
Neojawor
post 16.03.2007, 14:11:42
Post #9





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

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


teraz to ja nie łapię, o co chodzi z tą filtracją? chodzi o include-owanie plików?
Go to the top of the page
+Quote Post
Ociu
post 16.03.2007, 14:53:35
Post #10





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Dajmy na to, dajesz w $_GET plik x z tego wynika, że x.php. Jednak x.php wcale nie istnieje, przez co wysypuje Ci się skrypt.
Filtracja, czyli zabezpieczenie. Sprawdzasz czy plik istnieje i czy można go odczytywać, dopiero potem dajesz include.
Go to the top of the page
+Quote Post
dem
post 16.03.2007, 14:55:03
Post #11





Grupa: Zarejestrowani
Postów: 96
Pomógł: 7
Dołączył: 24.01.2006
Skąd: lublin/wawa

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


Cytat(Ociu @ 16.03.2007, 14:53:35 ) *
Dajmy na to, dajesz w $_GET plik x z tego wynika, że x.php. Jednak x.php wcale nie istnieje, przez co wysypuje Ci się skrypt.
Filtracja, czyli zabezpieczenie. Sprawdzasz czy plik istnieje i czy można go odczytywać, dopiero potem dajesz include.


@Neojawor: czyli cos takiego jak ja napisalem pare postow wyzej tylko + sprawdzanie readable
Go to the top of the page
+Quote Post
Neojawor
post 16.03.2007, 15:09:06
Post #12





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

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


no tak, teraz łapię - i jest 1000 * lepsze od switch-a

pozdrawiam i dzięki za wyjaśnienia
Go to the top of the page
+Quote Post
erix
post 17.03.2007, 16:51:20
Post #13





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Eee, a co z przypadkiem:
Kod
jakis_plik.php?cos=../../plik
?

Wepchnij przy file_exists" title="Zobacz w manualu PHP" target="_manual basename" title="Zobacz w manualu PHP" target="_manual:
  1. <?php
  2. if (!file_exists('jakis_katalog/'.basename($plik)) || empty($_GET['id']))
  3. ?>


Ten post edytował erix 17.03.2007, 16:51:51


--------------------

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!
Go to the top of the page
+Quote Post
dem
post 17.03.2007, 19:20:38
Post #14





Grupa: Zarejestrowani
Postów: 96
Pomógł: 7
Dołączył: 24.01.2006
Skąd: lublin/wawa

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


Cytat(erix @ 17.03.2007, 16:51:20 ) *
Eee, a co z przypadkiem:
Kod
jakis_plik.php?cos=../../plik
?


Cytat
albo zrobic inaczej ale dobrze zabezpieczyc (czego ja nie w przykladzie nie zrobie):


ale oczywiscie masz racje z basename...

Ten post edytował dem 17.03.2007, 19:21:01
Go to the top of the page
+Quote Post
Istalacar
post 17.03.2007, 19:22:13
Post #15





Grupa: Zarejestrowani
Postów: 108
Pomógł: 4
Dołączył: 3.03.2007

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


Witam
Erix, to jest Dobra metoda, ale popatrz na temat dot. bezpieczeństwa skryptów php. W ten sposób użytkownik może manipulować przy skrypcie.
Pozdrawiam
Istalacar
Go to the top of the page
+Quote Post
erix
post 17.03.2007, 22:18:51
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Z basename" title="Zobacz w manualu PHP" target="_manual? :|
Przecież bez tego może zmanipulować, chyba się nie zrozumieliśmy.

basename" title="Zobacz w manualu PHP" target="_manual zostawia samą nazwę pliku, bez ewentualnej ścieżki.


--------------------

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!
Go to the top of the page
+Quote Post
Kaiba Ziom
post 17.03.2007, 22:29:15
Post #17





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 25.10.2006
Skąd: Londyn

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


  1. <?
  2. $body = $_GET["body"];
  3.  
  4.  
  5.  
  6. if ($body=="")
  7.  {
  8.  include("includes/main.php"); //Link do tekstu który ma się wyświetlać przy wejściu na stronę
  9.  }
  10.  
  11. else {
  12.  
  13. if (is_file("$body.php"))
  14. {
  15. include("$body.php");
  16. }
  17.  
  18. else
  19. {
  20. echo 'Error 404'; 
  21. }
  22. }
  23.  
  24.  
  25. ?>


Jak masz menu i chcesz link w tej postaci robisz taki link:

<a href="?body=nazwa_pliku">


--------------------
Co tu napisać mam??
Go to the top of the page
+Quote Post
dem
post 17.03.2007, 22:52:56
Post #18





Grupa: Zarejestrowani
Postów: 96
Pomógł: 7
Dołączył: 24.01.2006
Skąd: lublin/wawa

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


@kaiba:

1. czytaj posty innych userow
2. szczescia zdrowia odnosnie twojego pomocnego skrypciku :E
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: 13.06.2025 - 09:19