Я изучаю учебник, чтобы узнать больше о php, в его исходном коде есть что-то, что работает в то время, но больше не работает. вот код, пожалуйста, дайте мне знать, что я должен изменить в коде, чтобы процесс входа в систему работал (в настоящее время после ввода действительного имени пользователя и пароля и нажатия входа в систему он зависает и показывает первую страницу, а не перейти на home.php
вот шаблон / header.php:
<div class="container">
<!--Head wrap starts-->
<div id="head_wrap">
<!--Header starts-->
<div id="header">
<img src="https://web-answers.ru/wp-content/uploads/2019/02/logo.png" style="float:left;"/>
<form method="post" action="" id="form1">
<strong>Email:</strong>
<input type="email" id="email" name="email" placeholder="Email" required="required" />
<strong>Password:</strong>
<input type="password" id="pass" name="pass" placeholder="****" required="required"/>
<button type="submit" id="login">Login</button>
</form>
</div>
<!--Header ends-->
</div>
вот login.php
<?php
session_start();
include("includes/connection.php");
if(isset($_POST['login'])){
$email = mysqli_real_escape_string($con,$_POST['email']);
$pass = mysqli_real_escape_string($con,$_POST['pass']);
$get_user = "select * from users where user_email='$email' AND user_pass='$pass'";
$run_user = mysqli_query($con,$get_user);
$check = mysqli_num_rows($run_user);
if($check==1){
$email = mysqli_real_escape_string($con,$_POST['email']);
$_SESSION['user_email']=$email;
echo "<script>window.open('home.php','_self')</script>";
}
else {
echo "<script>alert('Passowrd or email is not correct!')</script>";
}
}
?>
пожалуйста, обратите внимание, я пытался
echo "<script> window.location.href = 'home.php';</script>";
вместо
echo "<script>window.open('home.php','_self')</script>";
и все еще не работает, так как это учебное пособие, и у меня есть поиск через stackoverflow, не могу найти ответ, я ценю вашу помощь.
Это ваш HTML-код, но с кнопкой отправки. Вы говорите, что все файлы находятся в одной папке, поэтому это должно работать. Я не вносил никаких изменений в login.php, но он должен запускаться при отправке страницы.
<div class="container">
<!--Head wrap starts-->
<div id="head_wrap">
<!--Header starts-->
<div id="header">
<img src="https://web-answers.ru/wp-content/uploads/2019/02/logo.png" style="float:left;"/>
<form method="post" action="login.php" id="form1">
<strong>Email:</strong>
<input type="email" id="email" name="email" placeholder="Email" required="required" />
<strong>Password:</strong>
<input type="password" id="pass" name="pass" placeholder="****" required="required"/>
<input type="submit" id="login" name="login" value="Login">
</form>
</div>
<!--Header ends-->
</div>
</div>
Редактировать: Я не могу отладить весь ваш проект, но после просмотра некоторых вещей я вижу, что вы не используете атрибут ‘name’. Когда страница отправляется, пара имя / значение отправляется в массиве $ _POST. Если у вас нет атрибута name, ничего не отправляется. Начните с добавления атрибута name. Я изменил приведенный выше HTML-код, чтобы показать вам, как.
Вы должны использовать заголовок (…) функция, но не забывайте, что ваша страница продолжает работать в конце. Не забудьте использовать с die
чтобы остановить ваш сценарий. 😉
die(header("Location: home.php"))
или через 5 секунд:
header("refresh: 5; url=home.php");
if($check==1){
$email = mysqli_real_escape_string($con,$_POST['email']);
$_SESSION['user_email']=$email;
return 1;
}
else {
return 0;
}
и JavaScript проверяют статус 1 и 0, затем используют window.location.href и window.open
Проверьте в вашем файле ..
1) header () должна быть вызвана перед отправкой любого фактического вывода, либо
обычные HTML-теги, пустые строки в файле или из PHP2) Объедините все свои коды PHP и убедитесь, что у вас нет пробелов
в начале файла.3) после заголовка (‘location: home.php’); добавить выход ();
4) после sesssion_start () добавьте ob_start ();