#php
#php
Вопрос:
Добрый день! Я новичок в php.. Я создал форму, используя html, где я могу ввести оценку ученика. Затем страница php, чтобы узнать, проходят они или нет. Моя проблема в том, как я могу отправить ответ на html-странице. Пример, как я могу отправить статус «Вам не удалось» на моей html-странице под формой.
Мой код выглядит следующим образом:
<HTML>
<BODY>
Please enter your grade (0-100 only):
<FORM ACTION="grade2.php" METHOD="POST">
<table border = "1">
<tr>
<td>Grade</td>
<td><input type="text" name="grade" /></td>
</tr>
</table>
<INPUT type="submit" name="submit" value="grade">
</BODY>
</HTML>
<?php
$grade = $_POST['grade'];
IF ($grade>=0 amp;amp; $grade<=50){
print "You failed";
} ELSE IF ($grade<=60){
print "You Passed! But Study Harder!";
} ELSE IF ($grade<=70){
print "Nice";
} ELSE IF ($grade<=80) {
print "Great Job";
} ELSE IF ($grade<=90){
print "Excellent";
} ELSE IF ($grade<=100){
print "God Like!";
} ELSE {
print "Invalid Grade!";
}
?>
Ответ №1:
Просто используйте одну PHP-страницу, содержащую и форму, и сообщение. Например (предполагая, что ваш файл grade.php
)
<form action="grade.php" method="post">
<!-- form elements, etc -->
</form>
<?php
if (isset($_POST['grade'])) {
$grade = (double) $_POST['grade'];
// if statements, print message, etc
}
?>
Ответ №2:
Единственная проблема, которую я вижу, которая может помешать его отображению сейчас, заключается в том, что операторы печати находятся вне <body>
тегов.
Переместить
</BODY>
</HTML>
в самый конец файла
Ответ №3:
Вы можете использовать два способа.
Вы можете повторить имя файла скрипта:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Или просто оставьте поле действия пустым. Затем страница повторно загрузится сама по себе.
<form action="" method="post">
В верхней части вашего скрипта проверьте наличие переменных POST при перезагрузке:
if (isset($_POST['submit'])) {
И это все.
Комментарии:
1. Никогда не используйте
PHP_SELF
действие в форме вслепую, не очистив его сначала с помощьюhtmlspecialchars()
илиhtmlentities()
. Google PHP_SELF XSS2. Может ли кто-нибудь войти, используя второй вариант? Та, что без PHP?
Ответ №4:
Если вы имеете в виду отправить как по электронной почте, используйте функцию mail().
Если вы имеете в виду просто вывести результат на экран, используйте echo.
<?php
$grade = $_POST['grade'];
IF ($grade>=0 amp;amp; $grade<=50){
echo "You failed";
} ELSE IF ($grade<=60){
echo "You Passed! But Study Harder!";
} ELSE IF ($grade<=70){
echo "Nice";
} ELSE IF ($grade<=80) {
echo "Great Job";
} ELSE IF ($grade<=90){
echo "Excellent";
} ELSE IF ($grade<=100){
echo "God Like!";
} ELSE {
echo "Invalid Grade!";
}
?>
Кроме того, я не уверен, является ли это стандартом или нет (обычно я так не считаю), но наличие всех заглавных букв в ваших операторах IF / ELSE меня по какой-то причине действительно раздражает.
Комментарии:
1.
echo
выполнить ту же базовую функцию