необъявленная переменная php в контактной форме - PullRequest
0 голосов
/ 30 мая 2018

У меня проблемы с простой контактной формой.

Я получаю ошибку:

"Примечание: неопределенный индекс: термины в contact.php в строке 29 Внимание!Вы должны установить флажок «Политика конфиденциальности», чтобы принять наши условия. "

Строка 29:

$ rules = $ _POST ['Terms'];

if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");

$name     = $_POST['name'];
$email    = $_POST['email'];
$comments = $_POST['comments'];
$terms    = $_POST['terms'];

if(trim($terms) == '') {
echo '<div class="alert error"><div class="msg">Attention! You have to check 
the Privacy Policy box to accept our terms.</div></div>';
exit();
}


if(trim($comments) == '') {
echo '<div class="alert error"><div class="msg">Attention! Please enter your 
message.</div></div>';
exit();
} 

if(get_magic_quotes_gpc()) {
$comments = stripslashes($comments);
}

Файл шаблона находится ниже:

<form action="<?php echo $this->config->get('config_url').'ajax/contact.php' ?>" method="post" id="contact_form" enctype="multipart/form-data">
                        <table>
                            <tr>
                                <td>
                                    <label for="name"><?php echo $entry_name; ?></label>
                                    <input type="text" name="name" id="name" style="margin-right:20px" value="<?php echo $name; ?>" />
                                    <?php if ($error_name) { ?>
                                    <span class="error"><?php echo $error_name; ?></span>
                                    <?php } ?>
                                </td>
                                <td>
                                    <label for="email"><?php echo $entry_email; ?></label>
                                    <input type="text" name="email" id="email" value="<?php echo $email; ?>" />
                                    <?php if ($error_email) { ?>
                                    <span class="error"><?php echo $error_email; ?></span>
                                    <?php } ?>  
                                </td>
                            </tr>
                        </table>

                        <label for="enquiry"><?php echo $entry_enquiry; ?></label>
                        <textarea name="enquiry" id="enquiry" cols="30" rows="5"><?php echo $enquiry; ?></textarea>
                        <?php if ($error_enquiry) { ?>
                        <span class="error"><?php echo $error_enquiry; ?></span>
                        <?php } ?>

                        <input type="checkbox" name="terms" value="<?php echo $terms; ?>" />
                        <label for="terms">Tick this box to confirm you comply with our <a href="/privacy-policy/">Privacy Terms</a></label>

                        <input type="submit" id="submit" value="<?php echo $button_continue; ?>" class="button dark-bt" />
                        </form>

1 Ответ

0 голосов
/ 30 мая 2018

Попробуйте это:

$terms    = isset($_POST['terms']) ? $_POST['terms'] : '';

Поле флажка вы получите только в том случае, если оно проверено пользователем в форме.

Таким образом, всегда проверяйте это как флажок и переключатели .

...