Итак, у меня есть кнопка отправки в моей форме, которая добавляет информацию, необходимую для массива, однако, когда я открываю эту страницу, она автоматически добавляет информацию в мою базу данных (я использую 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
}
Вы должны проверить на GET
(хотя я рекомендую использовать POST
) информацию, прежде чем запускать обновление кода базы данных. Убедитесь, что вы добавили это на страницу, на которую идет отправка (или текущий код, если это та же страница). Например:
if( isset($_GET["cantpag"] ) {
// Run code
}
Это гарантирует, что пользователь ввел информацию в форму и нажал кнопку Отправить. Вы можете проверить все входные значения, но часто это не нужно.
Вам нужно проверить, что форма была отправлена, проверив наличие переменных в $ _POST, которые существуют только после отправки формы.
Например:
if (isset($_POST['cantpag'])){
$field_key = "datos_especificos";
update_field($field_key, $arrayname, $current_inv);
}
Таким образом, поле будет обновляться только после публикации формы.