From: Danny on
Hi guys,

I always start new projects with the following session code-snippet:
(In other words this is how I initialize my sessions in the index.php file.)

### START CODE SNIPPET ########################################################
<?php
session_start();
setcookie(session_name(),"",0,"/");
unset($_COOKIE[session_name()]);
$_SESSION = array();
session_unset();
session_destroy();

session_start();


/// Define some $_SESSION variables
$_SESSION['sessionid'] = session_id() ;
$_SESSION['server'] = "http://localhost/~user/new_project" ;
$_SESSION['sql_dflts'] = $_SESSION['server']."/sql/sql_dflts.inc" ;
$_SESSION['remoteaddr'] = $_SERVER['REMOTE_ADDR'] ;
$_SESSION['remotehost'] = gethostbyaddr ( $_SERVER['REMOTE_ADDR'] ) ;

/// Include Files
include ( $_SESSION['sql_dflts'] ) ;
include ( $_SESSION['server']."/fnc/fnc_include_dir.inc" ) ;
$var_include_dir = include_dir ( "fnc" ) ;

?>
### END CODE SNIPPET #########################################################

All of the projects I have done so far were for business intranet purposes and
it worked fine. But last week I uploaded another project to the internet and my
sessions did not work.

I have been using it this way since v4.0 (I think, anyway since a LONG time
ago), but now I think it is a bit outdated and needs some kind of revision. Is
this still sufficient or can you guys give some tips on a more "updated" way of
starting my sessions?

My php.ini file is stock-standard. I am running version 5.2.6-1 with apache
2.2.9 on a Debian 5.04 machine.

Thank You

Danny
From: Ashley Sheridan on
On Thu, 2010-06-24 at 16:24 +0200, Danny wrote:

> Hi guys,
>
> I always start new projects with the following session code-snippet:
> (In other words this is how I initialize my sessions in the index.php file.)
>
> ### START CODE SNIPPET ########################################################
> <?php
> session_start();
> setcookie(session_name(),"",0,"/");
> unset($_COOKIE[session_name()]);
> $_SESSION = array();
> session_unset();
> session_destroy();
>
> session_start();
>
>
> /// Define some $_SESSION variables
> $_SESSION['sessionid'] = session_id() ;
> $_SESSION['server'] = "http://localhost/~user/new_project" ;
> $_SESSION['sql_dflts'] = $_SESSION['server']."/sql/sql_dflts.inc" ;
> $_SESSION['remoteaddr'] = $_SERVER['REMOTE_ADDR'] ;
> $_SESSION['remotehost'] = gethostbyaddr ( $_SERVER['REMOTE_ADDR'] ) ;
>
> /// Include Files
> include ( $_SESSION['sql_dflts'] ) ;
> include ( $_SESSION['server']."/fnc/fnc_include_dir.inc" ) ;
> $var_include_dir = include_dir ( "fnc" ) ;
>
> ?>
> ### END CODE SNIPPET #########################################################
>
> All of the projects I have done so far were for business intranet purposes and
> it worked fine. But last week I uploaded another project to the internet and my
> sessions did not work.
>
> I have been using it this way since v4.0 (I think, anyway since a LONG time
> ago), but now I think it is a bit outdated and needs some kind of revision. Is
> this still sufficient or can you guys give some tips on a more "updated" way of
> starting my sessions?
>
> My php.ini file is stock-standard. I am running version 5.2.6-1 with apache
> 2.2.9 on a Debian 5.04 machine.
>
> Thank You
>
> Danny
>


>From the looks of it, any values that you add to the session are
forgotten again the next time this code is called because of your use of
session_unset() and session_destory(). Generally these functions are
only used if you are closing the session.

When you say 'sessions did not work' what do you mean? Sessions aren't
being created? You can't access session variables? You need to be a bit
more specific about the issue.

Thanks,
Ash
http://www.ashleysheridan.co.uk


