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 |