я пытаюсь сделать знак в и зарегистрироваться в одной и той же страницы в веб-сайте я имею эту форму в HTML
обработка PHP для более чем одной формы в одной странице
<form name="form1" action="check_login.php" method="post">
<input type="email" id= "email" name="email" required="required" placeholder="Email Address" />
<input type="password" id= "password" name="password" required="required" placeholder="Password"/>
<span><input type="checkbox" class="checkbox">Keep me signed in</span>
<button name="login" type="submit" class="btn btn-default">Login</button>
</form>
и форма
<form name="form2" action="check_login.php" method="post">
<input type="text" id= "fname" name="fname" required="required" placeholder="First Name"/>
<input type="text" id= "mname" name="mname" required="required" placeholder="Middle Name"/>
<input type="text" id= "lname" name="lname" required="required"placeholder="Last Name"/>
<input type="email" id= "email" name="nemail"required="required" placeholder="Email "/>
<input type="password" id= "password" name="npassword"required="required" placeholder="Password"/>
<input type="password" id= "cpassword" name="cpassword"required="required"placeholder="Confirm Password"/>
<select name='gender' class='col-sm-4'>
<option value='male'>male</option>
<option value='female'>female</option>
</select>
<div class='col-sm-offset-8'>
<button name="sign_up" type="submit" class="btn btn-default">Sign up</button> </div>
</form>
они находятся в одной и той же странице, и как перейти на другую страницу моего веб-сайта, то у меня есть этот код в PHP
if (!empty($_POST['login']))
{
$email = $_POST['email'];
$password = $_POST['password'];
$sql_stmt="select email, password from users where email = '"
.$email."' and password ='".$password."'";
$result= mysqli_query($connection,$sql_stmt);
if ($result)
{
header ("location: index.php");
}
else {
header ("location: login.php");
}
}
if(!empty($_POST['sign_up']))
{
$fname=$_POST['fname'];
$mname=$_POST['mname'];
$lname=$_POST['lname'];
$gender=$_POST['gender'];
$nemail=$_POST['nemail'];
$npassword=$_POST['npassword'];
//if email is already stored ?
$signup="INSERT INTO `users`(`first_name`, `middle_name`, `last_name`,"
. " `gender`, `email`, `password`)"
. " VALUES ('".$fname."','".$mname."','".$lname."','".$gender.
"','".$nemail."','".$npassword."')";
$result1= mysqli_query($connection, $signup);
if ($result1)
{
header ("location: index.php");
}
else {
header ("location: login.php");
}
}
но навигацию к индексу никогда не бывает!
** никогда не хранить простые текстовые пароли ** Пожалуйста, используйте РНР [встроенные функции] (http://jayblanchard.net/proper_password_hashing_with_PHP.html) для обработки пароля безопасность. Если вы используете версию PHP менее 5.5, вы можете использовать 'password_hash()' [пакет совместимости] (https://github.com/ircmaxell/password_compat). Удостоверьтесь, что вы *** [не избегаете паролей] (http://stackoverflow.com/q/36628418/1011527) *** или используйте любой другой механизм очистки для них перед хэшированием. Выполнение этого * изменяет * пароль и вызывает ненужное дополнительное кодирование. –
[Little Bobby] (http://bobby-tables.com/) говорит, что *** [ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-in-php) *** Узнайте о [подготовленных] (http://en.wikipedia.org/wiki/Prepared_statement) операторах для [MySQLi] (http://php.net/manual /en/mysqli.quickstart.prepared-statements.php). Даже [избегая строки] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) небезопасно! [Не верьте?] (Http://stackoverflow.com/q/38297105/1011527) –
От @tadman: ПРЕДУПРЕЖДЕНИЕ. Написание собственного уровня контроля доступа непросто и есть много возможностей, чтобы заставить его серьезно ошибиться. Пожалуйста, не пишите свою собственную систему аутентификации, если какая-либо современная инфраструктура разработки, такая как Laravel, поставляется с надежной системой аутентификации. –