Demont Posted November 25, 2007 Share Posted November 25, 2007 Now, I'm not sure if I am doing this right...But here's my code so far, which isn't working...If someone could, point me int he right direction? <?php session_start(); include('header.php');//Contains database connect information, session information, and any other type of information to run the dynamics of the game. //checks cookies to make sure they are logged in if (isset($_SESSION['player'])) { $player=$_SESSION['player']; $stats="SELECT * from users where username='$player'"; $racestat=mysql_query($race) or die("Could not get user stats"); } print "Hello $player, you are a $race."; ?> Quote Link to comment Share on other sites More sharing options...
paradigmapc Posted November 25, 2007 Share Posted November 25, 2007 What errors are you getting? Quote Link to comment Share on other sites More sharing options...
phpSensei Posted November 25, 2007 Share Posted November 25, 2007 where are you gettting $race from? change [code] <?php $stats="SELECT * from users where username='$player'"; $racestat=mysql_query($race) or die("Could not get user stats"); ?> to <?php $stats="SELECT * from users where username='$player'"; $racestat=mysql_query($stats) or die("Could not get user stats"); ?> [/code] Quote Link to comment Share on other sites More sharing options...
Demont Posted November 25, 2007 Author Share Posted November 25, 2007 I'm not getting an error, it's just displaying a blank after the text in the print. And, $race is part of the users stats in the user table. The race colum... Quote Link to comment Share on other sites More sharing options...
phpSensei Posted November 25, 2007 Share Posted November 25, 2007 I'm not getting an error, it's just displaying a blank after the text in the print. And, $race is part of the users stats in the user table. The race colum... Well I wonder why its displaying blank. You don't use $race to get a coloumn value. Quote Link to comment Share on other sites More sharing options...
Demont Posted November 25, 2007 Author Share Posted November 25, 2007 Do I need to call each column like I did with $player and such? What I'm not understanding is that even though I call the username, it doesn't display that either... Quote Link to comment Share on other sites More sharing options...
teng84 Posted November 25, 2007 Share Posted November 25, 2007 <?php session_start(); include('header.php');//Contains database connect information, session information, and any other type of information to run the dynamics of the game. //checks cookies to make sure they are logged in if (isset($_SESSION['player'])) { $player=$_SESSION['player']; $stats="SELECT * from users where username='$player'"; $racestat=mysql_query($race) or die("Could not get user stats"); if($racestat){ print_r(mysql_fetch_array($racestat)); print "Hello $player, you are a $race."; } } ?> Quote Link to comment Share on other sites More sharing options...
Demont Posted November 25, 2007 Author Share Posted November 25, 2007 That code's not showing anything at all besides by header.php... Quote Link to comment Share on other sites More sharing options...
phpSensei Posted November 25, 2007 Share Posted November 25, 2007 That code's not showing anything at all besides by header.php... Show us the script where you are setting the session. Quote Link to comment Share on other sites More sharing options...
teng84 Posted November 25, 2007 Share Posted November 25, 2007 then read http://www.w3schools.com/php/php_mysql_select.asp sorry but i dont think you know how will your codes work please try to see that link basic and will give you better understanding.... Quote Link to comment Share on other sites More sharing options...
trq Posted November 25, 2007 Share Posted November 25, 2007 I think your looking for.... <?php session_start(); include('header.php'); if (isset($_SESSION['player'])) { $player = $_SESSION['player']; $sql = "SELECT * from users where username='$player'"; if ($result = mysql_query($sql)) { if (mysql_num_rows($result)) { $row = mysql_fetch_assoc($result); print "Hello $player, you are a {$row['race']}."; } else { echo "no record found matching $player"; } } else { echo mysql_error(); } ?> Quote Link to comment Share on other sites More sharing options...
Demont Posted November 25, 2007 Author Share Posted November 25, 2007 Well, here is my header. <?php // Connects to the database mysql_connect("localhost", "username", "password") or die(mysql_error()); mysql_select_db("database") or die(mysql_error()); ?> <center>|[<a href='logout.php'>Logout</a>]|[<a href='stats.php'>Stats</a>]| And not sure if it'll help, but here's my user table structure. Table structure for table `users` -- CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(60) NOT NULL default '', `password` varchar(60) NOT NULL default '', `gender` varchar(60) NOT NULL default '', `race` varchar(60) NOT NULL default '', `class` varchar(60) NOT NULL default '', `hair` varchar(60) NOT NULL default '', `eyes` varchar(60) NOT NULL default '', `skin` varchar(60) NOT NULL default '', `email` varchar(60) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; Quote Link to comment Share on other sites More sharing options...
teng84 Posted November 25, 2007 Share Posted November 25, 2007 it is really useless to give you a code that will complete your objectives.. if you will read the link i gave you all your nested question will be answered we can give you codes for sure but we dont know how you understand the code first you dont know the problem second you dnt have an idea on what your doing.. the code that thorpe and i gave should work but if you cant have it working then again read.. again sorry.... Quote Link to comment Share on other sites More sharing options...
phpSensei Posted November 25, 2007 Share Posted November 25, 2007 I think your looking for.... <?php session_start(); include('header.php'); if (isset($_SESSION['player'])) { $player = $_SESSION['player']; $sql = "SELECT * from users where username='$player'"; if ($result = mysql_query($sql)) { if (mysql_num_rows($result)) { $row = mysql_fetch_assoc($result); print "Hello $player, you are a {$row['race']}."; } else { echo "no record found matching $player"; } } else { echo mysql_error(); } ?> See, this gets the $row['race'] which should fix your problem. Other than this, there is a problem on how your setting the sessions my friend. Show us the script where you are setting the sessions... Quote Link to comment Share on other sites More sharing options...
janim Posted November 25, 2007 Share Posted November 25, 2007 try this : <?php session_start(); include('header.php'); if (isset($_SESSION['player'])) { $player = $_SESSION['player']; $sql = "SELECT * from users where username='$player'"; if ($result = mysql_query($sql)) { if (mysql_num_rows($result)) { $row = mysql_fetch_assoc($result); print "Hello $player, you are a {$row['race']}."; } else { echo "no record found matching $player"; } } else { echo "you are not player even login or register new account to be"; } ?> the output : ________________________ you are not player even login or register new account to be Quote Link to comment Share on other sites More sharing options...
Demont Posted November 25, 2007 Author Share Posted November 25, 2007 I keep getting a Parse error: parse error, unexpected $ on line 20, now...But the only thing on line 20, is the ?> closing tag. Quote Link to comment Share on other sites More sharing options...
phpSensei Posted November 25, 2007 Share Posted November 25, 2007 I keep getting a Parse error: parse error, unexpected $ on line 20, now...But the only thing on line 20, is the ?> closing tag. Probably missing a ";" ) or } ] somewhere Quote Link to comment Share on other sites More sharing options...
Demont Posted November 25, 2007 Author Share Posted November 25, 2007 So. I think it's a sessions problem, because I have the script working, but it's displaying the "not logged in" bit of the else statement. Quote Link to comment Share on other sites More sharing options...
phpSensei Posted November 25, 2007 Share Posted November 25, 2007 So. I think it's a sessions problem, because I have the script working, but it's displaying the "not logged in" bit of the else statement. Post the script where you are loggin the user in. Quote Link to comment Share on other sites More sharing options...
Demont Posted November 25, 2007 Author Share Posted November 25, 2007 <?php include('header.php'); //Checks if there is a login cookie if(isset($_COOKIE['ID_Loria'])) //if there is, it logs you in and directes you to the members page { $username = $_COOKIE['ID_Loria']; $pass = $_COOKIE['Key_Loria']; $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error()); while($info = mysql_fetch_array( $check )) { if ($pass != $info['password']) { } else { header("Location: index.php"); } } } //if the login form is submitted if (isset($_POST['submit'])) { // if form has been submitted // makes sure they filled it in if(!$_POST['username'] | !$_POST['pass']) { die('You did not fill in a required field.'); } // checks it against the database if (!get_magic_quotes_gpc()) { $_POST['email'] = addslashes($_POST['email']); } $check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error()); //Gives error if user dosen't exist $check2 = mysql_num_rows($check); if ($check2 == 0) { die('That user does not exist in our database. <a href=register.php>Click Here to Register</a>'); } while($info = mysql_fetch_array( $check )) { $_POST['pass'] = stripslashes($_POST['pass']); $info['password'] = stripslashes($info['password']); $_POST['pass'] = md5($_POST['pass']); //gives error if the password is wrong if ($_POST['pass'] != $info['password']) { die('Incorrect password, please try again.'); } else { // if login is ok then we add a cookie $_POST['username'] = stripslashes($_POST['username']); $hour = time() + 3600; setcookie(ID_my_site, $_POST['username'], $hour); setcookie(Key_my_site, $_POST['pass'], $hour); //then redirect them to the members area header("Location: index.php"); } } } else { // if they are not logged in ?> <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post"> <table border="0"> <tr><td colspan=2><h1>Login</h1></td></tr> <tr><td>Username:</td><td> <input type="text" name="username" maxlength="40"> </td></tr> <tr><td>Password:</td><td> <input type="password" name="pass" maxlength="50"> </td></tr> <tr><td colspan="2" align="right"> <input type="submit" name="submit" value="Login"> </td></tr> </table> </form> <?php } ?> Quote Link to comment Share on other sites More sharing options...
janim Posted November 26, 2007 Share Posted November 26, 2007 you are checking if those cookies are stored : $username = $_COOKIE['ID_Loria']; $pass = $_COOKIE['Key_Loria']; while you are storing those cookies : setcookie(ID_my_site, $_POST['username'], $hour); setcookie(Key_my_site, $_POST['pass'], $hour); so you will not find it make it same Quote Link to comment Share on other sites More sharing options...
phpSensei Posted November 26, 2007 Share Posted November 26, 2007 You are using $_COOKIES not $_SESSIONS! thats why it comes out blank sir. Also, the cookies arent set it, so why you checking if it isset. Quote Link to comment Share on other sites More sharing options...
Demont Posted November 26, 2007 Author Share Posted November 26, 2007 What would you suggest I use? cookies, or seesions? Quote Link to comment Share on other sites More sharing options...
phpSensei Posted November 26, 2007 Share Posted November 26, 2007 What would you suggest I use? cookies, or seesions? Depends what you want them for. Also, Why do you have setcookie(ID_my_site, $_POST['username'], $hour); setcookie(Key_my_site, $_POST['pass'], $hour); Then Now, I'm not sure if I am doing this right...But here's my code so far, which isn't working...If someone could, point me int he right direction? Code: <?php session_start(); include('header.php');//Contains database connect information, session information, and any other type of information to run the dynamics of the game. //checks cookies to make sure they are logged in if (isset($_SESSION['player'])) { Your not setting the cookies right my friend, and your not using the sessions the right way. Sessions and Cookies arent the same... When you set a session, it doesnt mean it will set the cookie also. Review your script, and you'll see what I mean. Read more about Sessions and Cookies.... http://www.phpfreaks.com/tutorial_cat/23/Sessions-and-Cookies.php Quote Link to comment 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.