Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] podwójne ładowanie: if(!isset..
M@X
post
Post #1





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

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


Witam.
Mam strone w postaci:
TOP
MENU
i poniżej dwie wersje okna głównego:
albo: z dwiema kolumnami
albo: z trzema kolumnami
zrobiłem to na zasadzie includów:
  1. <?php 
  2. if(!isset($ver)) $ver = 1;
  3. if($ver == 1 || $ver == 2) include "ver1.php";
  4. elseif($ver == 20 || $ver == 21) include "ver2.php";
  5. ?>

i wchodzac na strone .../index.php ładuje mi się standardowo index.php?ver=1
ale w pliku ver1.php mam kolejne includy:

  1. <?php
  2.  if(!isset($pid)) $pid = 1;
  3. elseif($pid == 1) include "mods/aktualnosci.php";
  4. elseif($pid == 2) include "mods/artykuly.php";
  5. else echo('');
  6. ?>

i tutaj już pojawia się problem bo nie chce ładować standardowo ?pid=1
Po wejściu w .../index.php ścieżka powinna wyglądać tak: .../index.php?ver=1&pid=1
Ktoś wie jak uzyskać taki efekt ?
Go to the top of the page
+Quote Post
potreb
post
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


  1. <?php
  2. $ver = $_GET['ver'];
  3. if(!isset($ver)) $ver = 1;
  4. ..................................................................
  5.  
  6.  
  7. $pid = $_GET['pid'];
  8. if(!isset($pid)) $pid = 1;
  9. .................................................................
  10. ?>
Go to the top of the page
+Quote Post
M@X
post
Post #3





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

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


niestety nie o to chodzi...
te dwie linijki mam już uwzględnione w pliku index.php...

z resztą nawet jak dodaje tak jak napisałeś to i tak dalej nic nie daje...


Jakieś inne sugestie ?
Go to the top of the page
+Quote Post
arecki
post
Post #4





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

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


Jeżeli dobrze zrozumiałem (chociaż jakoś tego nie czuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) to Twój problem polega na tym że zmienną $ver ostawiasz w pliku index.php a zmienną $pid ustawiasz z pliku includowanym a chciałbyś aby zmienne te były już widoczne w URL'u zanim zaincludujesz pliki ? Jeżeli tak to nie pozostaje nic innego jak sprawdzanie warunków dotyczących zmiennej $pid przenieść do pliku index.php.

Jeżeli źle Ciebie zrozumiałem to przepraszam i proszę o bardziej szczegółowe wyjaśnienie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) .
Go to the top of the page
+Quote Post
Grzyw
post
Post #5





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Opisz M@X dokładniej problem, bo mamy problem ze kminieniem, o co chodzi.
Pamiętaj, że nie ma sensu przesyłać w URL'u zmiennych z includowanymi plikami. To nie jest, że PHP jest do bani, nie pozwala na przykład na:

  1. <?php
  2. include('costam.cos?ale=walek');
  3. ?>


Bo i po co przesyłać coś przez HTTP, skoro masz do tego dostęp z poziomu skrypty. Include tylko "wkleja" kod, więc jeżeli masz:

  1. <?php
  2. $ale = 'walek';
  3. include('costam.coc');
  4. $nowaWartosc = funkcjaIncludowanaZcostam($ale); # Tu masz dostep do zmiennej, którą chciałeś doklejać do URL'a :)
  5. ?>
Go to the top of the page
+Quote Post
M@X
post
Post #6





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

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


hmmm chyba dobrze mnie zrozumiałeś.. chociaz ja sam chyba ciebie nie do konca zrozumiałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
tak naprawde to gdy łąduje strone .../index.php powinno w standardzie załadować $ver któa jest w pliku index.php oraz zmienną: $pid która jest w includowanym pliku.
Myślałem że to powinno tak działać: if(!isset
ale ładuje tylko pierwszą zmienną...

Ten post edytował M@X 28.01.2008, 20:24:05
Go to the top of the page
+Quote Post
arecki
post
Post #7





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

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


Nie możesz zobaczyć zmiennej, w pliku index.php która pochodzi z innego includowanego pliku PRZED zaincludowaniem go. Takie rzeczy to tylko w Erze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Może w wersji PHP 9.2.19 będzie moduł wróżki. Zrób sobie plik np. config.php w ktorym będziesz ustawiał domyślne wartości i includuj go przed wszystkimi działaniami i wtedy w każdym następnym załączanym pliku będziesz miał do tych zmiennych dostęp.

Ten post edytował arecki 28.01.2008, 20:25:43
Go to the top of the page
+Quote Post
M@X
post
Post #8





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

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


chyba zrozumiałem że jednak to o co mi chodzi jest niemożliwe... :/
ale można troszke bardziej wyjaśnić tego config.php ? co i jak tam załadować ?
Go to the top of the page
+Quote Post
arecki
post
Post #9





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

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


To był taki tylko obrazowy przykład aby pokazać że można zrealizować to co chcesz w inny sposób. Generalnie nie wiem co Ci się nie podoba w URL'u że koniecznie musi mieć podane oba warunki...
Go to the top of the page
+Quote Post
M@X
post
Post #10





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

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


Wszytsko jest ok.. i wlasnie o to mi chodzi aby miał obydwa warunki w postaci: .../index.php?ver=1&pid=1
jeśli sie wpisze taki adres w przeglądarce to wszystko jest ok...
ale cały problem w tym że po wpisaniu w przeglądarce samego: .../index.php nie łąduje standardowo tych dwóch zmiennych.. tylko pierwszą...
Go to the top of the page
+Quote Post
arecki
post
Post #11





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

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


W takim bądź razie musisz teraz się zastanowić w którym miejscu potrzebujesz zmiennej $pid. Bo jeżeli sprawdzasz ją tylko w pliku ver1.php to nie ma problemu. Możesz zostawić tak jak jest. A jeżeli wykorzystujesz ją w innych plikach załączanych przed include('ver1.php'); to musisz sprawdzenie zrobić wcześniej.
Go to the top of the page
+Quote Post
potreb
post
Post #12





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


  1. <?php 
  2. $ver = $_GET['ver'];
  3. if(!isset($ver)) {include "ver1.php";}
  4. if($ver == 1 || $ver == 2) {include "ver1.php";}
  5. elseif($ver == 20 || $ver == 21) {include "ver2.php";}
  6. ?>
  7.  
  8. <?php 
  9. $pid = $_GET['pid'];
  10. if(!isset($pid)) {include "mods/aktualnosci.php";}
  11. elseif($pid == 1) {include "mods/aktualnosci.php";}
  12. elseif($pid == 2) {include "mods/artykuly.php";}
  13. else {echo 'cos';}
  14. ?>


Tak ma być okey.
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: 23.08.2025 - 05:06