그냥 빠른 하나, 내가 자리를 잡을 수 없어하고 다른 사람이 내 실수를 발견 할 수 있기를 바라고 있었는데, 나는 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>
정규식 학습, 당신은 후회하지 않을 것이다. – elclanrs
시도했으나 문제가 없었습니다 ... $ _POST [ 'submit']가 전송되지 않았음에도 불구하고 인증 코드를 입력하지 않은 것으로 나타났습니다. –
제출 버튼이 없습니까? – Kuzgun