使用PHP验证HTML表单中的字符串

使用PHP验证HTML表单中的字符串,php,forms,validation,Php,Forms,Validation,我需要一个PHP表单(仅一个文本/数字字段),它将用户传递到特定地址,但前提是输入表单的代码的前4位与1234匹配(示例)。我理解基本形式,但我有点困惑,以前向我提出的建议似乎不太正确 目标:例如。。。当用户在表单中输入“12345678909876”时,他们将被带到,否则页面将用“错误代码”语句刷新 以下是我迄今为止对用户“jfhs”的感谢 错误代码 目前,该代码仅在输入前4个数字时有效(仅限)。我需要它处理描述和示例中的一系列数字。 <?php $valid_code = '347

我需要一个PHP表单(仅一个文本/数字字段),它将用户传递到特定地址,但前提是输入表单的代码的前4位与1234匹配(示例)。我理解基本形式,但我有点困惑,以前向我提出的建议似乎不太正确

目标:例如。。。当用户在表单中输入“12345678909876”时,他们将被带到,否则页面将用“错误代码”语句刷新

以下是我迄今为止对用户“jfhs”的感谢


错误代码

目前,该代码仅在输入前4个数字时有效(仅限)。我需要它处理描述和示例中的一系列数字。


<?php
$valid_code = '3471';
$ok = true;
if (isset($_POST['code']) && is_string($_POST['code'])) {
    if (substr($_POST['code'], 0, strlen($valid_code)) === $valid_code) {
        header('Location: http://sample.web/');     
        die();
    }
    $ok = false;
}
?>
<!-- some html here-->
<?php if (!$ok):?>
    <p style="color:red">Wrong code</p>
<?php endif;?>
<form method="post">
    <input name="code">
    <input type="submit" value="Check">
</form>
错误代码

这应该行得通。 您的代码的问题是,它正在检查字符串的最后四位,而据我所知,您希望检查字符串的前四位。这段代码应该可以做到这一点


你的帖子有点矛盾,因为标题上写的是最后四位数字,但在帖子上写的是前四位。但你们现在都有了这两种解决方案,我在这里写的是针对前四种解决方案,而你们已经有的是针对最后四种解决方案。

欢迎来到这里。不确定为什么要检查它是否为字符串。。。似乎有点过分了。你并没有给出一个你想要它做什么的例子,但我从标题中假设,你想让它检查最后4位数字,它在看前4位。这是正确的吗?来自php.net的substr:
$rest=substr(“abcdef”,-2);//返回“ef”
<代码>$rest=substr($_POST['code'],0,4)应该可以做到这一点。(或者当然是@lshas提出的更奇特的方法,它考虑了代码的实际长度,以防您以后决定更改编码器的长度)是的,很抱歉,标题不正确。我在找前四位数字。我给出的标题和当前代码是我之前格式错误的帖子/问题(现在已锁定)的遗留内容。所以,我又来了。谢谢!我将尝试一下,看看它是否按预期工作。我会回复你的。谢谢!
<php
$valid_code = 1234;
$pass=false;
if (isset($_POST['code'] && substr($_POST['code'], 0, 4)  == $valid_code){
    header('Location: http://sample.web/');
    die();
}
<php
$valid_code = 1234;
$pass=false;
if (isset($_POST['code'] && substr($_POST['code'], 0, 4)  == $valid_code){
    header('Location: http://sample.web/');
    die();
}