Mahdi Posted March 12, 2006 Share Posted March 12, 2006 This has really been confusing me. I have my php script set up to take the user ID out of the database, and put it into a session variable, however.. This will only work as long as I navigate through one directory.i.e user/index.php --> user/account.php holds the info, but user/index.php --> account/index.php gives me this error:"Notice: Undefined index: user_id in (host root dir)/account/index.php on line 14"Now for the code..Function that sets the info for $_SESSION['user_id']:[code]function getId()}$email = $_POST['txtEmail'];$password = $_POST['txtPassword'];$sql = "SELECT login_id FROM tbl_login WHERE login_password = ('$password') AND login_email = ('$email')"; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); $_SESSION['user_id'] = $row['login_id'];{[/code]user/library/functions.php - holds the getId() function.user/login.php - calls the function and registers the session.user/account/index.php - tries to get the session info but fails (yes I put session_start() before I called the info) "Notice: Undefined index: user_id in (host root dir)/account/index.php on line 14"The wierdest thing is about this, is that when I go back to user/login.php to check if the session is registered or not, it says that it is. But then I go back to account.php and of course its not.. stays this way till I unregister.like I said.. if I keep in in the same directory everything runs fine. As far as I understand sessions are supposed to retain data no matter which directory you are on as long as staying in the root dir (or untill you unregister/close browser).Anything helps. My main goal is to be able to hold this login_id info from 'blahblah/var.php' to 'blahblah/anything/var.php' Thank you very much in advance. Quote Link to comment https://forums.phpfreaks.com/topic/4725-session-help-undefined-index-i-read-the-sticky/ Share on other sites More sharing options...
saiko Posted March 12, 2006 Share Posted March 12, 2006 i am having the same problem in my skining system but no one has yet to help :( Quote Link to comment https://forums.phpfreaks.com/topic/4725-session-help-undefined-index-i-read-the-sticky/#findComment-16658 Share on other sites More sharing options...
saiko Posted March 14, 2006 Share Posted March 14, 2006 *bump* Quote Link to comment https://forums.phpfreaks.com/topic/4725-session-help-undefined-index-i-read-the-sticky/#findComment-17304 Share on other sites More sharing options...
redbullmarky Posted March 14, 2006 Share Posted March 14, 2006 someone please correct me if i'm wrong, but the last time i had this error myself, i believe i had the settings in my php.ini file too strict for reporting errors. the 'error' youre getting is just a notice, and i believe it's because you don't declare/set up $_SESSION['user_id'] before you assign a value to it.open up your php ini file and find a line that says 'error_reporting', and change it to:error_reporting = E_ALL & ~E_NOTICEORerror_reporting = 2039which are both the same thing, and which will give you errors if you have them but not notices.to be honest, and maybe someone will tell me it's bad practice, but i never personally set up a variable before declaring values to it. just seems too much trouble and a bit 'old school', so when i'm developing a system, i always have the error_reporting at the level i just mentioned.if you don't have access to your php.ini file, then a line right at the top of your code like[code]ini_set("error_reporting",2039);[/code]will do pretty much the same thing, albeit only for the script that you include the line on, without permanently changing the php.ini file. Quote Link to comment https://forums.phpfreaks.com/topic/4725-session-help-undefined-index-i-read-the-sticky/#findComment-17317 Share on other sites More sharing options...
txmedic03 Posted March 14, 2006 Share Posted March 14, 2006 Correct your errors, don't just hide them.I have tested setting $_SESSION['user_id'] and moving between directories and it works fine. The only thing I can think of is that your server configuration is some how affecting it.Sorry that I can't be of more help, but I am curious to see a solution. Quote Link to comment https://forums.phpfreaks.com/topic/4725-session-help-undefined-index-i-read-the-sticky/#findComment-17371 Share on other sites More sharing options...
redbullmarky Posted March 14, 2006 Share Posted March 14, 2006 [!--quoteo(post=354897:date=Mar 14 2006, 02:37 PM:name=txmedic03)--][div class=\'quotetop\']QUOTE(txmedic03 @ Mar 14 2006, 02:37 PM) [snapback]354897[/snapback][/div][div class=\'quotemain\'][!--quotec--]Correct your errors, don't just hide them.I have tested setting $_SESSION['user_id'] and moving between directories and it works fine. The only thing I can think of is that your server configuration is some how affecting it.Sorry that I can't be of more help, but I am curious to see a solution.[/quote]yeah i never mentioned hiding them. but in some land, long long ago, it was common practice (and ONLY practice) to declare a variable before giving it a value, otherwise you had an 'unknown variable' error. nowadays, it's just ok normally to give a variable a value without actually declaring it first. from most of the scripts i see on here, and commercial/opensource scripts i see, it's common practice not to declare the variable first. but the problem with E_NOTICE is that it'll report all the little fiddly things that do not affect the way the script works at all, but seems to be there for the 'old fashioned' way of coding.txmedic03, you'll prob find (pull up a phpinfo and check) that your error_reporting is prob set at 2039 (E_ALL & ~ E_NOTICE) or lower, wheras my guess is that if Mahdi and saiko did the same, they'd probably find a higher value, or E_ALL for example Quote Link to comment https://forums.phpfreaks.com/topic/4725-session-help-undefined-index-i-read-the-sticky/#findComment-17462 Share on other sites More sharing options...
txmedic03 Posted March 14, 2006 Share Posted March 14, 2006 You didn't specify a difference either, which could be misconstrude and lead to a code full of @'s or someone turning off error reporting all together. "Hey if I just turn off error reporting it won't say anything bad at all!" I find that to be a gigantic coding turn off. I strive for standard compliance and error free code, or at the very least code that knows what to do when it encounters an error. The last thing I want to happen is for my scripts to error out in someone's browser because I didn't think ahead and cover a highly probable scenario. I can't always cover every single error someone may encounter, but I can try to cover the majority. It was nothing personal, just trying to make sure those new to scripting don't do silly things. I suppose I should have been clearer in my statement. Quote Link to comment https://forums.phpfreaks.com/topic/4725-session-help-undefined-index-i-read-the-sticky/#findComment-17603 Share on other sites More sharing options...
saiko Posted March 15, 2006 Share Posted March 15, 2006 it aint setting for me because if it is set it will a page with a login form else it will display another page with there details on it and links to usercp etc.!!now it is set on the home because i have echoed and done some parseing etc. and i can access usercp etc.BUT other pages which i include in the skining system wont pickup the variables as set!!plz help!! Quote Link to comment https://forums.phpfreaks.com/topic/4725-session-help-undefined-index-i-read-the-sticky/#findComment-17620 Share on other sites More sharing options...
redbullmarky Posted March 15, 2006 Share Posted March 15, 2006 without wanting to hijack the thread, i totally agree with you, txmedic03. i think that sometimes when you get used to your environment and deal with it, it's easy to code AROUND that environment. so one chap might have errors off totally, and code away - but normally be the first to encounter problems when they port their software or scripst to a different server. including the age old "it worked on my localhost, but when i uploaded it to my host provider....". and the one with it on no-holds-barred-fully-strict error_reporting will find that they bloat their code with bits that are, in normal cases, not needed and still get loads of notices and warnings for things that are, for the sake of getting the script to deliver, pointless. i guess i probably sit somewhere in the middle but have found that out by playing around.notices, warnings and errors are displayed differently for a reason, and - from my own opinion rather than any documents, they go in order of 'disaster factor'. - notices - i tend to always turn these off, as they tend to be for very strict coding practice rather than anything that will affect the end result- warnings - this is where i start paying attention, as warnings seem to uncover very sloppy code practices, missing parameters, etc.- errors - obviously these cannot be ignored as they halt your scripti'd probably recommend turning the setting up to its highest level when you first start out - to get used to how things work and why - if anyone ever remembers programming a Spectrum or a Commodore 64, etc, you'll know how picky they can be. but without trying to take too many loopholes and covering up of errors, as txmedic03 rightly pointed out, you'll soon realise what is going to get the job done and for your code to be versatile enough to work on any system you stick it on. Quote Link to comment https://forums.phpfreaks.com/topic/4725-session-help-undefined-index-i-read-the-sticky/#findComment-17623 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.