как связать html и php-файлы?

276
13 сентября 2017, 14:13

Добрый день. Недавно начал изучать html и php, и столкнулся с проблемой, которую никак не могу решить. Есть простейшая html-форма для введения значений 5 полей, и php-файл, который должен записывать введенные данные в БД. К php прикреплен файл, содержащий данные для входа (связка с ним работает и данные не из формы, а вбитые как значения переменных,отправляет нормально). Однако, при попытке ввести данные в форму страница просто обновляется.Соответственно, ничего не выводится и не записывается в БД. Подскажите пожалуйста, в чем моя ошибка? (у меня есть смутное чувство, что для этого нужно прописать что-то в php, связанное со ссылками,но вот что?)

Upd0: добавил в index.html кнопку с submitom и переправил названия полей (спасибо за подсказку ArchDemon'у и прошу прощения - делал все это в жестком цейтноте). На всякий случай убрал экранирование символов. Увы, это ничего не дало. Может, я ставлю неправильное условие или что-то такое? P.S. Насколько моих обрывочных знаний хватает, я припоминаю, что php работает раньше html. Правда ли это и не в этом ли заключается проблема?

UPD1: Решил упростить файлы настолько, насколько это возможно. Заодно проверил через GET - так результат просто записывается в адресную строку. Через POST опять же, обновление и никаких результатов.

index.html

<!DOCTYPE HTML> 
<html> 
<head> 
  <meta charset="utf-8"> 
 <title>HTML-форма добавления новых данных</title> 
</head> 
 
<body> 
<form  aсtion="test.php" method="post">  
<br><br> № контракта <input name="numer_contracta"  maxlength=23 size=23>      
 <button type="submit" >Отправить на сервер</button> 
</form> 
</body> 
</html>

test.php

<html> 
	<head> 
<meta charset="utf-8"> 
	</head> 
	<body> 
<?php 
if (!empty($_POST["numer_contracta"])) { 
require_once 'connection.php'; // подключаем скрипт 
  // подключаемся к серверу 
    $link = mysqli_connect($host, $user, $password, $database)  
        or die("Ошибка " . mysqli_error($link));     
    // создание строки запроса 
     $query ="INSERT INTO contracts (nomer_contracta) VALUES('$_POST["$numer_contracta"]')"; 
 }    
  // выполняем запрос 
    $result = mysqli_query($link, $query) or die("Ошибка!" . mysqli_error($link));		 
    if($result) 
    { 
        echo " Данные добавлены"; 
    // закрываем подключение 
    mysqli_close($link);	 
} 
?> 
</body> 
</html>

Answer 1

В данном случае у Вас нет действия для отправки html формы (т.е кнопки submit), по нажатию на которою содержимое формы уйдет на сервер.

Чтобы понять что такое отправка данных формы на сервер и как это работает почитайте здесь

про кнопку submit и для чего она предназначена в форме здесь

READ ALSO
Отладка консольного выполнения кода

Отладка консольного выполнения кода

Можно ли в phpstorm настроить отладку так, чтобы можно было одновременно и web часть отлаживать и, если в коде параллельно встречается консольное...

164
Передать XML методом POST

Передать XML методом POST

Необходимо передать данные с интернет магазина на сервер доставки СДЭК с помощью XMLСкрипт просто перестают грузить страницу дальше

276
Как точно указать 1 месяц в секундах?

Как точно указать 1 месяц в секундах?

Каждый $i показывает такие времяА мне нужно точное время

223
Ещё один &ldquo;Cannot convert const char* to LPCWSTR&rdquo;

Ещё один “Cannot convert const char* to LPCWSTR”

Есть самописная функция, лежащая в файое библиотеки, подключенном к главному:

265