Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] nadpisanie sesji ? token...
bronx
post
Post #1





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


witam

napisałem sobie taki skrypcik, który tworzy obrazek z wylosowanymi liczbami

  1. <?
  2. $image=ImageCreate(72,30);
  3. $czarny=ImageColorAllocate($image,255,255,255);
  4.  
  5. $bialy=ImageColorAllocate($image,0,0,0); //kolor czarny
  6.  
  7. $token = strtoupper(md5(uniqid(rand(), true)));
  8. $token = substr($token, 0, 4);
  9.  
  10. putenv('GDFONTPATH=' . realpath('.'));
  11. $font = 'tomv';
  12.  
  13. imagettftext($image, 15, 0, 7, 20, $bialy, $font, "$token");
  14.  
  15.  
  16. unset($_SESSION['token']);
  17.  
  18. $_SESSION['token'] = $token;
  19.  
  20. header("Content-type:image/jpeg");
  21. Imagejpeg($image);
  22.  
  23. ?>


no i chodzi o to, żę zmienna sesyjna "token" za kazym razem jest taka sama. Czyli jej nie nadpisuje za każym razem :/ Jak to roziwazać questionmark.gif

Ten post edytował bronx 3.09.2006, 00:57:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




To co piszesz wydaje mi się wysoce podejrzane. U mnie jest dobrze, czyli zmienna sesyjna jest nadpisywana i za każdym razem jest inna.

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
bronx
post
Post #3





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


Cytat(Cysiaczek @ 3.09.2006, 06:03:26 ) *
To co piszesz wydaje mi się wysoce podejrzane. U mnie jest dobrze, czyli zmienna sesyjna jest nadpisywana i za każdym razem jest inna.

Pozdrawiam.


no właśnie tak sięnie dzieję :/

tutaj można to zaobserwować

TEST

za każdym razem jak się odświeży stronę powinna być inna zmienna sesyjna a niestety - zmienia się tylko kod na obrazku a zmienna pozostaje ciągle ta sama :/
Go to the top of the page
+Quote Post
revyag
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


No dobra, ale podałeś kod który tworzy obrazek. Pokaż resztę.


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

------
Go to the top of the page
+Quote Post
bronx
post
Post #5





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


Cytat(revyag @ 3.09.2006, 15:14:40 ) *
No dobra, ale podałeś kod który tworzy obrazek. Pokaż resztę.


a po co Ci reszta ? tam tworzy obrazek i zapisuje wylosowany ciąg do sesji. I według mnie za każdym razem gdy odświeże stronę powinno nadpisać daną zmienną sesyjną na nową - a niestety nie robi tego :/

  1. <?php
  2. ?>
  3. <html>
  4. <head>
  5. <title>Test</title>
  6. </head>
  7. <body><center>
  8. Obrazek z kodem:<br />
  9. <img src="token.php" alt="kod" border=1><br /><br />
  10. Dane zappisane do sesji:<br /><br />
  11. <?php
  12. echo $_SESSION['token'];
  13. ?>
  14. </center></body></html>


tutaj tylko tak na szybjo sprawdzam jak wygląda sesja. I jak widać sięnie zmienia :/ Tak jakby jej nie nadpisywało

Ten post edytował bronx 3.09.2006, 14:36:21
Go to the top of the page
+Quote Post
Amorph
post
Post #6





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

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


Witam.
Mam podobny problem, skrypt wygląda podobnie jednak mi po sprawdzeniu sesji zwraca zmienną z "poprzedniego razu" tzn. jak skrypt wylosuje aaa, po sprawdzeniu nie mam nic, f5, generuje np. bbb po sprawdzeniu mam aaa.
Gdzie może być błąd ?
Go to the top of the page
+Quote Post
bronx
post
Post #7





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


Cytat(Amorph @ 4.09.2006, 14:25:33 ) *
Witam.
Mam podobny problem, skrypt wygląda podobnie jednak mi po sprawdzeniu sesji zwraca zmienną z "poprzedniego razu" tzn. jak skrypt wylosuje aaa, po sprawdzeniu nie mam nic, f5, generuje np. bbb po sprawdzeniu mam aaa.
Gdzie może być błąd ?


pewnie dlatego ze najpierw rozpoczynasz sesje (session_start()winksmiley.jpg potem gdzies losujesz i zapisujesz zmienna, ale ją pobierzesz dopiero po przejściu na kolejną podstroną (po ponownym rozpoczęciu sesji) - przynajmniej tak mi się wydaję smile.gif

a co do mojego problemu to dokopałem się do wiadomości iż na większości serwerów, gdzie jest skonfigurowane php, jedna ze zmiennych konfigurujących zachowanie się sesji jest ustawiona tak, że wartości sesji nie są przechowywane na serwerze tylko w ciasteczku przeglądarki użytkownika.
dlatego też może się zdarzyć, że zapisana wartość sesyjna dopiero po kolejnym odczytaniu strony jest brana pod uwagę.

Dlategorozwiazałem to w inny sposób - zapisuje sesje o wygenerowanej wcześniej nazwie a nie wartości - w tym wypadku nie nadpisuje żadnej zmiennej ale tworze nową...

pozdrawiam
Go to the top of the page
+Quote Post
ZaHoryzontem
post
Post #8





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 17.09.2006

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


U mnie ten problem też niestety występuje... skrypty mam rozwiązane tak:

Jeden skrypt zawiera formularz, który przekazuje zmienne do drugiego skryptu.

Drugi skrypt rejestruje zmienne w sesji, ale ma przycisk "wróć", który przekierowuje usera do poprzedniej strony.

No i problem w tym, że jeśli po powrocie do poprzedniej strony user zmieni jakąś wartość w formularzu, to po przejściu do drugiej strony mam starą wartość zmiennej...

Chyba nie ma sensu wklejać całych skryptów....

początek drugiego to:
  1. <?php
  2. session_start("test");
  3.  
  4. session_register("nazwisko");
  5. session_register("data_dzien");
  6. session_register("data_miesiac");
  7. session_register("data_rok");
  8. session_register("licencja");
  9. session_register("miasto");
  10. session_register("kod_pocztowy");
  11. session_register("telefon");
  12. session_register("e_mail");
  13. ?>


Noc przyniosła rozwiązanie...

Jełśi w skrypcie (np. formularzu) używa się tych samych nazw zmiennych co w swssji, to przy przejściu do nowej strony, "ma" ona wartości zmiennych z formularza - po czym wywołujemy session_start() - a ta funkcja odczytuje zmienne już w sesji zapisane i nadpisuje je na zmienne przekazane wcześniej.

Rozwiązaniem jest używanie 2 zestawów zmiennych - jeden wyłącznie na użytek sessji, drugi na którym operuje "reszta" skryptu i oczywiście odpowiednio przypisywać im wzajemnie wartości.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 09:17