Derek Posted August 14, 2010 Posted August 14, 2010 So, long story short-ish, I type in a username and password to "login", and it checks if: You entered in both a username and password. If not, you get an "error Code 002". If you did enter in both a username and password, but they don't match with any in the database, you get an "error code 001". Everything works, except when I enter in a legitimate username and password, it gives me the "error code 001". I checked phpMyAdmin, and my username and password is indeed in the database. index.php - http://pastebin.com/s8EqjPvP login.php - http://pastebin.com/kBmWe7XU You can try it here. Username is "Derek", password is "qwerty". EDIT: I fixed it, thanks everyone. Apparently, you can't "SELECT ........ WHERE $_POST[...]", you have to store the $_POST in a variable first. Thanks, ~Derek
WebPalace Admin Posted August 15, 2010 Posted August 15, 2010 I got the Error code 001: Could not connect to database. Is the DB still there?
Derek Posted August 15, 2010 Author Posted August 15, 2010 I got the Error code 001: Could not connect to database. Is the DB still there? Yeah, sorry. I accidentally commented out mysql_connect(...); after I posted this thread. So I fixed that problem, but I still get that error. P.S. You'll get a Notice: Undefined index: valid_username in /home/derekboy/public_html/site/admin/index.php on line 23 notice. Don't worry about it. I turned on notices so I could debug this problem, and if you look at that line on the source code, you'll realize it's not a mistake (I hope). I'm using "if ($_SESSION['valid_username']) { ... }" to check if you're already signed in. That error won't pop up if I shut off notices. Thanks again. EDIT: Yeah. I know where the error is coming from after a while. I rewrote part of login.php to be this instead: if (($_POST['username']) && ($_POST['password'])) { $checklogin = mysql_query('SELECT * FROM site_admin' . 'WHERE admin_username = ' . $_POST['username'] . ' ' . 'AND admin_password = ' . $_POST['password'] . ' ' . 'LIMIT 1'); $rownumber = mysql_num_rows($checklogin); // If result matched $myusername and $mypassword, table row must be 1 row if($rownumber == 1) { // Sign in. $rownumber in this case is supposed to give an integer. Instead, I'm getting: Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/derekboy/public_html/site/admin/login.php on line 32 So I added mysql_error(); and got You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''admin_username' = 'Derek' AND 'admin_password' = 'qwerty' LIMIT 1' at line 1 Then I changed $checklogin to $query = 'SELECT * FROM site_admin ' . "WHERE 'admin_username' = '" . $_POST['username'] . "' " . "AND 'admin_password' = '" . $_POST['password'] . "' " . 'LIMIT 1'; $checklogin = mysql_query($query); And it got rid of all the mySQL errors, but I still get the original error (Error code 002: The server denied you access. You must have entered in a wrong username and/or password.) So, I brought all the files up-to-date on the pastebins. Thanks again.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now