Php-страница с html-формой внутри выполнения php-кода до завершения формы

Это может быть глупой проблемой, но я новичок в этом (это домашняя работа ^^), и я не могу найти решение 🙂 У меня есть .php-файл с формой html плюс некоторый PHP-код для выполнения запроса и вставьте значения из формы в мою БД. И он работает, но каждый раз, когда страница загружается, выполняется PHP-код, и это вставляет в БД «пустую» строку, потому что, очевидно, форма еще не заполнена. Это код

<html> <head> <meta charset="utf-8"> <meta name="generator" content="AlterVista - Editor HTML"/> <title></title> </head> <body> <form action="myPage.php" method="post"> ID: <input type="text" name="id" /> <br /> <input type="submit" name="Submit" value="Go" /> <br /> </form> <?php $user = "DB"; $password = ""; $host = ""; $database = "my_DB"; $connessione = mysql_connect($host, $user, $password); @mysql_select_db($database, $connessione) or die( "Unable to select database"); $id = $_REQUEST['id']; $query = "INSERT INTO myTable (ID) VALUES ('".$id."')"; mysql_close(); ?> </body> </html> 

Есть ли способ выполнить PHP-код только после того, как будет выполнена кнопка «Go» в форме?

Пытаться:

 if(isset($_POST['Submit'])) { $user = "DB"; $password = ""; $host = ""; $database = "my_DB"; $connessione = mysql_connect($host, $user, $password); @mysql_select_db($database, $connessione) or die( "Unable to select database"); $id = $_REQUEST['id']; $query = "INSERT INTO myTable (ID) VALUES ('".$id."')"; mysql_query($query, $connessione); mysql_close(); } 

PHP будет работать до отображения страницы. Вам нужно настроить условие, чтобы остановить PHP, который вам не нужен, пока вы не представите форму.

 if(isset($_POST['myform'])) { // process the form }else{ // html for form goes here } 

Надеюсь, это поможет.

Предполагая, что форма указывает на сам сценарий, существует множество опций 🙂 Среди прочего:

Этот первый пример просто проверяет, была ли опубликована форма. Если будет получен обычный запрос (GET), он ничего не сделает, потому что он не попадет в ваше if-предложение

 // your form here if($_SERVER['REQUEST_METHOD'] == 'POST') { // your php code } 

И этот пример проверяет, была ли указана переменная с именем «Отправить», и если да, то если в ней есть значение «Go». Это немного более строгая проверка, но в вашем текущем примере поведение абсолютно одинаковое (так что вы можете в значительной степени выбрать, какой из них вам больше нравится;))

 // your form here if(array_key_exists('Submit', $_POST) && $_POST['Submit'] == 'Go') { // your php code }