Astrup Posted December 6, 2010 Share Posted December 6, 2010 Hello I've downloaded a simple login script and modified it for my own user MySQL Database. my db structure: DROP TABLE IF EXISTS `accounts`; CREATE TABLE `accounts` ( `acct` int(10) unsigned NOT NULL auto_increment COMMENT 'Unique ID', `login` varchar(32) collate utf8_unicode_ci NOT NULL default '' COMMENT 'Login username', `password` varchar(32) collate utf8_unicode_ci NOT NULL default '' COMMENT 'Login password', `encrypted_password` varchar(42) collate utf8_unicode_ci NOT NULL default '', `gm` varchar(32) collate utf8_unicode_ci NOT NULL default '' COMMENT 'Game permissions', `banned` int(10) unsigned NOT NULL default '0', `lastlogin` timestamp NOT NULL default '0000-00-00 00:00:00' COMMENT 'Last login timestamp', `lastip` varchar(16) collate utf8_unicode_ci NOT NULL default '' COMMENT 'Last remote address', `email` varchar(64) collate utf8_unicode_ci NOT NULL default '' COMMENT 'Contact e-mail address', `flags` tinyint(3) unsigned NOT NULL default '0' COMMENT 'Client flags', `forceLanguage` varchar(5) collate utf8_unicode_ci NOT NULL default 'enUS', `muted` int(30) NOT NULL default '0', `banreason` varchar(255) collate utf8_unicode_ci default NULL, `votes` int(10) NOT NULL default '0', `enabled` int(10) NOT NULL default '0', PRIMARY KEY (`acct`), UNIQUE KEY `a` (`login`) ) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Account Information'; example account: INSERT INTO accounts VALUES ('1', 'test', 'test', '', 'az', '0', '2010-12-04 13:39:23', '127.0.0.1', '', '24', 'enUS', '0', null, '0', '1'); And I've modified this script and replaced things such as username to login and block to banned. But when I try to login it always tells me my username and or password is invalid. I've tried several things but I cant figure out what I'm doing wrong. I would realy appreciate it if someone could tell me this. <?php session_start(); include 'conn.php'; if($_SERVER['REQUEST_METHOD'] == 'POST') { $login_user = $Mysqli->real_escape_string($_POST['username']); $login_pass = $Mysqli->real_escape_string(sha1($_POST['password'])); $user_ip = $_SERVER['REMOTE_ADDR']; srand ((double) microtime( )*1000000); $session_id = rand(1000,1000000); $q1 = " SELECT acct, login, banned FROM accounts WHERE login = '".$login_user."' AND password = '".$login_pass."' "; if(!$r1 = $Mysqli->query($q1)) { echo 'Er is een fout opgetreden!. '. $Mysqli->error; } elseif($Mysqli->affected_rows == 1) { while ($row = $r1->fetch_assoc ()) { $_SESSION["login"] = $row['login']; $_SESSION['user_id'] = $row['id']; $_SESSION['user_ip'] = $user_ip; $_SESSION['session_id'] = $session_id; if ($row['banned'] == 1) { echo 'Youre banned you cannot login!'; } else { //Inloggen gelukt!! header("location: " . 'index.php?msg=succes'); } $q2 = " INSERT INTO sessions ( user_id, session_id, user_ip ) VALUES ( '".$row['id']."', '".$session_id."', '".$user_ip."' ) "; } if (!$Mysqli->query ($q2) ) { echo 'Something went wrong!'. $Mysqli->error; } } else { echo 'Username or Password is invalid! Please try again.'; } } else { ?> <html> <head> <title>Login</title> </head> <body> <h2>Login</h2> <?php if(isset($_GET['error'])) { if($_GET['error'] == 'sess') { echo 'This session is invalid! Please try again.<p>'; } } ?> <form method='post'> <table> <tr> <td>Username:</td> <td><input type='text' name='username'></td> </tr> <tr> <td>Password:</td> <td><input type='password' name='password'></td> </tr> <tr> <td><input type='submit' name='submit' value='Login'></td> </tr> </table> </form> </body> </html> <?php } ?> Thanks! *edit btw I'm sure I filled in the database files correctly in conn.php I'm not getting any mySQL errors aswell. Link to comment https://forums.phpfreaks.com/topic/220841-simple-login-script-always-tells-me-invalid-passuser/ Share on other sites More sharing options...
trq Posted December 7, 2010 Share Posted December 7, 2010 $Mysqli->affected_rows works with INSERT, UPDATE, REPLACE or DELETE queries only. Link to comment https://forums.phpfreaks.com/topic/220841-simple-login-script-always-tells-me-invalid-passuser/#findComment-1143778 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.