Przypisanie sciezki

Wszystko o językach skryptowych takich jak PHP i Perl, serwerach WWW, CGI, bazach danych i języku SQL.
djtomaszq
Posty: 12
Rejestracja: 05 lip 2015, 13:38:41
Strona na CBA.pl: wolanie.cba.pl
Płeć: Niewybrana
User Agent: Chrome Windows

Przypisanie sciezki

Post autor: djtomaszq »

Mam na swojej stronie logowanie i "podczepiam" je pod swoj szablon strony.

.. i chciałem, żeby profil użytkownika pokazywał się na stronie index.php w wyznaczonym miejscu. Tak jak na tym kodzie:

Kod: Zaznacz cały

CASE "profile":
        INCLUDE 'profile.php?id='.$user_data['user_id'].'';
        BREAK; 
a dzieję się to kliknięciu na link ze strony o kodzie:

Kod: Zaznacz cały

echo '<p>Witaj <b>'.$user_data['user_name'].'</b>!</p>
    <p>Jesteś w strefie tylko dla zalogowanych.</p>
    <p>[<a href="index.php?parent=profile">Wyświetl swój profil</a>] 
    [<a href="editprofile.php">Edytuj profil</a>] [<a href="userlist.php">Lista użytkowników</a>] 
    [<a href="logout.php">Wyloguj się</a>]</p>'; 
wtedy wyskakuje błąd:

Kod: Zaznacz cały

Warning: include(profile.php?id=) [function.include]: failed to open stream: No error in C:\Program Files\WebServ\httpd-users\w\index.php on line 43

Warning: include() [function.include]: Failed opening 'profile.php?id=' for inclusion (include_path='.;C:\php5\pear') in C:\Program Files\WebServ\httpd-users\w\index.php on line 43

Jak można to inaczej przypisać żeby zadziałało?
Awatar użytkownika
piwo
Posty: 673
Rejestracja: 13 lip 2010, 16:13:44
Płeć: Niewybrana
User Agent: Firefox Windows 1280x1024

Re: Przypisanie sciezki

Post autor: piwo »

po prostu

Kod: Zaznacz cały

include 'profile.php'; 
można też

Kod: Zaznacz cały

include __DIR__.'/profile.php'; 
{$signature}
djtomaszq
Posty: 12
Rejestracja: 05 lip 2015, 13:38:41
Strona na CBA.pl: wolanie.cba.pl
Płeć: Niewybrana
User Agent: Chrome Windows 1280x800

Re: Przypisanie sciezki

Post autor: djtomaszq »

Zamieniłem

Kod: Zaznacz cały

INCLUDE&nbsp;'profile.php?id='.$user_data['user_id'].'';&nbsp;&nbsp; 
na

Kod: Zaznacz cały

include&nbsp;__DIR__.'/profile.php?id='.$user_data['user_id'].'';&nbsp;&nbsp; 
i dalej podobny błąd:

Kod: Zaznacz cały

Warning:&nbsp;include(__DIR__/profile.php?id=2)&nbsp;[function.include]:&nbsp;failed&nbsp;to&nbsp;open&nbsp;stream:&nbsp;No&nbsp;such&nbsp;file&nbsp;or&nbsp;directory&nbsp;in&nbsp;C:\Program&nbsp;Files\WebServ\httpd-users\w\index.php&nbsp;on&nbsp;line&nbsp;43

Warning:&nbsp;include()&nbsp;[function.include]:&nbsp;Failed&nbsp;opening&nbsp;'__DIR__/profile.php?id=2'&nbsp;for&nbsp;inclusion&nbsp;(include_path='.;C:\php5\pear')&nbsp;in&nbsp;C:\Program&nbsp;Files\WebServ\httpd-users\w\index.php&nbsp;on&nbsp;line&nbsp;43
---- EDIT ----

Ten link

Kod: Zaznacz cały

http://localhost/~w/profile.php?id=3&nbsp; 
Wyświetla mi strone z profilem użytkownika ale w nowej karcie a ja chce żeby wyswietlalo w srodku strony index.php
dlatego używam

Kod: Zaznacz cały

INCLUDE&nbsp;'profile.php?id='.$user_data['user_id'].'';&nbsp; 
ale jak użyje nawet samego

Kod: Zaznacz cały

profile.php?id=3
to też ten sam błąd wyskakuje.

---- EDIT ----

Ten link

Kod: Zaznacz cały

http://localhost/~w/profile.php?id=3 
Wyświetla mi strone z profilem użytkownika ale w nowej karcie a ja chce żeby wyswietlalo w srodku strony index.php
dlatego używam

Kod: Zaznacz cały

INCLUDE 'profile.php?id='.$user_data['user_id'].''; 
ale jak użyje nawet samego

Kod: Zaznacz cały

profile.php?id=3
to też ten sam błąd wyskakuje.
Awatar użytkownika
piwo
Posty: 673
Rejestracja: 13 lip 2010, 16:13:44
Płeć: Niewybrana
User Agent: Firefox Windows

Re: Przypisanie sciezki

Post autor: piwo »

@djtomaszq
Chciałem się ograniczyć z tłumaczeniem ale widzę że kombinujesz i dopisek jest nieunikniony.
Błąd polega na Twoim sposobie myślenia, mianowicie mieszasz miejsca "wykonania się" kodu.

1. index.php includuje profile.php po stronie serwera gdzie nie ma czegoś takiego jak .php?cośtam=blabla. Nie możesz, nie masz, nie powinieneś - umieszczać ?cośtam w tej linii, bo zawsze będzie to błąd jakkolwiek to zrobisz.
2. skoro plik profile.php jest includowany przez plik index.php po stronie serwera to wszystkie zmienne z index.php są dostępne również w zaincludowanym profile.php, bez dodatkowych zabiegów w postaci ?cośtam

Teraz do rzeczy.
napisałem prosto i przejrzyście.

Kod: Zaznacz cały

include 'profile.php';
można też

Kod: Zaznacz cały

include __DIR__.'/profile.php';
I tak miałeś zrobić. Bez żadnych dodatków za tym.
{$signature}
ODPOWIEDZ