Я следую учебнику, чтобы узнать больше о php, в его исходном коде есть что-то, что работает в то время, но больше не работает. вот код, пожалуйста, дайте мне знать, что я должен изменить в коде, чтобы процесс входа в систему работал (в настоящее время после ввода действительного имени пользователя и пароля и нажатия входа он зависает и показывает первую страницу, а не переходит на home.php
вот шаблон/header.php:
<div class = "container">
<!--Head wrap starts-->
<div id = "head_wrap">
<!--Header starts-->
<div id = "header">
<img src = "images/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>
вот логин.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, я не могу найти ответ, я ценю вашу помощь.
@CharlesEF я пробовал кнопку отправки, но это не только ошибка, которая у нее есть, не могли бы вы сообщить мне, какая еще ошибка есть в учебнике?
Я пытался скачать файл, но не могу пройти мимо социальной сети. Меня просят загрузить файл с помощью Facebook, Twitter или Goggle+. Поскольку я вообще не пользуюсь социальными сетями, я не собираюсь регистрироваться только для того, чтобы скачать ваш файл. Если вы можете разместить файл на другом сервере, возможно, я смогу его скачать, но не из текущего местоположения.
Вы используете веб-сервер, не так ли? PHP работает только на стороне сервера, поэтому вам нужно, чтобы веб-сервер работал. И PHP должен быть установлен на веб-сервере.
Я не пользуюсь такими сайтами, поэтому мне нечего вам порекомендовать, извините. Если вы можете найти другой сайт, просто напишите адрес в комментарии.
Хорошо понял. Дай мне немного времени, чтобы все обдумать.
Ваш header.php включен в home.php?
@jigar halani я добавил, никаких изменений при этом не происходит, все еще пустая страница (login.php)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны использовать функцию заголовок (...), но не забывайте, что ваша страница продолжает работать в конце. Не забудьте использовать с die, чтобы остановить ваш скрипт. ;)
die(header("Location: home.php"))
или через 5 секунд:
header("refresh: 5; url=home.php");
извините, не работает, я прикрепляю весь исходный код проекта в edit2 к основному вопросу, пожалуйста, дайте мне знать, если у вас есть какие-либо идеи. Благодарность
@Jack Это функция cookie, такая как запуск сеанса в порядке. SET_COOKIE, у вас не должно быть вывода HTML раньше. Или используйте html для перенаправления, как этот <meta http-equiv = "refresh" content = "0; url=home.php" />
Это ваш HTML-код, но с кнопкой отправки. Вы говорите, что все файлы находятся в одной папке, так что это должно работать. Я не вносил никаких изменений в login.php, но он должен запускаться при отправке страницы.
<div class = "container">
<!--Head wrap starts-->
<div id = "head_wrap">
<!--Header starts-->
<div id = "header">
<img src = "images/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>
Редактировать: Я не могу отладить весь ваш проект, но после просмотра некоторых вещей я вижу, что вы не используете атрибут "имя". При отправке страницы в массив $_POST отправляется пара имя/значение. Если у вас нет атрибута «имя», ничего не отправляется. Начните с добавления атрибута «имя». Я изменил приведенный выше HTML-код, чтобы показать вам, как это сделать.
Я пытался добавить тип отправки для ввода и значение, но это не единственная причина, по которой проблема не работает. если вы можете, пожалуйста, взгляните на Edit2 и посмотрите, какие еще ошибки он имеет, очень ценится. я два дня боролся с этим кодом и не могу найти причину
после добавления имени и action = "login.php" в форму URL-адрес будет перенаправлен на login.php и белую пустую страницу. Я думаю, дело в том, что мне нужно изменить правильные файлы php в форме действия, я пробовал action = "home.php", но он не переходит на home.php, он остается в index.php. не могли бы вы быстро взглянуть и сообщить мне, какой php я должен добавить в действие? если вы хотите запустить код, вы найдете соединения конфигурации mysqli_connect в include/connections.php и function/functions.php и delete_post.php. Спасибо -
Есть много других проблем с вашим кодом, которые я не упомянул, но должен был упомянуть. Я не вижу, чтобы вы выполняли какую-либо проверку данных на стороне Javascript или PHP. Вы всегда должны проверять ввод пользователя. Поскольку вы используете команды mysqli_*, вам следует использовать параметризованные запросы для защиты от SQL-инъекций. Что касается сценария действия, я поместил login.php в атрибут действия, потому что это сценарий, который будет обрабатывать вход пользователя в систему. Вы смотрели в журнале ошибок PHP? Это может дать вам представление о том, где проблема.
Я просмотрел ваш login.php и HTML-код, который вы разместили первым. Я вижу, что у кнопки отправки нет атрибута «имя», он нужен из-за этой строки в login.php «if (isset ($_POST ['login'])) {'. Без «имени» $_POST['login'] не будет существовать, и 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
используя успех ajax
не могли бы вы завершить свой код с успехом ajax и window.location.href и window.open , это поможет мне точно понять, что вы имеете в виду, если вы полностью напишите это в коде. если это работает, я принимаю ваш ответ как эту тему
Проверьте свой файл..
1) header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP
2) Combine all your PHP codes and make sure you don't have any spaces at the beginning of the file.
3) after header('location: home.php'); add exit();
4) after sesssion_start() add ob_start();
Где кнопка отправки? Я вижу только обычную кнопку. Пока вы не отправите страницу, PHP вообще не запустится. И вы должны использовать команду PHP «header» для перенаправления страницы, а не Javascript.