Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Otwieranie istniejącej sesji, w "pod pliku"
seba22
post
Post #1





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Witam,
Temat może trochę wydawać się zdradliwy ale zaraz powiem o co chodzi.

Od 2 godzin, walczę z pewnym debilizmem, i ogołociłem skrypt który napisałem, teraz do zera ( tak wiem głupia metoda, najpierw napisać, potem sprawdzić czy działa), tak wiec rozebrałem go... i doszedłem gdzie jest problem.

Problem jest w tym.

W ogóle koncepcja przyjmuje że identyfikator sesji pobierany jest przez POST i wykonywany w kontekście serwera a nie użytkownika.
( dla tego nie jest pobierany z Cookies)

Więc mamy kod który odbiera ten PHPSSID.
( to działa poprawnie )
a potem funkcja przypisania PHPSSID
( też działa poprawnie )

  1. <?php
  2. if (isset($_POST["PHPSESSID"])) {
  3.        session_id($_POST["PHPSESSID"]);
  4.      
  5.    }
  6.    session_start();
  7. ?>



Wykonałem sobie kontrolę printując do pliku zawartość POST oraz ZAINSTALOWANEJ sesji:
  1. <?php
  2. "$_POST[PHPSESSID] --".session_id()."
  3. ?>


100 % zgodności ! czyli sesja ustawiona poprawnie.

A dostępu do danych nie mam ! :/

Dałem w ramach analizy:
  1. <?php
  2. .var_dump($_SESSION).
  3. ?>


I nic.... nic nie dumpuje... pustka !
Jeżeli sesja jest ustawiona poprawnie, to jakim cudem może mi nie wyświetlać zawartości na serwerze... to moja sesja gdzie mam kilka wartości zapisanych, mój, id, login itp :/

(wszystko dumpuje do pliku .txt takim kodem )

( nie jest on czescia kodu właściwego, to tylko narzędzie diagnostyczne)

  1. <?php
  2. $dane = "$_POST[PHPSESSID] --".session_id()." ".var_dump($_SESSION).".- $name -- $system ".$user[id]."--> ".$_FILES["Filedata"]['name']." bla zalogowany-> ".$_SESSION[zalogowany]."<-zalogowany ";
  3. // przypisanie zmniennej $file nazwy pliku
  4. $file = "/var/www/virtual/pornthunder/htdocs/klaster/1342/nastolatki/fastdevices/ramdrive/test.txt";
  5. // uchwyt pliku, otwarcie do dopisania
  6. $fp = fopen($file, "a");
  7. // blokada pliku do zapisu
  8. flock($fp, 2);
  9. // zapisanie danych do pliku
  10. fwrite($fp, $dane);
  11. // odblokowanie pliku
  12. flock($fp, 3);
  13. // zamknięcie pliku
  14. fclose($fp);
  15. ?>
Go to the top of the page
+Quote Post
shine
post
Post #2





Grupa: Zarejestrowani
Postów: 78
Pomógł: 5
Dołączył: 15.04.2006

Ostrzeżenie: (10%)
X----


fajnie ze utworzyles sesje ale zeby miec dostep do pewnych danych trzeba tez pewne zmienne w tablicy sesji ustawic

najprosciej po inicjalizacji sesji, np:

  1. <?php
  2. $_SESSION['ukryta_tresc'] = true;
  3. ?>


i wtedy dopiero wszedzie gdzie tresc jest niedostepna dla niezalogowanych musisz dac warunek

  1. <?php
  2. if($_SESSION['ukryta_tresc'] == true)
  3. {
  4.        echo 'ukryta tresc';
  5. }
  6. else
  7. {
  8.        echo 'brak dostepu';
  9. }
  10. ?>


Ten post edytował shine 21.04.2009, 06:27:41
Go to the top of the page
+Quote Post
seba22
post
Post #3





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Nie zrozumiałeś mnie.
To sesja użytkownika, który siedzi na stronie www, i jest zalogowany.

W tym wypadku ja, i mam te dane w sesji, wpisane...

Inicjuje te sesje w osobnym pliku, wykonuje z poziomu flasha (SWF_UPLOAD), i kicha...

To nie wina SWF upload, bo sesja jest inicjowana, i to w dodatku poprawnie...

Ale nie mam danych, które są przypisane do sesji !

Więc potrzebuję pomocy...

Wiesz, mam dane w sesji, inicjuje ją, i nie mam tych danych które w innym pliku, cały czas mam !
Cały czas jestem zalogowany, mam stan OK, failed, wszystkie wpisy,w normalnym skrypcie działają poprawnie.
A kiedy wywołam je w innym pliku, to już fail... nie mam dostępu...
Nie mam pojęcia czego to jest wina.

Mówię, głupieje, idiotyzm tego powoduje iż pragnę sądzić że to jakiś błąd :/
Go to the top of the page
+Quote Post
shine
post
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 5
Dołączył: 15.04.2006

