Autor Zpráva
Petr88
Profil *
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
<?
session_start();
session_register('promenna');

if($_SESSION['promenna'] == '')
{
$_SESSION['promenna'] = 1;
}

$promenna = $_SESSION['promenna'];

$promenna++;

$_SESSION['promenna'] = $promenna;


echo "promenna = $promenna";
?>
Petr88
Profil *
:-) 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
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 *
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
Proc pouzivas funkci session_register?

<?
session_start();

if (!isset($_SESSION['promenna']) {
  $_SESSION['promenna'] = 1;
} else {
  $_SESSION['promenna']++;
}

echo $_SESION['promenna'];
?>

Petr88
Profil *
session_register by měl znovuobnovit hodnu proměnné (načíst ji v podobě posledního uložení..), nebo ne?
BetaCam
Profil
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 *
Děkuji, vypadá to, že už to jede...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: