【Php】 关于验证的问题-2
首先
这是一个关于学习PHP验证的内容的输出文章。
如果这里的内容有任何错误,请指正。这篇文章只是个人学习成果的输出。
前一篇文章:
https://qiita.com/redrabbit1104/items/a6e57aa1fd1771ef90ff
https://qiita.com/redrabbit1104/items/a3eaf2bba51fac0b3c51
https://qiita.com/redrabbit1104/items/6e9c85c7503ed9043f38
(The provided text is already in Chinese. Consequently, there is no need to paraphrase it in the same language.)
文字数的验证
对输入名称的表单施加字符数限制。
输入的字符串是日语,每个字符占用2个字节。这样大于2个字节的字符被称为多字节字符。
使用 mb_strlen() 函数
在英语中,要检查字符串的长度可以使用strlen()函数,但是对于像日语和韩语这样的每个字符占据2个字节的情况,需要使用mb_strlen()函数。字符编码的默认值为null,可以省略不写。
mb_strlen(調べたい文字列, 文字エンコード)
由于我想对之前创建的验证函数添加输入字符数的限制,所以我将使用 mb_strlen 函数,如果超过8个字符,则会显示错误消息。此外,由于每个字符有2个字节,因此将将8个字符更改为16个字符。
function validation($filter_value)
{ //$_POST 連想配列
$messages = [];
if (
empty($filter_value['input_name']) ||
16 < mb_strlen($filter_value['input_name']) // 追記
) {
$messages[] = '16文字以下の「氏名」を入力してください。'; //修正
}
return $messages;
}
添加单选按钮
在输入界面中添加单选按钮选项。为了在从确认界面返回输入界面时,保留所选值,我们希望使用php的if语句来指定当\$_POST[‘licence’]的值不为空(已选中)且值为0或1时,勾选选项。
免許
<input type="radio" name="licence" value="0"
<?php if (!empty($_POST['licence']) && $_POST['licence'] === '0')
{ echo 'checked'; } ?>>あり
<input type="radio" name="licence" value="1"
<?php if (!empty($_POST['licence']) && $_POST['licence'] === '1')
{ echo 'checked';} ?>>なし
另外,我们要根据\$_POST[‘licence’]的值是否为0或1,在完成页面上显示”是”或”否”。
免許
<?php if ($_POST['licence'] === '0') { echo 'あり'; }
if ($_POST['licence'] === '1') { echo 'なし'; }
?>
在按下发送按钮时,我们将添加以下内容,以便以隐藏类型传递$_POST[‘licence’]的值。
<input type="hidden" name="licence" value="<?php echo sp_chars($_POST['licence']); ?>">
单选按钮的验证
对于单选按钮,“是”或“否”其中一个值必须填写,因此要使用isset函数而不是empty函数。 如果’licence’的值未设置,则会触发验证并显示消息。
// 追記
if (!isset($filter_value['licence'])) {
$messages[] = '「免許」のチェックは必須です。';}
请参考以下网站
https://www.php.net/manual/zh/function.mb-strlen.php
https://www.php.net/manual/zh/function.strlen.php