mrMarcus Posted October 25, 2009 Share Posted October 25, 2009 change === to == Link to comment https://forums.phpfreaks.com/topic/178895-solved-help-me-fix-these-syntax-errors/page/2/#findComment-944122 Share on other sites More sharing options...
mrMarcus Posted October 25, 2009 Share Posted October 25, 2009 thing is, `level` is coming out of the db as a string, and using === is returning false because you are comparing a string to an integer. you can either do this: $_SESSION['level'] = (int)$level; //adding (int) will turn the numeric value from a string into an integer; then, === would return true; -OR- if ($_SESSION['level'] == '1') { compare $_SESSION['level'] to a numeric string retaining == as your comparable operator. Link to comment https://forums.phpfreaks.com/topic/178895-solved-help-me-fix-these-syntax-errors/page/2/#findComment-944130 Share on other sites More sharing options...
kaiman Posted October 25, 2009 Author Share Posted October 25, 2009 Yes! Finally got it working, he he! FYI, I changed my session stuff to this to get it to run correctly: if ($_SESSION['level'] == '1') { Thanks mrMarcus and others for all your help! The next question is - How do I do a check to make sure that regular users can't see admin pages, etc. So far I have this basic session check: <?php session_start(); if(!isset($_SESSION['username'])){ header("Location: http://www.example.com/login/" ); exit; } ?> How would I check for levels? Would something like this work? <?php // admin session check session_start(); if(!isset($_SESSION['username'])){ header("Location: http://www.example.com/login/" ); exit; } else ($_SESSION['level'] < 4) { echo "You Don't Have Permission to View an Admin Page"; exit (0); } ?> or do I need to pull the array from the db and register the $_SESSION 'level' again? Thanks a ton! kaiman Link to comment https://forums.phpfreaks.com/topic/178895-solved-help-me-fix-these-syntax-errors/page/2/#findComment-944180 Share on other sites More sharing options...
Andy-H Posted October 25, 2009 Share Posted October 25, 2009 Yes, that should work fine, I would advise casting to an integer before comparing to one with the less than operator. session_start(); if (!isset($_SESSION['username'])) { header('Location: http://www.example.com/login/'); exit; } if ( (int)$_SESSION['level'] < 4) { die('You do not have permission to view an Admin page'); } I would also advise you to rethink the level you have set for banned users. Or atleast direct them to a banned page, echo an explanation of why they have been banned and destroy their session upon login. Link to comment https://forums.phpfreaks.com/topic/178895-solved-help-me-fix-these-syntax-errors/page/2/#findComment-944201 Share on other sites More sharing options...
kaiman Posted October 25, 2009 Author Share Posted October 25, 2009 Thanks, I'll give this a try... BTW - I've been thinking the same thing... How about a user level scheme more like this one? 0 = banned user 1 = guest 2 = user - default 3 = author 4 = moderator 5 = admin Link to comment https://forums.phpfreaks.com/topic/178895-solved-help-me-fix-these-syntax-errors/page/2/#findComment-944235 Share on other sites More sharing options...
Andy-H Posted October 25, 2009 Share Posted October 25, 2009 That looks fine to me Link to comment https://forums.phpfreaks.com/topic/178895-solved-help-me-fix-these-syntax-errors/page/2/#findComment-944237 Share on other sites More sharing options...
kaiman Posted October 25, 2009 Author Share Posted October 25, 2009 * SOLVED * Thanks to everyone who has helped me sort this out over the past 24 hours... Cheers! kaiman Link to comment https://forums.phpfreaks.com/topic/178895-solved-help-me-fix-these-syntax-errors/page/2/#findComment-944323 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.