Autor | Zpráva | ||
---|---|---|---|
Petr88 Profil * |
#1 · Zasláno: 27. 1. 2008, 16:15:08
Dobrý den,
mám problém se SESSION. Když si vyjedu informace o PHP nastavení (phpinfo()), tak zjistím, že session není nastavený na autostart, tedy při spouštění scriptu vždy zavolám session_start(). Pak ale chcu přidat nějakou proměnnou do sessionu, tak si ji vytvořím session_register("promenna") a na konci skriptu dám, ze promenna bude o 1 vetsi, tedy ji incrementuji, jenomže po znovunačtení stránky zjistím na začátku při výpisu, že v $_SESSION['promenna'] je prázdná (= '')... :-( Malý příklad: session_start(); session_register('promenna'); if($_SESSION['promenna'] == '') { $_SESSION['promenna'] = 1; } $_SESSION['promenna']++; a pořád se mi po refreshi dokola vypisuje že výsledek je 1 a po inc 2, místo toho aby to vždy o jednotku se navýšilo... Děkuji za rady... |
||
jrm Profil |
#2 · Zasláno: 27. 1. 2008, 16:38:13
<?
session_start(); session_register('promenna'); if($_SESSION['promenna'] == '') { $_SESSION['promenna'] = 1; } $promenna = $_SESSION['promenna']; $promenna++; $_SESSION['promenna'] = $promenna; echo "promenna = $promenna"; ?> |
||
Petr88 Profil * |
#3 · Zasláno: 27. 1. 2008, 17:15:39
:-) Děkuji za marný pokud, ono jest totiž jedno jestli ta proměnná je předána se SESSION do jiné a pak incrementována, v tom problém není, problém je v tom, že se zřejmě proměnná na začátku nenačte a místo uloženého čísla je nulová (prázdná), ale děkuji..
|
||
jrm Profil |
#4 · Zasláno: 27. 1. 2008, 17:40:03
Marný? Mi to chodí. Pak je to "v nějakém nastavení" a to je mimo mne :-(
Pokud to ladíš na locale, podívej se do session_souboru, co se ti v něm děje. Jestli se vůbec založí... |
||
Petr88 Profil * |
#5 · Zasláno: 27. 1. 2008, 17:49:51
Marný, myšleno, že to nevyřešilo můj problém, na který jsem se ptal. Neřekl jsem, že je to špatně napsané, či nefunkční...
|
||
sicario Profil |
#6 · Zasláno: 27. 1. 2008, 18:36:21
Proc pouzivas funkci session_register?
<? session_start(); if (!isset($_SESSION['promenna']) { $_SESSION['promenna'] = 1; } else { $_SESSION['promenna']++; } echo $_SESION['promenna']; ?> |
||
Petr88 Profil * |
#7 · Zasláno: 28. 1. 2008, 11:08:25
session_register by měl znovuobnovit hodnu proměnné (načíst ji v podobě posledního uložení..), nebo ne?
|
||
BetaCam Profil |
#8 · Zasláno: 28. 1. 2008, 11:15:53 · Upravil/a: BetaCam
Petr88
viz. manuál: Caution If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled. Note: register_globals: important noteSince PHP 4.2.0, the default value for the PHP directive register_globals is off, and it is completely removed as of PHP 6.0.0. The PHP community encourages all to not rely on this directive but instead use other means, such as the superglobals. Caution This registers a global variable. If you want to register a session variable from within a function, you need to make sure to make it global using the global keyword or the $GLOBALS[] array, or use the special session arrays as noted below. Caution If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister(). |
||
Petr88 Profil * |
#9 · Zasláno: 28. 1. 2008, 15:36:52
Děkuji, vypadá to, že už to jede...
|
||
Časová prodleva: 16 let
|
0