Запуск кода PHP при нажатии кнопки отправки в html с добавлением информации

Итак, у меня есть кнопка отправки в моей форме, которая добавляет информацию, необходимую для массива, однако, когда я открываю эту страницу, она автоматически добавляет информацию в мою базу данных (я использую WordPress с плагином ACF с ретранслятором расширения).

Что я должен сделать, это вместо того, чтобы запускать скрипт php при открытии страницы, запускать его только тогда, когда я нажимаю кнопку отправки и добавляю числа, добавленные в форму.

            $timea = date(d);
if($timea<27)
{

?>
<form action="<?php the_permalink(); ?>" method="GET" enctype="multipart/form-data">
<input type="number" name="cantpag" value="9">
<input type="number" name="cantreinv" value="9">

<input type="submit">
</form>
<?php

$arrayname = get_field('datos_especificos',$current_inv);
$arrayname[] = array(
'fecha'                         => 20140504,
'saldo'                         => 5,
'inversion_en_el_periodo'       => 5,
'interes_causado_en_el_periodo' => 5,
'cantidad_pagada'               => $_POST["cantpag"],
'cantidad_reinvertida'          => $_POST["cantreinv"],
'saldo_final'                   => 5
);$field_key = "datos_especificos";
update_field($field_key, $arrayname, $current_inv);

?>

<?php

}else{
?> <p>Cant do any changes after the 26th</p> <?php
}

-1

Решение

Вы должны проверить на GET (хотя я рекомендую использовать POST) информацию, прежде чем запускать обновление кода базы данных. Убедитесь, что вы добавили это на страницу, на которую идет отправка (или текущий код, если это та же страница). Например:

if( isset($_GET["cantpag"] ) {
// Run code
}

Это гарантирует, что пользователь ввел информацию в форму и нажал кнопку Отправить. Вы можете проверить все входные значения, но часто это не нужно.

1

Другие решения

Вам нужно проверить, что форма была отправлена, проверив наличие переменных в $ _POST, которые существуют только после отправки формы.

Например:

if (isset($_POST['cantpag'])){

$field_key = "datos_especificos";
update_field($field_key, $arrayname, $current_inv);
}

Таким образом, поле будет обновляться только после публикации формы.

0

По вопросам рекламы [email protected]