|
Posted by vdP on 10/16/42 11:35
PulsarSL@gmail.com wrote:
> Hey
>
> I have a WAMP setup (windows/apache/mysql/php). I'm running the latest
> version of all of them with a default installation of all of them. PHP
> works great with apache (as a module, not cgi), except that sessions
> aren't working. The script at the bottom of this post never increments
> my hit count. Do I need to turn sessions on somehow in php.ini?
>
> Thanks,
>
> PulsarSL
> ----
>
> Works great on a remote web server I have, so it's not the script...
>
> <?php
> // Initialize a session. This call either creates
> // a new session or re-establishes an existing one.
> session_start( );
>
> // If this is a new session, then the variable
> // $count will not be registered
> if (!session_is_registered("count"))
> {
> session_register("count");
> session_register("start");
>
> $count = 0;
> $start = time( );
> }
If you use the latest version of WAMP or PHP, you are using PHP 5. This
means that register_globals is disabled by default. Therefore you should
use the superglobal $_SESSION, instead of session_is_registered and
session_register. Quoting the manual-page of session_register at php.net
( http://nl3.php.net/manual/en/function.session-register.php)
"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."
Using $_SESSION the code can be rewritten as (may contain typos)
if (!isset($_SESSION['count'])){
$_SESSION['count']=0;
$_SESSION['start']=time();
} else {
$_SESSION['count']++;
}
Hope this helps.
vdP
[Back to original message]
|