我觉得这应该是非常简单和直接的,尽管不知怎么我得到的逻辑错误。
function postLengthTitle($post_title_test) {
$result;
$title = strlen($post_title_test);
if (!$title < 40 || !$title > 200) {
$result = true;
} else {
$result = false;
return $result;
}
}
function postLengthContent($content_test) {
$result;
$content = strlen($content_test);
if (!$content < 500 || !$content > 2000) {
$result = true;
} else {
$result = false;
return $result;
}
}
if(postLengthTitle($post_title_test) === false){
header("location: ../content/makeapost.php?".htmlspecialchars($postpage2)."");
exit();
}
if(postLengthContent($content_test) === false){
header("location: ../content/makeapost.php?".htmlspecialchars($postpage3)."");
exit();
}
标题可以正常工作,尽管内容不能。给出500多个字符仍然会给我带来错误。这是验证字符长度输入的正确方法吗?
嗯,很难重新编码没有意义的代码,但这里是我最好的尝试:
function validLengthTitle($title)
{
$length = strlen($title);
return ($length >= 40) && ($length <= 200);
}
function validLengthContent($content)
{
$length = strlen($content);
return ($length >= 500) && ($length <= 2000);
}
if(!validLengthTitle($post_title_test)){
header("location: ../content/makeapost.php?".htmlspecialchars($postpage2)."");
exit();
}
if(!validLengthContent($content_test)){
header("location: ../content/makeapost.php?".htmlspecialchars($postpage3)."");
exit();
}
我不能,无论如何,保证这段代码做你想让它做的事。
如果你想做更多的长度检查,你可以创建一个更通用的函数:
function validateLength($text, $minLength, $maxLength)
{
$length = strlen($text);
return ($length >= $minLength) && ($length <= $maxLength);
}