#php #html #atom-editor
#php #HTML #atom-редактор
Вопрос:
Кого это может касаться,
Недавно я изучаю HTML, CSS, JS, а теперь и PHP. Я работаю в Atom и использую atom-live-server для просмотра того, что я делаю. Я следую курсу W3schools по PHP и даже когда я копирую их код, я получаю ошибку в Goo&le Chrome (HTTP ОШИБКА 405). После некоторого изучения проблемы я не могу найти решение. Я добавил PHP-сервер в atom и установил правильный путь. Я приложу соответствующий код ниже:
<!DOCTYPE html&&t;
<html lan&="en"&&t;
<head&&t;
<meta charset="utf-8"&&t;
<title&&t;Title</title&&t;
<link rel = "stylesheet" src = "stylesheet.css"&&t;
</head&&t;
<body&&t;
<form action="passwords.php" method = "post"&&t;
<input type = "text" name = "Username" placeholder = "Username" required&&t;
<input type = "password" name = "Password" placeholder="Password" required&&t;
<input type = "submit" value = "Submit"&&t;
</form&&t;
<script src = "script.js"&&t;</script&&t;
</body&&t;
И php-файл:
<html&&t;
<body&&t;
<? php echo $_POST["Username"]; ?&&t;
<? php echo $_POST["Password"]; ?&&t;
</body&&t;
</html&&t;
Комментарии:
1. Можете ли вы запустить простое echo «hello world» на вашем php-сервере?
2. Какой HTTP-сервер вы используете?
3. Пожалуйста, удалите ненужные пробелы.
4. @MohammedBilal Я только что попробовал это, но я не думаю, что проблема в PHP в файле. Независимо от того, какой код я вставляю, при отправке формы открывающаяся страница просто возвращает ошибку.
5. @SalimIbro&imov я даже не уверен, как это найти…
Ответ №1:
Я никогда не знал, что у Atom есть php-сервер, поэтому я просто попробовал его…
Но я должен заранее заявить, что я не получаю вашу ошибку http 405.
Моя настройка ваших файлов я настроил ваш основной файл как index.php и ваш passwords.php как есть.
Из ATOM я щелкнул правой кнопкой мыши по index.php и выбрал «PHP Server Here», который запустил браузер Chrome с URL http://localhost:8000/index.php
. Таким образом, отображаемая форма … а затем заполнение ее и нажатие кнопки отправки приводит меня к http://localhost:8000/passwords.php
Но у вас есть другая проблема, поскольку у вас есть пробелы в ваших открывающих тегах PHP.
<? php
должно быть <?php
Итак, ваш код…
<html&&t;
<body&&t;
<? php echo $_POST["Username"]; ?&&t;
<? php echo $_POST["Password"]; ?&&t;
</body&&t;
</html&&t;
Должно быть похоже
<html&&t;
<body&&t;
<?php echo $_POST["Username"]; ?&&t;
<?php echo $_POST["Password"]; ?&&t;
</body&&t;
</html&&t;
Альтернативой использованию <?php echo
является <?=
В качестве отступа для отладки?
Для обнаружения ошибок. В вашем основном файле вы можете использовать.
<?php
// Enable FULL Error Reportin& on the screen
// ONLY USE IN DEVELOPMENT
error_reportin&(E_ALL);
ini_set('display_errors', 1);
ПРИМЕЧАНИЕ: Похоже, что он не слишком беспокоится об этом <? php
и не рассматривает это как ошибку как таковую, поскольку она не обнаружена как допустимый php-код. Но это хорошо для всех других проблем PHP.
Если вы просмотрите исходный код HTML в своем браузере, вы увидите его вывод…
Исходный код HTML из браузера
<html&&t;
<body&&t;
<? php echo $_POST["Username"]; ?&&t;
<? php echo $_POST["Password"]; ?&&t;
</body&&t;
</html&&t;
Просмотр значений массива
Использование var_dump($_POST);
или print_r($_POST);
отобразит все значения массива, в данном случае глобального массива $_POST. Просто чтобы вы могли видеть, что публикуется, если вам это когда-нибудь понадобится.
Комментарии:
1. Спасибо за ваш быстрый и исчерпывающий ответ. Это был мой первый пост в stackoverflow, и я приятно удивлен, что так быстро получил помощь. Теперь я попробовал ваше предложение, но когда я меняю файл с расширением php и устанавливаю PHP-сервер на index.php Я получаю вкладку с (на вкладке) «каталог списка /», и в ней просто перечислены файлы, сохраненные в моей папке. Я также изменил интервал, так что спасибо за этот совет!
2. @NielsvandenHeuvel Итак, давайте вернемся на шаг назад… Какова ваша фактическая файловая структура? Что вы видите в «прямом перечислении»?
3. @Niels van den Heuvel вам даже не нужен password.php файл. разместите пароль в том же индексном файле, сначала посмотрите, работает ваша форма или нет. Удалите все и скопируйте и вставьте рабочий пример из W3Schools на базовом php. если это все еще не сработало, значит, проблема в вашей файловой структуре. это не должно занять так много времени для печати переменной post. Ошибка 403 означает, что это ошибка на стороне клиента, вы отправляете или получаете неправильно отформатированный запрос.
4. @TimBrownlaw я не уверен, получили ли вы уведомление из моего последнего комментария в теме; но, как вы можете видеть, я решил это. Спасибо вам за вашу помощь, ребята!
5. @MohammedBilal Я не уверен, получили ли вы уведомление из моего последнего комментария в теме; но, как вы можете видеть, я решил эту проблему. Спасибо вам за вашу помощь, ребята!
Ответ №2:
Итак, я только что понял, что происходит. Прежде всего, я попытался установить XAMPP и сервер Apache и MySQL (что оказалось не решением и было в основном бесполезным). Но когда я запускал эти серверы, я обнаружил, что порты, которые были зарезервированы для этих серверов, были по какой-то причине заблокированы (вероятно, McAffee Livesafe). Это заставило меня попытаться изменить порт на встроенном PHP-сервере в Atom. Я изменил ее с 8000 на 8081. Далее, когда я попытался настроить свой PHP-сервер на мой index.php файл, Windows спросила меня, разрешу ли я PHP-серверу на соответствующем порту. Очевидно, я это сделал. После этого PHP-код, который я написал в passwords.php сработало!
Дополнительное замечание для всех, кто сталкивается с такой же проблемой: по какой-то причине atom-live-server в Atom не будет хорошо функционировать с файлом PHP. Запуск такого сервера бесполезен, если вы используете любой PHP-файл, так как вы получите ту же ошибку, что и я. Итак, все сводится к обновлению страницы.
Спасибо всем, кто пытается помочь мне с моей проблемой! Хотя это, возможно, и не принесло мне окончательного решения, оно все равно мне очень помогло.
Комментарии:
1. Я предлагаю вам использовать Netbeans IDE или Eclipse IDE для php для правильной разработки. Эти текстовые редакторы hippie в основном ориентированы на разработку JavaScript с небольшим добавлением php и тому подобного.
2. @MohammedBilal Спасибо за совет. Я обязательно рассмотрю это. Я уже использую eclipse для java.