我是一名新程序员,我尝试了一些不同的方法来验证我的代码,显然我做错了。任何帮助,将不胜感激。我还在努力验证这个名字。这个版本显然没有意义,但我无法以任何方式让它工作。
<?php
require_once ('includes/classes/database.php');
require_once('includes/classes/user.php');
require_once('includes/header.php');
// if user submits a new registration
if (isset($_POST['name'],$_POST['email'],$_POST['pwd'],$_POST['pwd2']))
{
if(strlen(trim($_POST['name'])) <= 20)
{
return (true);
return $name;
}
else
{
return (false);
}
// validate input fields
//$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['pwd'];
$password2 = $_POST['pwd2'];
// if error fall through and redisplay page with errors
// if no errors update database and redirect to homepage
if ($uc->add_member($name, $email, $password) === FALSE)
{
echo "System Error. damn if I know what to do";
}
else
{
header("location: homepage.php");
}
}
?>
答案 0 :(得分:3)
if(strlen(trim($_POST['name'])) <= 20)
{
return (true);
return $name;
}
else
{
return (false);
}
PHP在命中return
语句后结束该函数。这将使其返回TRUE
或FALSE
,具体取决于名称的长度。此后的其余程序将无法运行。
另外,你不能有这样的2个返回语句。
return (true);
return $name;
返回TRUE
和return $name
将无法运行。
答案 1 :(得分:1)
这是一个奇怪的代码。
正如其他人所指出的那样,双重回报将无效。
此外,=== false部分是可疑的,如果你检查它是否为false,或者实际上是假的,===可能太多,==可能会完成这项工作。您没有发布该类的任何代码,以便我们检查在这种情况下===是否正常。
对其进行一些更改,并尝试发布有关实际问题的实际问题,而不是“这不太正确,您可以调试整个脚本吗?”。
答案 2 :(得分:1)
if (strlen(trim($_POST['name']))<=20)
{
return (true); }
else
{
return (false);
}
只需获取返回名称即可。然后它会工作。