【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

广告
将在 10 秒后关闭
bannerAds