Я пытаюсь настроить базовую веб-страницу, которая позволяет пользователю добавить строку в таблицу mysql в базе данных с целью включения светодиодного индикатора и с помощью ардуино. Однако, когда я пытаюсь отправить форму, страница возвращает состояние 500, и запрос mysql не выполняется. Я запускаю сервер linux-apache-mysql-php на своем компьютере. Почему это должно быть?Ошибка запроса сервера
<!doctype html>
<html>
<head>
<title> ARDUINO CONTROL CENTER </title>
<meta charset = "utf-8"/>
<link rel = "stylesheet" type = "text/css" href = "#" />
</head>
<body>
<h1> Welcome to the online arduino controller </h1>
<p> From here you can actually control an arduino in my room that will turn an LED light on and off. </p>
<form method = "get" action = "index.php">
<select name = "action">
<option value = "ON">ON</option>
<option value = "OFF">OFF</option>
</select>
<input type = "number" name = "duration"/>
<input type = "submit" />
</form>
</body>
</html>
<?php
$host = 'localhost';
$username = 'petros';
$password = '**********'; //can't give my password
$dbc = mysql_connect($host,$username,$password) or die("Unable to connect to server");
$db = 'ledrequests';
$sdb = mysql_select_db($db,$dbc) or die("Unable to connect to database.");
if(isset($_GET['action']) && isset($_GET['duration'])){
$action = $_GET['action'];
$duration = $_GET['duration'];
$query = "INSERT INTO requests(`act`,`duration`) VALUES ('$action',$duration)";
mysql_query($query);
}
?>
Это довольно нормальная ситуация, с которой вы столкнетесь снова и снова. Некоторая ошибка в выполнении скрипта. Не очень эффективно пытаться _guess_ решить проблему _might_. Вместо этого загляните в свой файл журнала ошибок HTTP-серверов. Там php точно укажет на то, в какой проблеме он работал, в какой строке в каком-то скрипте. Статус http 500 является «внутренней ошибкой», поэтому, скорее всего, это скрипт, который разбился. Информация, которую вы получаете из этого файла журнала ошибок, поможет немедленно выявить проблему. Вы _cannot_ программа php, не контролируя этот файл. – arkascha
Кроме того, общий намек: прекратите размещение html-формы и логики обработки в том же файле. Я знаю, что многие учебники показывают это именно так, но это просто безумный, неправильный, ненужный сложный. Имейте один файл (или набор сценариев), которые создают и доставляют форму, используют другой отдельный файл для обработки заявки на форму. Это разделяет отдельные вещи. – arkascha
Если вы используете одну из поздних версий php, это потому, что все функции mysql_ удалены, используйте функции mysqli_ или pdo вместо – rypskar