Autor Zpráva
Broněk
Profil *
Zdravím,

mám nějaké stránky v php a do index.php úplně na začátek jsem vložil tento kód.

<?php
session_start();
$_SESSION['cap'] = $_SESSION['cap'] + 1;



mrknu do session a mám tam

Array
(
     [cap] => 491
)



stisknu v prohlížeči F5 (reload stránky) a v session mám

Array
(
     [cap] => 503
)


Očekával bych tam spíše hodnotu 492, nebo ne?

Je tohle normální? žádné přesměrování tam nemam, tak proč se načítá stránka 12x?

Poradí někdo? Díky za pomoc
panther
Profil
Broněk:
musíš mít chybu někde jinde, v tomto kousku kódu není.

<?php

session_start();
$_SESSION['cap'] = isset($_SESSION['cap']) ? $_SESSION['cap'] + 1 : 1;

var_dump($_SESSION['cap']);

?>
Toto je to, co píšeš. Když budeš refreshovat, bude se přičítat jednička.
Broněk
Profil *
Tak to nemůžu vůbec najít, nemá někdo napsanou nějakou funkci, která by uložila třeba do session každou požadovanou adresu do pole a mohl se s ní zde podělit? To by mi asi hodně napovědělo .. Díky
panther
Profil
Broněk:
nevymýšlej zbytečné (nějaké pole s hodnotami session nepotřebuješ, session je samo o sobě pole), spíš ukaž, co tam konkrétně máš ty.

Chybu musíš najít a opravit ve svém kódu, ne se j snažit zamaskovat nebo jí hledat tam, kde není.

Mnou uvedený kód v [#2] je funkční, dělá přesně to, co chceš. Teď už chybí jen najít chybu, kde se ti to násobí. To víš jen ty, zatím ses s námi o kód nepodělil.
Doporučuji ti odmazávat postupně jednotlivé funkční bloky a zkoumat, jestli se stále přičítá po více než jedné, nebo ne. Tak nejdeš snadno místo, kde k chybě dochází.

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:

0