Я пробовал много решений, опубликованных в переполнении стека, и ни одно из них не сработало.
Это мог быть только я, но я попробовал это в отдельном файле, и это сработало, но если я использую свой текущий сайт с хорошим CSS, это не сработает.
Я попробовал точный код на ЛАЭХП, и он сработал, но когда я добавил свой код, как вы можете видеть ниже, он ничего не отображает при нажатии кнопки и даже не обновляет страницу при нажатии.
<form action = "" method = "post">
<div class = "form-group">
<label>Username</label>
<input class = "au-input au-input--full" type = "email" name = "target" placeholder = "Example">
</div>
<div class = "form-group">
<label>API key</label>
<input class = "au-input au-input--full" type = "text" name = "key" placeholder = "X7UI-9H2D-IZAS">
</div>
<?php
$key= $_POST['key'];
$send= $_POST['send'];
if ($send) {
if (!empty($key)) {
echo 'The key you entered is ' . $key;
}
else {
echo 'You did not enter a key. Please enter a key into this form field.';
}
}
?>
<button class = "subscribe btn btn-primary btn-block" name = "send" type = "submit">Check Key</button>
</form>
Нет сообщений об ошибках. Файл журнала ошибок не создан. Код ``` $key= $_POST['key']; $send= $_POST['отправить']; if ($send){ if (!empty($key)) { echo 'Вы ввели ключ ' . $ключ; } else { echo 'Вы не ввели ключ. Пожалуйста, введите ключ в это поле формы.'; } } ?> ``` Работает Но не в моем случае.
Он просто ничего не возвращает, как нажатие бесполезной кнопки. Но код на этом сайте Learningaboutelectronics.com/Статьи/… работает. Я даже пробовал это на своем сервере, и я вообще не получаю ответа.
То есть вы нажимаете на кнопку, и буквально ничего не происходит? Страница даже не обновляется?
Нет, страница не будет обновляться при нажатии кнопки.
Не могли бы вы обновить свой вопрос, чтобы он соответствовал форме, которая у вас есть? В своем вопросе вы разделили html на разные блоки кода. Кстати. у вас есть какой-нибудь javascript, который прослушивает событие отправки или нажатия кнопки?
Если форма вообще не отправляется, проверьте консоль Javascript вашего браузера. Кроме того, вы говорите, что не видите ошибок, но вы определенно должны получать неопределенные ошибки индекса из-за того, что вы выполняете свой PHP как при начальной загрузке страницы, так и при отправке. Что-то здесь не складывается.
У меня на сайте нет js, только php и html. я обновил свой вопрос и блоки кода
Патрик, я так и думал. я редко сталкиваюсь с ошибками, и самая простая вещь меня застряла. Я повторю попытку и отпишусь
Я думаю, что он подчиняется, но делает это быстро. Проблема, насколько я понимаю, заключается в том, что вы проверяете, отправлена ли кнопка и не является ли она «ложной». Поскольку у вас нет значения для кнопки, это будет пустая строка, которая заставит if ($send) оцениваться как «ложь». Попробуйте добавить value = "send" к кнопке или измените свой чек на: if (isset($_POST['send'])). Вы также не должны делать $key = $_POST['key'];, пока не проверите, существует ли ключ.
Спасибо всем. Решение, которое сработало, было от Магнуса. Спасибо за помощь. Извините за мою формулировку






Переменная $send представляет собой null, когда форма отправляется в браузер, и пустую строку ("""), когда браузер отправляет форму. В PHP при преобразовании в логическое значение (как в вашем выражении if ($send)) обе они оценивают значение false, и код внутри оператора if не запускается.
Быстрое исправление состояло бы в том, чтобы изменить его на:
if ($send !== null) // the `!==` is for preventing the type juggling that `!=` does
Однако лучший метод — использовать функцию isset(), которая проверяет, существует ли переменная или ключ в массиве, например:
if (isset($_POST['send']))
Если вы включите полную отчетность об ошибках, вы можете получить уведомления о том, что переменные $_POST['key'] и $_POST['send'] не существуют. С моей рекомендацией, которая использует isset(), вам больше не понадобится переменная $send, а другое уведомление исчезнет, если присвоить значение переменной $key после того, как вы проверите, установлена ли переменная $_POST['send'].
Проблема, которую я вижу, заключается в том, что вы проверяете, была ли кнопка отправлена и не является ли она «ложной». Поскольку у кнопки нет value-атрибута, это будет пустая строка, которая является «ложным» значением, а это означает, что первое if-утверждение никогда не будет оценено как истинное.
Попробуйте изменить код на:
<?php
// isset() is better since it check if the key exists and isn't null.
if (isset($_POST['send'])) {
// If you rather put the values in separate variables,
// you should do it here, inside the if-statement (where we know we
// got a POST request)
if (!empty($_POST['key'])) {
echo 'The key you entered is ' . $_POST['key'];
}
else {
echo 'You did not enter a key. Please enter a key into this form field.';
}
}
?>
"это не сработает" нам ни о чем не говорит. Что конкретно не работает? Каким образом не работает? Что делает произошло? Каково поведение ожидал? Какую отладку вы сделали? Если вы получаете ошибки, каковы точные сообщения об ошибках?