Я пытаюсь создать простую раскрывающуюся форму и разместить материалы в моей базе данных, чтобы потом проверить результаты.
Всякий раз, когда я отправляю форму с помощью кнопки отправки, ничего не происходит. Страница остается неизменной...
Chrome Console возвращает сообщение об ошибке 500. То, что я делаю неправильно, потому что я в настоящее время теряю его. ;-)
index.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>V1</title>
</head>
<body>
<form method="post" action="">
<label >I'm feeling...</label>
<select name="subject_names">
<option value="Angry">Angry</option>
<option value="Anxious">Anxious</option>
<option value="Bored">Bored</option>
<option value="Cranky">Cranky</option>
<option value="Crappy">Crappy</option>
<option value="Depressed">Depressed</option>
<option value="Energetic">Energetic</option>
<option value="Exhausted">Exhausted</option>
<option value="Frustrated">Frustrated</option>
<option value="Happy">Happy</option>
<option value="Motivated">Motivated</option>
<option value="Okay">Okay</option>
<option value="Relaxed">Relaxed</option>
<option value="Sad">Stressed</option>
<option value="Lazy">Lazy</option>
</select>
<button type="submit" name="submit" >Submit</button>
</form>
<?php
if(isset($_POST["submit"]))
{
//Including dbconfig file.
include 'db-connect.php';
$subjectName=$_POST["feeling"];
mysql_query("INSERT INTO thefeels VALUES ('$feeling')");
echo " Added Successfully ";
}
?>
</body>
</html>
db-connect.php:
$hostname = "localhost";
$username = "USERNAME";
$password = "PASSWORD";
$dbname = "DBNAME";
$conn = mysql_connect($hostname, $username, $password);
if (!$conn)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($dbname, $conn);
?>
Вы получаете значение POST, которое не установлено:
$subjectName=$_POST["feeling"];
Вы, вероятно, хотите:
$subjectName=$_POST["subject_names"];
Однако вы должны прекратить использовать mysql_query. Он устарел и был удален в PHP7. Вместо этого используйте mysqli или PDO.
Изменение: Ошибка 500 может быть вызвана, например, неправильными правами доступа к файлам. Вы проверяли разрешения?
mysql_*
. Используйтеmysqli_*
илиPDO
. если вы используете php, если вы используете более новую версию php, API уже удален. Также 500 является внутренней ошибкой сервера. Посмотрите в лог-файлы сервера для получения дополнительной информацииmysql_*
. Пожалуйста , не используйтеmysql_*
; функцииmysql_*
устарели, устарели и небезопасны - они были полностью удалены из современных версий PHP (версии 7.0 и выше). Вместо этого используйтеMySQLi
илиPDO
. Кроме того, проверьте вerror_log
подробности об ошибке.