Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Przekazanie parametru z includowanej strony
Ulysess
post
Post #1





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


dobry wieczór , mam pewien problem z którym nie mogę sobie poradzić..
strona wygląda następująco:

  1. echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. ....
  5. </head>
  6. <body>
  7. <div>.......</div>
  8. <div>';
  9.  
  10. @$strona=$_GET['page'];
  11.  
  12. if(file_exists(''.$strona.'.php'))
  13. {
  14. include(''.$strona.'.php');
  15. }
  16. else {include('start.php');}
  17. echo '</div>';


problem polega na tym że chciałbym z wczytywanej podstrony tam gdzie jest div z kropeczkami przekazać nazwę tej zakładki , w jaki sposób można to zrobić o ile się da (IMG:style_emoticons/default/questionmark.gif) ..

Ten post edytował Ulysess 8.01.2011, 23:36:30
Go to the top of the page
+Quote Post
kalmaceta
post
Post #2





Grupa: Zarejestrowani
Postów: 183
Pomógł: 24
Dołączył: 4.12.2010

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


kombinować , poza tym jedna wielka dziura - system plików niezabezpieczony

  1. if(file_exists($_GET['page'].'.php'))
  2. $strona=$_GET['page'];
  3. else $strona='';
  4. echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7. ....
  8. </head>
  9. <body>
  10. <div>'.$strona.'</div>
  11. <div>';
  12.  
  13. include (($strona)?''.$strona.'.php':'start.php');
  14. echo '</div>';
Go to the top of the page
+Quote Post
Ulysess
post
Post #3





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


jak to dziura ? :| jakie niebezpieczeństwo niesie używanie 'mojego' kodu ? :|

nie wiem czy dobrze zrozumiałem ale używając funkcji file_exists powinienem includowane podstrony trzymać w innym katalogu (IMG:style_emoticons/default/questionmark.gif)

a czy takie rozwiązanie jest bezpieczne (IMG:style_emoticons/default/questionmark.gif)

  1. <?php
  2. @$strona = $_GET['page'];
  3. $strona = str_replace('/', '',$strona);
  4. $strona = str_replace('.', '',$strona);
  5. if(file_exists(''.$strona.'.php') && $strona != 'index')
  6. {
  7. include(''.$strona.'.php');
  8. }
  9. else {include('start.php');}
  10. ?>
Go to the top of the page
+Quote Post
MateuszS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Sądzę że to co chcesz robić tym skryptem można zrobić inaczej i bezpieczniej...

Ten post edytował MateuszS 9.01.2011, 11:14:01
Go to the top of the page
+Quote Post
Hoku
post
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 2
Dołączył: 6.07.2010

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


a taka dziura, że ktos ci może podmienic wartość get['page'] na np usun_wszystko.
a ty akurat masz taki plik który akurat to zrobi. (IMG:style_emoticons/default/tiredsmiley.gif)
Go to the top of the page
+Quote Post
Ulysess
post
Post #6





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


Mateusz a można jaśniej (IMG:style_emoticons/default/questionmark.gif)

wszystko ładnie w teori ale wolał bym podanie konkretnego przykładu jaki może spowodować 'zadyme' na mojej stronie..

w danym katalogu znajdują się TYLKO i wyłącznie pliki które chce includować + mintajax.js i style.css. dodatkowo na stronie od jakiegoś czasu funkcjonuje już rozwiązanie podstrona.html więc nie widać jak się zwie zmienna get (fakt mógł ktoś zapamiętać)
Go to the top of the page
+Quote Post
MateuszS
post
Post #7





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Dlaczego chcesz includować plik o takiej samej nazwie co zmienna $_GET["page"] ? Napisz dokładnie co chcesz zrobić, jak to ma działać.

Ok, w twoim katalogu znajdują się tylko pliki które chcesz includować ale co jeżeli ktoś poda ?page=../usun_strone.php? Ja bym tej walidacji aż tak nie ufał.
Go to the top of the page
+Quote Post
Ulysess
post
Post #8





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


mam stronę która wygląda tak: http://qoooq.pl/stronka.jpg.
Czarnym kolorem zaznaczyłem fragment który jest przeładowywany
zaś w brązowym chciałbym wstawiać nazwę zakładki ale nie nazwę pliku tylko taką jaką mi się podoba..

na stronie mam również regułkę mod_rewrite ->
  1. RewriteRule ^(.+).html$ index.php?page=$1


kod służący do przeładowywania na tą chwile wygląda tak:

  1. <?php
  2. @$strona = $_GET['page'];
  3. $strona = str_replace('/', '',$strona);
  4. $strona = str_replace('.', '',$strona);
  5. if(file_exists(''.$strona.'.php') && $strona != 'index')
  6. {
  7. include(''.$strona.'.php');
  8. }
  9. else {include('start.php');}
  10. ?>


jedyne rozwiązanie na które wpadłem jest użycie nad treścią strony switcha->

  1. switch($_GET['page'])
  2. {
  3. case 'moje_konto':
  4. $nazwa_zakladki = 'Moje Konto';
  5. break;
  6.  
  7. default:
  8. $nazwa_zakladki = 'Wprowadzenie';
  9. break;
  10. }


tylko po 1 przy wejściu na stronę główną wywali notice że page nie istnieje a po 2 co ważniejsze nie wydaje mi się żeby to było dobre i wydajne rozwiązanie..

Ten post edytował Ulysess 9.01.2011, 12:33:01
Go to the top of the page
+Quote Post
MateuszS
post
Post #9





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Aa o to Ci caman... można tu użyć Javascriptu.

  1. <span id="blah"></span> //tutaj masz ten tytuł np Wprowadzenie


tutaj banalna funkcja
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. function cos(co) {
  3. document.getElementById("blah").innerHTML = co;
  4. }
  5. </script>
[JAVASCRIPT] pobierz, plaintext


i na każdej includowanej podstronie .php/.html dajesz (zmieniasz tylko argument funkcji)

[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. cos("Wprowadzenie");
  3. </script>
[JAVASCRIPT] pobierz, plaintext


Nie wiem czy o to Ci caman, pisane z głowy, moze byc jakas literówka, mysle dasz rade poprawic.

O to mniej wiecej chodzilo?
[

Ten post edytował MateuszS 9.01.2011, 15:41:47
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 03:08