PHP使用strpos检查表单特定的单词?

时间:2016-01-26 23:45:14

标签: php validation strpos

我试图使用strpos或某种方法来搜索“已验证的”字样。在一个名为$ likes的textarea中,如果找不到则返回错误。我不确定如何绕过验证两个条件(文本字段'喜欢'不能为空,它必须包含单词' validation')所以我有点扔了另一个声明没有用,现在我拼命地插入我的HTML ..

这是我的基本php验证,我删除了所有其他错误处理并将textarea留了一个。

   <?php
        // define variables + initialize
        $nameErr = $likesErr = $placesErr = $thingsErr = $emaiLErr = $shopErr = $emailyesErr= "";
        $name = $likes = $places = $email = $emailyes = $shops = $things = "";
        $shops = array();
        $things = array();
        $likesErr2 = "Your likes must include the word 'validated'!";

    if ($_SERVER["REQUEST_METHOD"] == "POST") {

        //textarea likes
        if (empty($_POST["likes"])) {
            $likesErr = "Please tell me what you like about hiking! :(";
        }

        else {
            $likes = $_POST["likes"];
        }
    }
    ?>

以下是我在strpos上的尝试:(

 <label>What do you like about hiking?</label><span class = "error">* <?php echo $likesErr;?></span><br>

<textarea rows="4" cols="50" input type="text" id="likes" name="likes">
 <?php echo $likesErr2 (if ((strpos($likes, "validated") === false)?></textarea>

我当前的设置导致了500错误,所以我觉得我确实在做错了。

修改

我已将我的php更新为:

//textfield likes
if (empty($_POST["likes"])) {
    $likesErr = "Please tell me what you like about hiking! :(";
}
else if ((strpos($likes, "validated") === false){
    $likesErr2 = "Please include the word 'validated' in your likes textarea!";
}

else {
    $likes = $_POST["likes"];
}

和html部分

        <div>
            <br><br>        
            <label>What do you like about hiking?</label><span class = "error">* <?php echo $likesErr; echo $placesErr2;?></span><br>
                    <textarea rows="4" cols="50" id="likes" name="likes"></textarea>

            <br><br>
        </div>

我仍然收到500错误):

1 个答案:

答案 0 :(得分:0)

以下是使用strpos的示例:

<?php
$str = 'Time spent with cats is never wasted.';

if (strpos($str, 'dog') === FALSE) {
    echo 'no dog';
}

echo (strpos($str, 'dog') === FALSE) ? 'no dog' : 'hot dog!';

// Outputs: 'no dogno dog'