Hello, i am expreriencing strange problems with cookies.
For example when i use:
$GLOBALS['something']
it works on my apache2 and php 4.4.0 while $HTTP_COOKIE_VARS['something'] works only sometimes. ... why is that?
also on my other machine apache 1.3.28 and php 4.3.3
$GLOBALS['something'] dont work at all .... but $HTTP_COOKIE_VARS['something'] still works sometimes ...... whyyyy?????
i really need to know some way that will work on every machine i try it ...
please help...
Cookie Problem
Moderator: General Moderators
read up on "register globals"
i think your problem of $GLOBALS['something'] only working sometimes is because you are depending upon register globals, or do not understand how the $GLOBALS array is structured. to have a look, do
print_r($GLOBALS);
you should also use the new superglobals instead of the old $HTTP_*_VARS
for example, use $_COOKIE
http://www.php.net/en/language.variables.predefined
i think your problem of $GLOBALS['something'] only working sometimes is because you are depending upon register globals, or do not understand how the $GLOBALS array is structured. to have a look, do
print_r($GLOBALS);
you should also use the new superglobals instead of the old $HTTP_*_VARS
for example, use $_COOKIE
http://www.php.net/en/language.variables.predefined
okay i've replaced everything with the $_COOKIE variable but still no result here is some of the code:
the function checks if the user is logged and does he have enought level to start a new forum thread .... but its not even close to working on my linux machine php 4.3.3
the same code works on my windows php 4.4.0
here is the code that works on both machines :
the first one works only on my windows php 4.4.0
and the second one works on my windows php 4.4.0 and on my linux 4.3.3
...
any ideas?
Code: Select all
<?php
function getforums(){
// if has needed userlevel then can add forums!
if($GLOBALS['logged'] == 1) {
if (get_user_lvl_by_username($GLOBALS['user']) > 4) echo"<center><a href='functions.php?action=post_forum&vars='>New Forum</a></center>";
} else echo "Not Logged!";
}
?>the same code works on my windows php 4.4.0
here is the code that works on both machines :
Code: Select all
<?php
if($_COOKIE['logged'] == 1) {
echo"<a href='$homepage/forum/functions.php?action=logout&vars='>Logout (" . $HTTP_COOKIE_VARS['user'] . ")</a><br>";
}
else {
echo"<a href='$homepage/forum/functions.php?action=login&vars='>Login</a><br>";
}
// if user is loged then give logout option and display username else give login option
?>the first one works only on my windows php 4.4.0
and the second one works on my windows php 4.4.0 and on my linux 4.3.3
...
any ideas?