Поля номера проверки формы PHP
Мне нужно это поле, чтобы в поле можно было вводить только цифры, и в поле "Номер мобильного телефона" должны быть введены 11 цифр. Это форма, которую я создал.
<form name="myForm" id="userDetails" action="formProcess.php" onSubmit="return validateForm()" method="post">
<fieldset class="custInf">
<h3> User Details </h3>
<label class="inputArea" for="fName">Forename :</label>
<input type="text" name="forename" id="fname" placeholder="Enter First Name" maxlength="20" size="15"></input>
<label class="inputArea" for="sName">Surname :</label>
<input type="text" name="surname" id="surname" placeholder="Enter Last Name" maxlength="20" size="15"></input>
<label class="inputArea" for="email">Email :</label>
<input type="email" name="email" id="email" placeholder="Enter Email Address" maxlength="40" size="15" /></input>
<label class="inputArea" for="hmph">Landline number :</label>
<input type="tel" name="landLineTelNo" id="hmphone" placeholder="Enter Landline no." maxlength="11" size="15"></input>
<label class="inputArea" for=" mobileTelNo">Mobile number :</label>
<input type="tel" name=" mobileTelNo" id="mobile" placeholder="Enter Mobile no." maxlength="11" size="15"></input>
<label class="inputArea" for="address">Postal Address :</label>
<input type="text" name="postalAddress" id="address" placeholder="Enter House no." maxlength="25" size="15"></input>
</fieldset>
<fieldset class="contactType">
<h3>
How would you like to be contacted?
</h3>
<label class="radioBt" for="sms">SMS</label>
<input id="smsBut" type="radio" name="sendMethod" value="SMS"></input>
<label class="radioBt" for="email">Email</label>
<input type="radio" name="sendMethod" value="Email"></input>
<label class="radioBt" for="post">Post</label>
<input type="radio" name="sendMethod" value="Post"></input>
</fieldset>
<fieldset class="termsCon">
<input type="checkbox" name="check" value="check" id="check" />I have read and agree to the Terms and Conditions and Privacy Policy</input>
</fieldset>
<input class="submitBut" type="submit" name="submitBut" value="Submit" </input>
Вот PHP, который я создал до сих пор для проверки ввода пользователя `// Гарантирует, что пользователь вводит необходимую информацию
$fname = $_REQUEST['forename'];
if (empty($fname)) {
die("<p>Enter a first name</p>\n");
}
$surname = $_REQUEST['surname'];
if (empty($surname)) {
die("<p>You must enter a surname</p>\n");
}
$email = $_REQUEST['email'];
if (empty($email)) {
die("<p>You need to enter an email</p>\n");
}
$hmphone = isset($_REQUEST['hmph']) ? $_REQUEST['hmph'] : null ;
$mobile = $_REQUEST['mobileTelNo'];
if (empty($mobile)) {
die("<p>Enter a Mobile Number</p>\n");
}
$address = $_REQUEST['postalAddress'];
if (empty($address)) {
die("<p>Enter your postal address</p>\n");
}
$sendMethod = $_REQUEST['sendMethod'];
if (empty($sendMethod)) {
die("<p>Please choose a contact option</p>\n");
}
$check = $_REQUEST['check'];
if (empty($check)) {
die("<p>Please select the Terms and Conditions to continue</p>\n");
}`
3 ответа
Если вы уверены, что ваше правило верно, вы можете сделать это:
if (empty($mobile) || preg_match('/^[0-9]{11}$/', $mobile) != 1 ) {
die("<p>Enter a Mobile Number</p>\n");
}
из документов:
preg_match () возвращает 1, если шаблон соответствует заданному предмету, 0, если нет, или FALSE, если произошла ошибка.
Регулярное выражение объясняет:
^
утвердить позицию в начале строки[0-9]
соответствует одному символу, представленному в списке ниже- Квантор:
{11}
Ровно в 11 раз 0-9
один символ в диапазоне от 0 до 9$
утвердить позицию в конце строки
Вы можете сопоставить шаблон внутри формы, добавив следующий код в соответствующее поле ввода благодаря тегу шаблона html5. Подробнее о теге шаблона здесь: http://www.w3schools.com/tags/att_input_pattern.asp
pattern="[0-9]{11}"
К счастью, это очень похоже на проверку php на стороне сервера!
$isValid = preg_match("/[0-9]{11}/", $formvalue);
$ isValid вернет true (1), если совпадает, или false (0), если не совпадает.
preg_match - очень полезная функция для пользовательской проверки. Более подробная информация доступна здесь: http://php.net/manual/en/function.preg-match.php
Вы можете подтвердить это:
if(empty($number)) {
echo '<p> Please enter a value</p>';
} else if(!is_numeric($number)) {
echo '<p> Data entered was not numeric</p>';
} else if(strlen($number) != 11) {
echo '<p> The number entered was not 6 digits long</p>';
}