Jump to content

[SOLVED] Help with sessions


Archadian

Recommended Posts

For some reason my sessions aren't working. I haven't tested to see if cookies are working or not. Its not passing the info between the pages. I tested it on another computer but it didn't work there either. Any suggestions would be greatly appreciated. Here is my php.ini settings for sessions:

 

[session]
; Handler used to store/retrieve data.
session.save_handler = files

; Argument passed to save_handler.  In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
;
; As of PHP 4.0.1, you can define the path as:
;
;     session.save_path = "N;/path"
;
; where N is an integer.  Instead of storing all the session files in
; /path, what this will do is use subdirectories N-levels deep, and
; store the session data in those directories.  This is useful if you
; or your OS have problems with lots of files in one directory, and is
; a more efficient layout for servers that handle lots of sessions.
;
; NOTE 1: PHP will not create this directory structure automatically.
;         You can use the script in the ext/session dir for that purpose.
; NOTE 2: See the section on garbage collection below if you choose to
;         use subdirectories for session storage
;
; The file storage module creates files using mode 600 by default.
; You can change that by using
;
;     session.save_path = "N;MODE;/path"
;
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
session.save_path = C:\php\sessions

; Whether to use cookies.
session.use_cookies = 1

;session.cookie_secure =

; This option enables administrators to make their users invulnerable to
; attacks which involve passing session ids in URLs; defaults to 0.
session.use_only_cookies = 1

; Name of the session (used as cookie name).
session.name = PHPSESSID

; Initialize session on request startup.
session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

; The path for which the cookie is valid.
session.cookie_path = /

; The domain for which the cookie is valid.
session.cookie_domain = 

; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
session.cookie_httponly = 

; Handler used to serialize data.  php is the standard serializer of PHP.
session.serialize_handler = php

; Define the probability that the 'garbage collection' process is started
; on every session initialization.
; The probability is calculated by using gc_probability/gc_divisor,
; e.g. 1/100 means there is a 1% chance that the GC process starts
; on each request.

session.gc_probability = 1
session.gc_divisor     = 1000

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440

; NOTE: If you are using the subdirectory option for storing session files
;       (see session.save_path above), then garbage collection does *not*
;       happen automatically.  You will need to do your own garbage
;       collection through a shell script, cron entry, or some other method.
;       For example, the following script would is the equivalent of
;       setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
;          cd /path/to/sessions; find -cmin +24 | xargs rm

; PHP 4.2 and less have an undocumented feature/bug that allows you to
; to initialize a session variable in the global scope, albeit register_globals
; is disabled.  PHP 4.3 and later will warn you, if this feature is used.
; You can disable the feature and the warning separately. At this time,
; the warning is only displayed, if bug_compat_42 is enabled.

session.bug_compat_42 = 0
session.bug_compat_warn = 1

; Check HTTP Referer to invalidate externally stored URLs containing ids.
; HTTP_REFERER has to contain this substring for the session to be
; considered as valid.
session.referer_check =

; How many bytes to read from the file.
session.entropy_length = 0

; Specified here to create the session id.
session.entropy_file =

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

; Set to {nocache,private,public,} to determine HTTP caching aspects
; or leave this empty to avoid sending anti-caching headers.
session.cache_limiter = nocache

; Document expires after n minutes.
session.cache_expire = 180

; trans sid support is disabled by default.
; Use of trans sid may risk your users security.
; Use this option with caution.
; - User may send URL contains active session ID
;   to other person via. email/irc/etc.
; - URL that contains active session ID may be stored
;   in publically accessible computer.
; - User may access your site with the same session ID
;   always using URL stored in browser's history or bookmarks.
session.use_trans_sid = 0

; Select a hash function
; 0: MD5   (128 bits)
; 1: SHA-1 (160 bits)
session.hash_function = 0

