phpで文字列チェックしてみる

2019-11-4 - 読み終える時間: 3 分

以下のような条件で入力内容をチェックしたい。

  • a-z,0-9とハイフン”-”が使用でる
  • ハイフンを先頭または最後の文字にはできない
  • 数字のみの文字列は不可
  • 3文字未満の文字列は不可
  • 連続するハイフンは不可
  • 最大32文字
  • POSTされた文字列をチェックする体で

こちらがそのphpのコード

またしてもですが、私、phpに初めて触ります。 初心者の不慣れなコードですので、ご参考程度に😅😅😅

<?php

$inputtedword = "";
$inputtedword = $_POST[idname];

$onlynumcheck = preg_replace('/[0-9]/', '', $inputtedword);
$wordscheck = preg_replace('/[0-9a-z[\-]/', '', $inputtedword);

function returntop() {
    echo '<p>';
    echo '<a href="/" title="to top page">戻る</a>';
    echo '</p>';
}

if (strlen("$inputtedword") < 3) {
    echo '<p class="postediderror">';
    echo "NG:3文字未満のアカウントは作成できません";
    echo '</p>';
    returntop();
} elseif (preg_match('/^[\-]/', "$inputtedword") === false) {
    echo "error:入力値が不正です";
} elseif (preg_match('/^[\-]/', "$inputtedword") === 1) {
    echo '<p class="postediderror">';
    echo "NG:ハイフンを先頭または最後の文字にはできません";
    echo '</p>';
    returntop();
} elseif (preg_match('/[\-]$/', "$inputtedword") === false) {
    echo "error:入力値が不正です";
} elseif (preg_match('/[\-]$/', "$inputtedword") === 1) {
    echo '<p class="postediderror">';
    echo "NG:ハイフンを先頭または最後の文字にはできません";
    echo '</p>';
    returntop();
} elseif (preg_match('/[\-][\-]+/', "$inputtedword") === false) {
    echo "error:入力値が不正です";
} elseif (preg_match('/[\-][\-]+/', "$inputtedword") === 1) {
    echo '<p class="postediderror">';
    echo 'NG:"--"ハイフンは連続して使用できません';
    echo '</p>';
    returntop();
} elseif (strlen($onlynumcheck) == 0) {
    echo '<p class="postediderror">';
    echo 'NG:数字だけでは作成できません';
    echo '</p>';
    returntop();
} elseif (strlen($wordscheck) > 0) {
    echo '<p class="postediderror">';
    echo 'NG:使用できない文字が含まれています';
    echo '</p>';
    returntop();
} elseif (strlen("$inputtedword") > 32) {
    echo '<p class="postediderror">';
    echo "NG:アカウント名は最大32文字です";
    echo '</p>';
    returntop();
} else {
    echo "OK: Name string was checked"."<br>";
}

?>

[AD]PHPしっかり入門教室 使える力が身につく、仕組みからわかる。

[AD]PHPしっかり入門教室 使える力が身につく、仕組みからわかる。【PDF版】

[つぶやき]プログラミングむずかしいなぁ・・・

今回はこれまで。

ALTERWORKS Labo について

まだ特筆すべきものはありません《以下広告》