From: Jim Lucas on
Danny wrote:
> Hi guys,
>
> I always start new projects with the following session code-snippet:
> (In other words this is how I initialize my sessions in the index.php file.)
>
> ### START CODE SNIPPET ########################################################
> <?php
> session_start();
> setcookie(session_name(),"",0,"/");
> unset($_COOKIE[session_name()]);
> $_SESSION = array();
> session_unset();
> session_destroy();
>
> session_start();
>
>
> /// Define some $_SESSION variables
> $_SESSION['sessionid'] = session_id() ;
> $_SESSION['server'] = "http://localhost/~user/new_project" ;
> $_SESSION['sql_dflts'] = $_SESSION['server']."/sql/sql_dflts.inc" ;
> $_SESSION['remoteaddr'] = $_SERVER['REMOTE_ADDR'] ;
> $_SESSION['remotehost'] = gethostbyaddr ( $_SERVER['REMOTE_ADDR'] ) ;
>
> /// Include Files
> include ( $_SESSION['sql_dflts'] ) ;
> include ( $_SESSION['server']."/fnc/fnc_include_dir.inc" ) ;
> $var_include_dir = include_dir ( "fnc" ) ;
>
> ?>
> ### END CODE SNIPPET #########################################################
>
> All of the projects I have done so far were for business intranet purposes and
> it worked fine. But last week I uploaded another project to the internet and my
> sessions did not work.
>
> I have been using it this way since v4.0 (I think, anyway since a LONG time
> ago), but now I think it is a bit outdated and needs some kind of revision. Is
> this still sufficient or can you guys give some tips on a more "updated" way of
> starting my sessions?
>
> My php.ini file is stock-standard. I am running version 5.2.6-1 with apache
> 2.2.9 on a Debian 5.04 machine.

Nothing looks to be wrong with the session initiation code. The problem is more
the likely the calls to include a remote file. Basically, to expand your
variables out, you would be doing this:

include ( 'http://localhost/~user/new_project/sql/sql_dflts.inc' ) ;
include ( 'http://localhost/~user/new_project/fnc/fnc_include_dir.inc' ) ;

If your php.ini settings are stock, then the problem is with the
allow_url_include directive. It is set to "0" by default.

See here: http://us3.php.net/manual/en/filesystem.configuration.php

Change that setting to '1' and restart your web server, then you should be good
to go.

>
> Thank You
>
> Danny
>


--
Jim Lucas

A: Maybe because some people are too annoyed by top-posting.
Q: Why do I not get an answer to my question(s)?
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
From: Danny on
Thanks Ashley and Jim,

> When you say 'sessions did not work' what do you mean? Sessions aren't being
> created? You can't access session variables? You need to be a bit more specific
> about the issue.

Sorry, here is an explanation:

The project I uploaded for a customer is a "stock ordering" web-app that they used
on their local intranet for a year or so, but now they want this same web-app to
be available globally.

I thought that it would work "out-the-box" on the internet but it doesn't. On
their local-lan I am able to do some (advanced) login checks with sessions with no
problem, like I said, it has been workng for a year or so now. Also, the same
login sequence I use here I also use in my other intranet web-apps.

However, when I uploaded this project and I log on, I just get a blank screen
after the login checks are done and it is supposed to take me to the logged-in
start page.

That is why I say that somehow my sessions are not "carried over" or "caught" by php.

Thanks for the comments on my session initialization, if there is not really
anything that should be changed, then I will leave it like it is.

Just one more thing, should I always expand the URL's to an absolute path
instead of using a session variable like I do?

Thnks again guys

Danny
From: Mari Masuda on

On Jun 24, 2010, at 9:09 AM, Danny wrote:

> Thanks Ashley and Jim,
>
>> When you say 'sessions did not work' what do you mean? Sessions aren't being
>> created? You can't access session variables? You need to be a bit more specific
>> about the issue.
>
> Sorry, here is an explanation:
>
> The project I uploaded for a customer is a "stock ordering" web-app that they used
> on their local intranet for a year or so, but now they want this same web-app to
> be available globally.
>
> I thought that it would work "out-the-box" on the internet but it doesn't. On
> their local-lan I am able to do some (advanced) login checks with sessions with no
> problem, like I said, it has been workng for a year or so now. Also, the same
> login sequence I use here I also use in my other intranet web-apps.
>
> However, when I uploaded this project and I log on, I just get a blank screen
> after the login checks are done and it is supposed to take me to the logged-in
> start page.
>
> That is why I say that somehow my sessions are not "carried over" or "caught" by php.
>
> Thanks for the comments on my session initialization, if there is not really
> anything that should be changed, then I will leave it like it is.
>
> Just one more thing, should I always expand the URL's to an absolute path
> instead of using a session variable like I do?
>
> Thnks again guys
>
> Danny
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>



Maybe you need to change

$_SESSION['server'] = "http://localhost/~user/new_project" ;

to be not localhost.