4

私のphpスクリプトには、この入力フィールドがあります。

   <input type="text" name="try" size="10" id="try" maxlength="5" >

5文字が必要で、文字だけではない場合にエラーメッセージを表示する簡単な方法は何ですか。

4

5 に答える 5

3

patternHTML5では、次の属性を使用できます。

<input type="text" name="try" size="10" pattern="[A-Za-z]{5}" title="5 alphabetic characters exactly">

これにより、正確に5文字が許可されます。これは、大文字または小文字の英字のみです。

于 2012-12-26T17:23:29.880 に答える
2

おそらく、クライアント側のjQueryでそれを行うことができます。JavaScriptは攻撃ベクトルによってバイパスされる可能性があるため、サーバー側でも実行する必要があります。このような正規表現は、PHPでサーバー側の検証を行います。

$ rgx ='/ [AZ] {5、} / i';

アプローチを組み合わせる...

http://www.laprbass.com/RAY_temp_axxess.php?q=abcde
http://www.laprbass.com/RAY_temp_axxess.php?q=ab
http://www.laprbass.com/RAY_temp_axxess.php?q= abcdefg

<?php // RAY_temp_axxess.php
error_reporting(E_ALL);

// A REGEX FOR 5+ LETTERS
$rgx = '/^[A-Z]{5,}$/i';

if (isset($_GET['q']))
{
    if (preg_match($rgx, $_GET['q']))
    {
        echo 'GOOD INPUT OF 5+ LETTERS IN ';
    }
    else
    {
        echo "VALIDATION OF {$_GET['q']} FAILED FOR REGEX: $rgx";
    }
}

// CREATE THE FORM
$form = <<<ENDFORM
<form>
<input type="text" name="q" pattern="[A-Za-z]{5,}" title="At least 5 alphabetic characters" />
<input type="submit" />
</form>
ENDFORM;
echo $form;
于 2012-12-26T17:23:47.593 に答える
1

ページがそれ自体に送信されると仮定します。

速くて汚い。

<?php
$errors = array();
if (isset($_POST['try']) & strlen($_POST['try']) != 5 & ctype_alpha( $_POST['try'] != true) {
$error['try'] = "This field must contains 5 characters and contain only a-z and A-Z";
// stop whatever you normally do if submitted.
}
?>

このフィールドを表示するページの後半。

<?php if (isset($errors['try'])) { echo $errors['try']; } ?>
<input type="text" name="try" size="10" id="try" maxlength="5" >
于 2012-12-26T17:29:44.077 に答える
1
<input type="text" pattern=".{5,}" required />

これを試して

于 2012-12-26T17:23:03.863 に答える
1

このように表示する前にフォームを検証し、strlenを使用して入力の長さを確認します。

if(isset($_POST['mySubmit'])) {
    if(strlen($_POST['try']) < 5) {
        $error = "Too short";
    }
    else {
        $valid = true;
        //Do whathever you need when form is valid
    }
}
else {
    if(isset($error)) {
        echo "<p>$error</p>";
    }

    //echo your form here
    echo "<form method='post' action='thisPhpScript.php'>
              <input type='text' name='try' size='10' id='try' maxlength='5' >
          </form>";
}

これはテストされていないため、構文エラーが発生する可能性があります。

于 2012-12-26T17:25:02.880 に答える