Мне нужно создать страницу входа, которая будет использовать имя пользователя и пароль от sys.user$
, но при необходимости входа в систему логин не удался.
Но если я использую таблицу, которую я создал, она может.
$name=$_REQUEST['name'];
$password=$_REQUEST['password'];
if(!empty($name) && !empty($password)){
$sqlCheck=OCIParse($c,"SELECT NAME, PASSWORD FROM sys.user$
WHERE NAME='$name'
AND PASSWORD='$password'");
OCIExecute($sqlCheck,OCI_DEFAULT);
while(OCIFetch($sqlCheck)){
$db_name = OCIResult($sqlCheck, "NAME");
$db_password = OCIResult($sqlCheck, "PASSWORD");
}
if($db_name != $name && $db_password != $password){
echo "<script>window.location.href='../index.php?page=login&error=1';</script>";
exit();
} else {
$_SESSION['verify_name'] = $name;
echo "<script>window.location.href='../index.php?page=please_verify';</script>";
exit();
}
}
Я использую sys.user $ для приложения. Если я скопирую пароль Hash и вставьте в поле пароля в форме входа в систему, логин будет успешным. Но, если я использую свой реальный пароль, вход недействителен. – john
прочитал мой предыдущий комментарий – john
Я думаю, вы должны проверить часть шифрования паролей в своем приложении. Потому что Oracle шифрует пароль и сохраняет его. И если вы не шифруете и не сравниваете пароли, то их не будет сопоставлено. Либо зашифруйте пароль и сопоставьте, либо расшифруйте хэш-код пароля и сравните его. Также дайте мне знать версию базы данных Oracle, которую вы используете. – Jeethu