SN1P3R_85 Posted December 5, 2008 Share Posted December 5, 2008 Hi, I have a script where people can register on my site, and it works, but there is a problem with it. If the register goes through, it is supposed to log them on as well. On my site logging on consists of three parts, username, userlevel, and validate. I set three php sessions with these values. It sets the username and validate fine, but it won't set userlevel. Userlevel is in the same table as username, so I don't know why it won't work. However, when i use the login script, it sets it. $query = "INSERT INTO `users` (Username, Password, Userlevel, Email) VALUES ('$username', '$password', '$usr_level', '$email')"; $result = mysql_query($query); if ($result) { $_SESSION['username'] = $row['Username']; $_SESSION['userlevel'] = $row['Userlevel']; $_SESSION['uservalid'] = true; echo "registration successful, you are a " . $row['Userlevel'] . "."; } Link to comment https://forums.phpfreaks.com/topic/135605-mysql-row-problem/ Share on other sites More sharing options...
ram4nd Posted December 5, 2008 Share Posted December 5, 2008 You have to start the session before using that. Link to comment https://forums.phpfreaks.com/topic/135605-mysql-row-problem/#findComment-706528 Share on other sites More sharing options...
SN1P3R_85 Posted December 5, 2008 Author Share Posted December 5, 2008 I did, its up above, i didn't show the entire code Link to comment https://forums.phpfreaks.com/topic/135605-mysql-row-problem/#findComment-706531 Share on other sites More sharing options...
SN1P3R_85 Posted December 5, 2008 Author Share Posted December 5, 2008 the problem isn't that i can't get the session to set, its that the row['Userlevel'] doesn't seem to exist. I tested it by putting this in : echo $row['Userlevel']; and it still didn't work. Link to comment https://forums.phpfreaks.com/topic/135605-mysql-row-problem/#findComment-706533 Share on other sites More sharing options...
PravinS Posted December 5, 2008 Share Posted December 5, 2008 You didn't fetched the records from the $result. use $row = mysql_fetch_row($result); in if condition. Link to comment https://forums.phpfreaks.com/topic/135605-mysql-row-problem/#findComment-706557 Share on other sites More sharing options...
chriscloyd Posted December 5, 2008 Share Posted December 5, 2008 <?php $query = "INSERT INTO `users` (Username, Password, Userlevel, Email) VALUES ('$username', '$password', '$usr_level', '$email')"; $result = mysql_query($query); if ($result) { $row = mysql_fetch_assoc($result); $_SESSION['username'] = $row['Username']; $_SESSION['userlevel'] = $row['Userlevel']; $_SESSION['uservalid'] = true; echo "registration successful, you are a " . $row['Userlevel'] . "."; } ?> Link to comment https://forums.phpfreaks.com/topic/135605-mysql-row-problem/#findComment-706563 Share on other sites More sharing options...
PFMaBiSmAd Posted December 5, 2008 Share Posted December 5, 2008 Please read a basic mysql book or a mysql tutorial before attempting to use mysql. Fetching a row of data from the result set before using that data is basic understanding of how to use a database. And please learn php, develop php code, and debug php code on a development system with error_reporting set to E_ALL and display_errors set to ON to get php to help you. The missing $row[..] variables would have triggered error messages to help you discover that there is no code setting them. Link to comment https://forums.phpfreaks.com/topic/135605-mysql-row-problem/#findComment-706729 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.