我需要一个PHP表单(只有一个文本/数字字段),它将把用户传递给特定的地址,但只有在输入表单的代码的前4位数匹配1234 (例)。我了解基本形式,但我有点难以理解,之前向我提出的建议似乎并不完全正确。使用PHP验证HTML表单中的字符串
目的:例如...当用户输入“ 5678909876”为形式,他们将采取http://sample.web,否则页面只是一个说法“不正确的代码”
这里刷新就是我迄今感谢用户“jfhs” ......
<?php
$valid_code = '3471';
$ok = true;
if (isset($_POST['code']) && is_string($_POST['code'])) {
if (substr($_POST['code'], -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号(只)代码工作。我需要它与描述和示例中的一系列数字一起工作。
欢迎来到SO。不知道你为什么要检查它是一个字符串......似乎矫枉过正。你真的没有举一个例子说明你想要做什么,但是我从标题中假设,你想要它检查最后4位数字,并且它正在看第4位。这是正确的吗? – Twisty
from php.net for substr:'$ rest = substr(“abcdef”,-2); //返回“ef”' – Twisty
[请阅读'substr'函数](http://php.net/manual/it/function.substr.php)。 '$ rest = substr($ _ POST ['code'],0,4);'应该这样做。 (或者@lshas提出的更好的方法,如果您稍后决定更改编码器的长度,则会考虑代码的实际长度) – nhee