Я пытаюсь создать простую страницу входа. У меня есть страница регистрации, и когда пользователь подписывается, а затем пытается войти в систему, он будет перемещаться по ним на домашнюю страницу. Однако Когда пользователь пытается войти в систему, и там имя пользователя и пароль не находятся в базе данных, я хотел бы, чтобы сценарий перемещался по ним на страницу регистрации.Перейдите на страницу регистрации при неудачном входе в систему
У меня возникли проблемы с заявлением else, может ли кто-нибудь помочь мне с этой проблемой?
Это сценарий ...
function SignIn()
{
session_start(); //starting the session for user profile page
if(!empty($_POST['userName']))
{
$query = mysql_query("SELECT * FROM users where userName = '$_POST[userName]' AND createPassword = '$_POST[createPassword]'") or die(mysql_error());
$row = mysql_fetch_array($query) or die(mysql_error());
if(!empty($row['userName']) AND !empty($row['createPassword']))
{
$_SESSION['userName'] = $row['createPassword'];
echo "<script>window.location = 'index.php'</script>";
}
else
{
echo "<script>window.location = 'signUp.php'</script>";
}
}
}
if(isset($_POST['submit']))
{
SignIn();
}
?>
EDIT: Привет спасибо за ваши отзывы, я изменил запрос и редактирует эхо. Спасибо за советы по безопасности, но в этом скрипте безопасность не является проблемой. Мне нужно только его, чтобы направить вас к индексу, если вы зарегистрировались и зарегистрировались, если вы этого не сделали. Я все еще не могу получить страницу для перенаправления на страницу регистрации, если вход в систему и пропущенное слово неверны.
Если оно правильно, оно приведет вас к индексу, если оно неверно, это страница php, на которой этот скрипт включен.
Это моя текущая попытка
function SignIn()
{
session_start();
if(!empty($_POST['userName']))
{
$query = mysql_query("SELECT * FROM users where userName = '{$_POST['userName']}' AND createPassword = '{$_POST['createPassword']}'") or die(mysql_error());
$row = mysql_fetch_array($query) or die(mysql_error());
if(!empty($row['userName']) AND !empty($row['createPassword']))
{
$_SESSION['userName'] = $row['createPassword'];
header("Location:http://localhost/waves/index.php");
}
else if (!empty($row['userName']) AND !empty($row['createPassword']))
{
$_SESSION['userName'] != $row['createPassword'];
header("Location:http://localhost/waves/signUp.php");
}
}
}
if(isset($_POST['submit']))
{
SignIn();
}
?>
Что именно происходит не так? Разве это никогда не достигает выражения else или просто не перенаправляется? – Max
Это очень уязвимо для SQL-инъекций, поэтому вы не должны использовать защиту таким образом, используйте подготовленные инструкции, чтобы начать с – Firewizz
@alan smith. Вы используете два одинаковых условия 'if'. Вам нужно только одно условие 'if', а другое будет' else' не 'else if'. –