Re: question about session variables
| From: | Ted Wood | Date: | Mon, 02 Jun 2008 18:31:59 +0000 |
| Subject: | Re: question about session variables | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-274935@lists.php.net to get a copy of this message | ||
How are you "calling thankyou.php"?
1. are you -redirecting- the user to that file?
--or--
2. are you -including- that file into register.php upon a successful submission?
The method you're using determines how you best secure thankyou.php from direct access.
If you're redirecting, then using a session variable is what you want.
If you're including, then a simple constant or variable defined in register.php can be checked and validated in thankyou.php.
NOTE: use of session_register() is deprecated. After calling session_start(), just assign variables directly to $_SESSION:
$_SESSION['firstname'] = 'Fred;
~Ted
On 2-Jun-08, at 11:12 AM, Sudhakar wrote:
i have a registration page called register.php if the data entered is validated correctly i call a file called thankyou.php or else validate.php presently a user after seeing the url website.com/thankyou.php if they enter the url directly in the browser as website.com/thankyou.php they can access the file, if a user accesses the file this way i would like to redirect to a page saying "Direct acess to this file is not allowed" previously i used sessions in register.php and also in thakyou.php and validate.php and it worked fine for some reason now it is not working the way it is supposed to i might have made some changes which i do not know previously my code in register.php was, the first few lines of register.php file ===================================================================== <?php ob_start(); session_start(); if(!session_is_registered("directaccess")) { session_register("directaccess"); } // rest of the html and php code ob_end_flush(); ?> ===================================================================== code in thankyou.php, the first few lines of register.php file ===================================================================== <?php session_start(); if(!session_is_registered("directaccess")) { header("Location: http://website.com/directaccess.html"); exit; } // rest of the html and php code ob_end_flush(); ?> ===================================================================== NOTE = in thankyou.php i display a thank you message by retrieving the first name from register page and displaying in thankyou.php using session variables in the following way in register.php, the first few lines of register.php file ===================================================================== if(!session_is_registered("firstname")) { session_register("firstname "); } $_SESSION[firstname] = $ firstname; ===================================================================== in thankyou.php, the first few lines of register.php file ===================================================================== if(session_is_registered("firstname ")) { echo $_SESSION[firstname]; session_unregister("firstname "); } ===================================================================== please advice how i should rewrite the php code in both the files(register.php and thankyou.php) so that if a user enters the url directly in the browser i can redirect to directaccess.html file thanks.