开发者

Log.php returning 'Invalid User' from MySQL database

I am hosting a website from a local computer (using MAMP Pro on a Mac), and need to switch the hosting to another local Mac. I have copied across all of the files for my website, and the MySQL tables, and checked that the server and MySQL are running OK. Everything seems to be fine, except that the login system is returning "Invalid User" when I try to log in, even though I am entering the correct user info (I have tried a few users just to be sure).

The log.php that handles the login looks like this:

<?
session_name("MyLogin");
session_start();

if($_GET['action'] == "login") {
$conn = mysql_connect("localhost","root","password"); // your MySQL connection data
$db = mysql_select_db("nick"); //put your database name in here 
$name = $_POST['user'];
$q_user = mysql_query("SELECT * FROM USERS WHERE login='$name'");

if(mysql_num_rows($q_user) == 1) {

$query =开发者_如何学编程 mysql_query("SELECT * FROM USERS WHERE login='$name'");
$data = mysql_fetch_array($query);
if($_POST['pwd'] == $data['password']) { 
$_SESSION["name"] = $name;
header("Location: http://monthlymixup.com/may.php"); // success page. put the URL you want 
exit;
} else {
header("Location: login.php?login=failed&cause=".urlencode('Wrong Password'));
exit;
}
} else {
header("Location: login.php?login=failed&cause=".urlencode('Invalid User'));
exit;
}
}

// if the session is not registered
if(session_is_registered("name") == false) {
header("Location: login.php");
}

?>

I have temporarily removed the password in the above code.

I wonder what steps I can take to troubleshoot this issue, and would be grateful for any help.

Thanks,

Nick


A few common techniques when I encounter this issue.

  1. Output the generated SQL and test it by hand - echo $query;
  2. See if mysql_error() outputs anything after you run your queries.
  3. Use var_dump() and print_r() on your data objects to ensure they are as expected.
  4. Comment out your redirects and exit() lines so you can determine where the script is breaking.

Fix or comment back with anything determined by the above.


Your code does a query to find a user with the given username, and then checks if the number of rows with that username is exactly 1.

The only way you could see the 'Invalid User' error is if there are 0 users with that username or more than 1 user with that username.

Have a look at the contents of the table and check which of these is the case (I recommend http://sequelpro.com for viewing database contents on a Mac). You can also use sequel pro to test your queries.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