Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Include'owanie pliku ze zmienną GET
Forum PHP.pl > Forum > PHP
Raven1122
Witam,

Mam następujący problem:


Mam klasę Router, która sprawdza, czy link ma tylko model który ma zaincludować np.: localhost/Galeria

Czy też zawiera Id powiedzmy albumu, który ma także zaincludować np.: localhost/Galeria/12

Jednak po dopisaniu ID albumu PHP wypluwa, że nie ma takiego pliku:

Warning: include(inc/models/galeria.php?nid=12): failed to open stream: No such file or directory in /libs/router.php


Czy da się to jakoś zrobić?

Jeżeli nie, to czy jest jakiś inny sposób na to by to zrobić? Tzn. jakoś przesłać do modelu gallery, który album ma wyświetlić?
sowiq
Spróbuj tak i wyciągnij wnioski:

  1. // index.php
  2. $i = 153;
  3. include 'plik_2.php';

  1. // plik_2.php
  2. echo 'aaaaaa';
  3. echo $i;
  4. echo 'bbbbbb';


Zadziała to identycznie jak to:
  1. // index.php
  2. $i = 153;
  3. echo 'aaaaaa';
  4. echo $i;
  5. echo 'bbbbbb';


Chodzi o to, że includowanie działa podobnie, jakbyś w miejscu wywołania wkleił całą zawartość załączanego pliku. Więc automatycznie wszystkie zmienne dostępne w danej linijce będą dostępne w załączanym pliku.
Raven1122
Zalezaloby mi bardziej na GET
gitbejbe
Cytat
Mam klasę Router, która sprawdza, czy link ma tylko model który ma zaincludować np.: localhost/Galeria
Czy też zawiera Id powiedzmy albumu, który ma także zaincludować np.: localhost/Galeria/12

przecież @sowiq Cię naprowadził

w tej Twojej klasie Router -wniosuke z tego co napisałeś, masz 2 główne warunki. Sprawdzasz czy ma zostac wczytany sam plik czy plik ze zmienną get. Zakładam, ze w pliku galeria.php pewnie masz też jakiś warunek czy istnieje zmienna GET i na jej podstawie coś tam robi. Jeśli tak, to przez includowwaniem zapisz sobie zmienną GET do np zmiennej $id ($id = $_GET['id']) i w pliku galeria sprawdzaj nie zmienną GET tylko zmienną $id. Jeśli jednak chodzi Tobie o coś innego to najlepiej wklej tą klase Router ; )
sowiq
Cytat(Raven1122 @ 1.08.2013, 22:48:07 ) *
Zalezaloby mi bardziej na GET

GET jest tablicą superglobalną. Znaczy to ni mniej, ni więcej tyle, że w każdym miejscu Twojego kodu* możesz odwołać się do $_GET['coś'] nie martwiąc się o zasięg.

(*) oczywiście trzeba pamiętać o odpowiednim filtrowaniu danych pochodzących od użytkownika.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.