Просто быстрый, я не могу показаться, и я надеялся, что кто-то еще обнаружит мою ошибку, у меня есть код проверки строки, написанный на PHP, и проблема, с которой я сталкиваюсь, заключается в том, что форма похоже, проверяет поле «customerfname», как только он открывается, когда не нажата кнопка отправки, как только открывается форма, появляется сообщение «Пожалуйста, введите свое имя», даже до нажатия кнопки отправки. Может ли кто-нибудь заметить мою ошибку?Форма проверяет перед отправкой
<?php
$flag = false;
$badchar = "";
$string = $_POST["customerfname"];
$string = trim($string);
$length = strlen($string);
$strmsg = "";
if (isset($_POST["submit"])) {
if ($length == 0) {
$strmsg = '<span class="error"> Please enter your first name</span>';
$flag = true;
$valid = false;}
else if ($length > 30) {
$strmsg = '<span class="error"> Can not enter more than 30 characters</span>';
$flag = true;
$valid = false;
}
else{
for ($i=0; $i<$length;$i++){
$c = strtolower(substr($string, $i, 1));
if (strpos("abcdefghijklmnopqrstuvwxyz-", $c) === false){
$badchar .=$c;
$flag = true;
$valid = false;
}
}
if ($flag) {
$strmsg = '<span class="error"> The field contained the following invalid characters: '.$badchar.'</span>';}
}
if (!$flag) {
$valid = true;
}
}
?>
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="custinfo">
<td><label for="customerfname">Customer First Name: </label></td>
<td><input type="text" id="customerfname" name="customerfname" size=50/><?php echo $strmsg; ?></td>
<p><input type="submit" name="submit" value="Save Data"/> <input type="reset" value="Clear Form" />
</form>
Учиться regex, вы не пожалеете об этом. – elclanrs
Пробовал и не имел проблемы ... Я заметил, что не отправляется $ _POST ['submit'], поэтому даже не вводил код проверки. –
у вас нет кнопки отправки? – Kuzgun