MySQL + PHP Account system problem
Community Forums/General Help/MySQL + PHP Account system problem| 
 | ||
| And another problem with MySQL. I created fully working login and register system. But problem is that, when 2 accounts is logged in same time, it says that both are using same account. Here is some code to take look. login.php <html>
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" media="All" href="css/style.css" />
</head>
<body>
	<div id="wrap">
		<?php 
		mysql_connect("localhost:3306", "arska134", "********") or die(mysql_error());
		mysql_select_db("arska134") or die(mysql_error());
		if(isset($_POST['email']) && isset($_POST['password'])){
			// Haetaan tekstikenttien arvot
			$email = mysql_escape_string($_POST['email']);
			$password = md5($_POST['password']);
			// Yhdistetään MySQL tietokantaan
			$gUser = mysql_query("SELECT * FROM users2 WHERE email='".$email."' AND password='".$password."' LIMIT 1") or die(mysql_error());
			$verify = mysql_num_rows($gUser);
			// Jos tiedot täsmäävät päästetään sisälle
			if($verify > 0){
				include 'userarea.php';
				
				
			// Jos tiedot ovat väärin
			}else{
				echo '<h3>Login Failed</h3>
		  		<p>Login details are incorrect.';
			}
		}else{
		?>
	
		<!-- Koodin HTML osuus alkaa. Lomake osa --> 
		<h3>Login</h3>
		<p>Please enter your login credentials. <a href="register.php">Register account</a> </p>
		<p><a href="search.php">Search account</a> </p>
		<form method="post" action="" >
			<fieldset>
				<label for="email">Email:</label><input type="text" name="email" value="" />
				<label for="password">Password:</label><input type="password" name="password" value="" />
				<input type="submit" value="Login" />
			</fieldset>
		</form>
		<?php
		}
		?>
	</div>
</body>
</html>userarea.php (included in login.php) <?php 
	// Haetaan tiedot käyttäjästä
	$data = mysql_query("SELECT * FROM users2") or die(mysql_error());
	$info = mysql_fetch_array( $data ); 
	echo "Current date and time: ".date("d.m.y : H:i:s", time());
	echo '<h3>Login Complete</h3>
	<p>Welcome!</p>';
	echo "Hello ".$info['name']." ".$info['surname'];
	
	if (filesize("activity.txt") > 1000) {
		unlink('activity.txt');
	}
	
	$activity = fopen("activity.txt", 'a');
	fwrite($activity, date("d.m.y : H:i:s", time())." - ".$info['name']." ".$info['surname']." has reguested refresh! ");
	fclose($activity);
	
	?>
	<p> </p>
	<?php
	echo "You are logged in with email ".$info['email'];	
	?>
	<p> </p>
	<h4>News</h4>
	<p> </p>
	<?php		
	$fh = fopen("news.txt", "r");
	while(!feof($fh)) { 
		$lines = trim(fgets($fh));
     		
		echo $lines;
     		break;
	}
	
	fclose($fh);
	
	?>
	<p> </p>
	<h4>Recent activity</h4>
	<p> </p>
	<?php
	
	$activity = fopen("activity.txt", "r");
	while(!feof($activity)) { 
		$actlines = trim(fgets($activity));
     		
		echo $actlines.'<br />';
     		break;
	}
	
	fclose($activity);	
	
	?>
	<p> </p>
	<?php
	
	echo "activity.txt ".filesize("activity.txt")." / 1000 bytes";
	
	?>
	<p> </p>
	<h4>Stream</h4>
	<p> </p>
	<form method="post" action="" >
			<fieldset>
				<label for="comments">Comment:</label><input type="text" name="comments" value="" />
				<input type="submit" value="Submit" />
			</fieldset>
	</form>
	<p> </p>
	<fieldset>
	<?php
	
	$stream = fopen("stream.txt", "r");
	while(!feof($stream)) { 
		$strelines = trim(fgets($stream));
     		
		echo $strelines;
     		break;
	}
	
	fclose($stream);	
	?>
	</fieldset>
	<?php
?>
and after this problem is solved someone can tell me why this "stream" thing isn't working. Submit button returns to login screen. And here is screenshot of userarea | 
| 
 | ||
| Some update to problem. So i did some testing and i realize that it always takes first account from MySQL database. | 
| 
 | ||
| It's been a while since I've done any PHP/MySQL but it looks to me that the problem is in the first line in 'userarea.php'. $data = mysql_query("SELECT * FROM users2") or die(mysql_error()); You're grabbing the entire user2 table and your not iterating through it to find the user in question, so naturally you're just displaying the first entry. Off hand I think you need to just use $verify in 'userarea,php' rather than re-fetch the data anew. Since you're including this file inside 'login.php' the $verify variable should be within it's scope. Hope this helps, Bye! Last edited 2011 | 
| 
 | ||
| Oh it was that simple. Now it's working just like i wanted. :) Thanks CGV |