; Define how many bits are stored in each character when converting
; the binary hash data to something readable.
;
; 4 bits: 0-9, a-f
; 5 bits: 0-9, a-v
; 6 bits: 0-9, a-z, A-Z, "-", ","
session.hash_bits_per_character = 5

; The URL rewriter will look for URLs in a defined set of HTML tags.
; form/fieldset are special; if you include them here, the rewriter will
; add a hidden <input> field with the info which is otherwise appended
; to URLs.  If you want XHTML conformity, remove the form entry.
; Note that all valid entries require a "=", even if no value follows.
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

Link to comment
https://forums.phpfreaks.com/topic/39383-solved-help-with-sessions/
Share on other sites

Yeah, session_start(); is at the top of every page, i have a masked web address, i bought a domain name that redirects to the free domain for my server, my server domain name is masked but i don't think that would cause a problem. I put the " " around the save path, i made sure IUSR_%machine% has full access...still isn't working ><

I have a script that i use to test code before i waste my time coding a full page of it.

 

test.php:

 

<?php

session_start();

$email = "email";
$ne = "no email";

//Test $_SERVER['PHP_SELF']

echo "<table align=\"center\" width=\"50%\" height=\"10%\">";   
echo "<tr>";
echo "<form ACTION=\"" . $_SERVER['PHP_SELF'] . "\" METHOD=\"POST\">";
echo "<td align=\"center\" width=\"100%\">";
echo "<INPUT TYPE=\"text\" NAME=\"email\">";
echo "<INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\"Send\">";
echo "</td>";
echo "</form>";
echo "</tr>";
echo "<tr>";
echo "<td align=\"center\" width=\"100%\">";

if (isset($_POST['email']) && $_POST['email'] == $email) {

	echo "EMAIL!";

}
elseif (isset($_POST['email']) && $_POST['email'] == $ne) {

	echo "NO EMAIL";

}
else {

	echo "";

}


echo "</td>";
echo "</tr></table>";

unset($_POST['email']);


function test() {        //test function

echo "It works!";

}

test(); //Worked

$work = "worked";  //test sessions
$_SESSION['test'] = $work;

echo "<META http-equiv=\"refresh\" content=\"1;URL=test2.php\">";

?>

 

 

test2.php:

 

<?php

session_start();

echo $_SESSION;
echo "<br>";
echo $_SESSION['test'];
echo "<br>";
print_r($_SESSION);

?>

 

Test2.php shows this:

 

Array

Array ( ) 

Create a page with this code:

 

<?php
session_start();
if (isset($_SESSION['count']))
	{
	$_SESSION['count']++;
	}
else
	{
	$_SESSION['count']=0;
	}
echo $_SESSION['count'];
?>

 

Then, go to that page. Refresh it a few times. See if the number it outputs increases. If it does increase, there is a problem with your script, if it doesn't, there is most likely a problem with your PHP session temp dir or a setting in php.ini

yeah. the web domain i bought is www.ehvelocity.com which is masking ehvelocity.servehttp.com. the script you gave me is www.ehvelocity.com/sess.php. if you go to www.ehvelocity.com/include/ the index.php script in that folder (usually blank) is supposed to send you to a page that says "Directory Error" "Access to this directory is restricted"

 

func.php:

 

<?php

session_start();

//Error Functions

function restricted_error() {

if ($_SERVER['REMOTE_ADDR'] != '127.0.0.1') {

	$rtitle = "Script Error";
	$restricted = "Access to this script is retricted.";

	$_SESSION['rtitle'] = $rtitle;
	$_SESSION['restricted'] = $restricted;

	echo "<META http-equiv=\"refresh\" content=\"1;URL=../index.php?modules=error\">";

}

}

function restricted_dir() {

if (isset($_SERVER['HTTP_REFERER'])) {

	$rtitle = "Directory Error";
	$restricted = "Access to this directory is retricted.";

	$_SESSION['rtitle'] = $rtitle;
	$_SESSION['restricted'] = $restricted;

	echo "<META http-equiv=\"refresh\" content=\"1;URL=../index.php?modules=error\">";

}

}		

