проверьте, есть ли на входе число или только буквы, а затем выведите результат при отправке - PullRequest
0 голосов
/ 30 ноября 2018

Я создаю форму, которая проверяет ввод имени и выводит результаты, когда кнопка отправки нажата с помощью оператора IF.Но я не могу заставить его работать.Что я делаю не так?

<form id="AUTO"   method="post" action="" novalidate>
    <input type="hidden" name="token" value="<?php echo $token; ?>"/>
    <input type="hidden" name="miles" value=""/>
    <div id="contact_name">FULL NAME: *<br>
        <input id="element_2_1" name="name" class="element text" size="15" 
            maxlength="15" value="" type="text" placeholder="FULL NAME">
    </div>  
    <input type="submit" name="submit" class="submit action-button" value="SUBMIT" />
</form>

$Name = $_POST['Name'];

if (isset($_POST['submit'])) {
    //checks name field for a number if one exist echo has a number
    if (preg_match('|[0-9]', $Name)) {
        echo 'has a number';
    } else {
        echo 'Does not contain a number';
    }
}

Ответы [ 3 ]

0 голосов
/ 01 декабря 2018

Формы являются ключевыми и чувствительны, если вы задаете имя формы в нижнем регистре

    <input id="element_2_1" name="name" class="element text" size="15"
maxlength="15" value="" type="text" placeholder="FULL NAME">

, а на стороне сервера вы должны перехватывать его в нижнем регистре, как показано ниже.

 $name = $_POST['name'];

Вот какВы можете вызвать переменную из формы на стороне вашего сервера.

Надеюсь, это поможет вам решить вашу проблему.

Спасибо

0 голосов
/ 01 декабря 2018
<form id="AUTO"   method="post" action="" novalidate>
<input type="hidden" name="token" value="<?php echo $token; ?>"/>
<input type="hidden" name="miles" value=""/>
<div id="contact_name">FULL NAME: *<br>
<input id="Name" name="Name" class="element text" size="15" maxlength="15" type="text" placeholder="Full Name" value=""></div>   
<input type="submit" name="submit" class="submit action-button" value="SUBMIT" />
</form>




<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$Name = $_POST['Name'] ;




if (preg_match('#[0-9]#',$Name)){
echo 'has number';
}else{
    echo 'no number';

}





?>
0 голосов
/ 01 декабря 2018

Тег ввода формы имеет имя name, однако вы пытаетесь получить значение индекса POST Name.

Правильно будет

$Name = $_POST['name'] ;

Сохраните регистр имен.

...