Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: require i ciastka - nie chcą działać :(
Forum PHP.pl > Forum > Przedszkole
eViLek
Witam!

Próbuje zrobić system logowania na stronkę i mam pewien problem. Mma główną stronę, gdzie dodaje przez funkcje require inne strony z podkatalogu "include". W momencie wykonywania autoryzacji, stawiam ciastka:

Kod
setcookie("user", $user, time()+3600);
setcookie("pass", $pass, time()+3600);
header("Location: $startpage");
exit();


i od razu robię przekierowanie na stronę główną. Na niej mogę te ciastka odczytać, tak samo jak w każdym pliku z dowolnego podkatalogu. Alo gdy chcę te ciastka odczytać z pliku dodanego do index.php przez funkcje require to pokazuje mi



Cytat
Notice: Undefined index: user in c:\www\new\include\cook.php on line 2
Array ( )


A to listing z tego co wyswietla cook.php wywolany bezposrednio:

Cytat
admin
Array ( [user] => admin [pass] => 21232f297a57a5a743894a0e4a801fc3 )


cook.php
Kod
<?
    echo($_COOKIE['user']."<br \>");
    print_r($_COOKIE);
?>
dr_bonzo
Probujesz odczytac zawartosc ciastka (przez $_COOKIE) zaraz po jego ustawieniu (w tym samym skrypcie)? Nie da sie tak.
eViLek
Nie, nie i jescze raz nie! Ciastka ustawia całkiem inny skrypty który potem ładuje stronę główną i tam ciastka są dostępne smile.gif tylko jeżeli dodam do tej strony jakiś plik przez include, który tak jak powyżej chce wyciągnąc dane o jakimś ciastku to nie działa i wyskakuje błąd!
eViLek
Zauważyłem, że jeżeli dołącza się pliki w ten sposób:
Kod
1) include("katalog/plik.php");

to ciastka działają, ale jeżeli dodaje ze ścieżka...
Kod
2) include("http://localhost/new/katalog/plik.php");

to wtedy ciastka nie są dostępne! A niestety jeżeli chcę skorzystać z 1 opcji to nie mogę gdyż wywołuje adresy w sposób...
Kod
require("http://localhost/new/include/menu.php?foo=$foo&auth=yes&user=$user");

a przy wywolaniu
Kod
require("include/menu.php?foo=$foo&auth=yes&user=$user");

Wyskakuje mi błąd
Cytat
Warning: main(include/menu.php?foo=1&auth=yes&user=user): failed to open stream: No such file or directory in c:\www\new\go.php on line 44

Warning: main(): Failed opening 'include/menu.php?foo=1&auth=yes&user=user' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\www\new\go.php on line 44



Więc problem powoli już rozwiązany... widziałem, że sporo osób ma z tym problem więc powiem jak ja to zrobiłem... poprostu wystrczy poczytać manuala dokłądniej i człowiek dowiaduje się, że wywwołując
Kod
include("include/plik.php")

przy sutawionych zmiennych np. $foo = 1, $auth = 0 itdd... są one automatycznie przekazywane do tej strony plik.php. Czyli jednym słowem zastepuje to składnie
Kod
include("http://localhost/include/menu.php?foo=$foo&auth=yes&user=$user");

i zmienne pobieramy nie za pomoca $_GET['foo'] tylko poprostu $foo winksmiley.jpg Pozdrawiam! winksmiley.jpg
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.