//Functions

?>

 

it redirects to index.php?modules=error:

 

<?php

session_start();

include('include/wbsite.php');

$color = "#282828";

echo "<table align=\"center\" valign=\"top\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"480\">";

echo "<tr>";
echo "<td colspan=\"3\" align=\"center\" width=\"480\" height=\"10\"></td>";
echo "</tr>";

echo "<tr>";
echo "<td align=\"center\" width=\"16\" height=\"14\" background=\"" . $mstopl . "\"></td>";
echo "<td align=\"center\" width=\"448\" height=\"14\" background=\"" . $mstop . "\"></td>";
echo "<td align=\"center\" width=\"16\" height=\"14\" background=\"" . $mstopr . "\"></td>";
echo "</tr>";
echo "</table>";

echo "<table  class=\"gena\" align=\"center\" valign=\"top\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"480\">";
echo "<tr>";
echo "<td align=\"center\" width=\"11\" height=\"14\" background=\"" . $msleft . "\"></td>";

if (isset($_SESSION['rtitle']) && isset($_SESSION['restricted'])) {

$rtitle = $_SESSION['rtitle'];

echo "<td align=\"center\" valign=\"top\" width=\"448\" height=\"27\" background=\"" . $mshd . "\">" . $rtitle . "</td>";

}
else {

echo "<td align=\"center\" valign=\"top\" width=\"448\" height=\"27\" background=\"" . $mshd . "\">No Error</td>";

}

echo "<td align=\"center\" width=\"11\" height=\"14\" background=\"" . $msright . "\"></td>";
echo "</tr>";
echo "</table>";

echo "<table  class=\"ms\" align=\"center\" valign=\"top\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"480\">";
echo "<tr>";
echo "<td align=\"center\" width=\"11\" height=\"14\" background=\"" . $msleft . "\"></td>";

if (isset($_SESSION['rtitle']) && isset($_SESSION['restricted'])) {

$restricted = $_SESSION['restricted'];

echo "<td class=\"transparent\" align=\"center\" width=\"448\" height=\"75\" bgcolor=\"" . $color . "\">" . $restricted . "</td>";

}
else {

echo "<td class=\"transparent\" align=\"center\" width=\"448\" height=\"75\" bgcolor=\"" . $color . "\">You will be redirected to the homepage. If you are not redirected in 5 seconds, click <a href=\"" . $www . "\">here.</td>";

}

echo "<td align=\"center\" width=\"11\" height=\"14\" background=\"" . $msright . "\"></td>";
echo "</tr>";
echo "</table>";

echo "<table  class=\"gen\" align=\"center\" valign=\"top\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"480\">";
echo "<tr>";
echo "<td align=\"center\" width=\"11\" height=\"10\" background=\"" . $msleftb . "\"></td>";
echo "<td class=\"transparent\" align=\"center\" width=\"448\" height=\"10\" bgcolor=\"" . $color . "\"></td>";
echo "<td align=\"center\" width=\"11\" height=\"10\" background=\"" . $msrightb. "\"></td>";
echo "</tr>";
echo "</table>";

echo "<table  class=\"gen\" align=\"center\" valign=\"top\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"480\">";
echo "<tr>";
echo "<td align=\"center\" width=\"19\" height=\"12\" background=\"" . $msbotl . "\"></td>";
echo "<td align=\"center\" width=\"448\" height=\"12\" background=\"" . $msbot . "\"></td>";
echo "<td align=\"center\" width=\"19\" height=\"12\" background=\"" . $msbotr. "\"></td>";
echo "</tr>";
echo "</table>";

unset($_SESSION['rtitle']);
unset($_SESSION['restricted']);

echo "<META http-equiv=\"refresh\" content=\"2;URL=../index.php\">";

?>

 

after the redirect the if statements on the index.php script are always false meaning $_SESSION['rtitle'] and ['restricted'] are empty (not set)

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.