Ostrzeżenie: (10%)
X----


mi czasami w takich przypadkach pomagalo odpalanie we wszystkich includowanych plikach session_start() pomimo tego ze bylo juz w glownym
Go to the top of the page
+Quote Post
seba22
post
Post #5





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Ale to nie includowany plik.


STRONA GŁOWNA -> include podstrony UPLOAD

( na podstronie UPLOAD mam formularz we flashu, wysyłający plik, do pliku STAND ALONE ( sam plik, zwykły, nie includowany, sam, solo, nic, bez niczego, bez dodatków )

więc formularz wywołuje plik
./upload.php


Tak wywołany plik, nie będzie miał SESJI użytkownika.

Więc w formularzu flash, w polu PHPSSID wygenerowałem identyfikator usera.
session_id();


I taki identyfikator wysłałem, wraz ze plikiem (wgrywanym) do pliku -> upload.php

upload.php odbiera identyfikator
session_id();
i ustawia go, jako właściwy dla tej sesji.

Dzięki temu, powinienem móc zweryfikować czy użytkownik, ma prawo wgrywać pliki, czy nie.

To logiczne chyba, że zabezpieczenie musi być po stronie serwera, bo inaczej ktoś by zrobił własny formularz i by ominął wszystko.

Dla tego to jest wymagane, żebym uzyskał dostęp do tej sesji... tak żebym mógł tam wykonać operacje w stosunku do użytkownika.

Proszę o pomoc !

----------------------------------------------------
----------------------------------------------------

Witam ponownie,

Od rana siedzę, nad ustaleniem miejsca problemu.
Doszedłem do następującego wniosku, że chyba źle przypisuje sesję.

Proszę spojrzeć, utworzyłem następujący kod:

(IMG:http://www.bankfotek.pl/thumb/223021.jpeg)

Na sztywno przypisuje identyfikator sesji, który posiadam.
Oto efekt.

W Firefoksie, ten identyfikator sesji, znajduje się w cookies ( działa ) w operze, gdzie identyfikatora sesji nie ma w cookies, ale przypisuje go TYM SAMYM kodem, potwierdza mi przypisanie, ale tablica jest pusta.

(IMG:http://www.bankfotek.pl/thumb/223023.jpeg)

Z cookies działa, z session_id(identyfikator) nie działa już :/
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A jeśli robisz z ciastkami, to w którym miejscu ustawiasz? Tzn. ścieżka do skryptu ustawiającego; patrz: session_set_cookie_params" title="Zobacz w manualu PHP" target="_manual.
Go to the top of the page
+Quote Post
seba22
post
Post #7





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Ale ja nie chce w ogóle ciasteczek.

Ten plik, ma się wykonać względem sesji którą prześle POST-em, niezależnie jaka będzie treść PHPSSID w cookies.


Siedzę już nad tym, kilka godzin...


  1. <?php
  2.  
  3. // session_start();
  4.  //session_destroy();
  5. //session_unset();
  6.    // Work-around for setting up a session because Flash Player doesn't send the cookies
  7.    if (isset($_POST["PHPSESSID"]))
  8.    {
  9. session_id($_POST["PHPSESSID"]);
  10.    }
  11.  
  12. //session_start();
  13. ?>


Takie coś działa poprawnie pod IE8.

Pod firefoksem nie widzi sesji...



Ktoś mnie będzie miał na sumieniu.,, :/
Go to the top of the page
+Quote Post
megawebmaster
post
Post #8





Grupa: Zarejestrowani
Postów: 143
Pomógł: 17
Dołączył: 8.11.2008
Skąd: Libiąż

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


A co z akceptowaniem sesji spoza cookie? Jest takie zabezpieczenie serwera, może jest włączone?
Go to the top of the page
+Quote Post
seba22
post
Post #9





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Mam confignięte tak:

Kod
; Whether to use cookies.
session.use_cookies = 1

;session.cookie_secure =

; This option enables administrators to make their users invulnerable to
; attacks which involve passing session ids in URLs; defaults to 1.
session.use_only_cookies = 1

; Name of the session (used as cookie name).
session.name = PHPSESSID

; Initialize session on request startup.
session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 1296000

; The path for which the cookie is valid.
session.cookie_path = /

; The domain for which the cookie is valid.
session.cookie_domain =

; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
session.cookie_httponly =

; Handler used to serialize data.  php is the standard serializer of PHP.
session.serialize_handler = php


Jak widzisz dla wszystkich domen poprawne, httponly brak :/ domaina brak :/
normalnie nie wiem :/
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A session.use_trans_sid?

Cytat
Ale ja nie chce w ogóle ciasteczek.

Masz jakiś argument?
Go to the top of the page
+Quote Post
seba22
post
Post #11





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


TRANS - jest do przekazywania urlem phpssida.
po GECIE... dla non cokie browserów.

My tu mówimy o innej sprawie...
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: 16.09.2025 - 00:31