PHP 注册脚本在填写所有字段时说所有字段都是必需的
PHP Registration Script Saying All Fields Are Required when All are filled
以下脚本无法正常运行。当我在我的网站上访问它并输入所有字段时,它仍然显示 'All fields are required'。我根据本网站上的脚本对其进行了一些修改: http://www.abell12.com/ 。您必须注册才能下载它,但是一旦注册,请单击“脚本”,然后单击 PHP,然后转到“登录和注册”并下载脚本。这是我的脚本版本:
<?php
if(isset($_POST['submit']))
{
$name = mysql_real_escape_string($_POST['name']);
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$password1 = mysql_real_escape_string($_POST['password1']);
$enc_password = md5($password);
if($name && $username && $password && $password1)
{
if(strlen($name)<30)
{
if(strlen($username)<10)
{
if(strlen($password)<30 || strlen($password)>6)
{
if($password == $password1)
{
require "dbc.php";
$query = mysql_query("INSERT INTO users VALUES ('','$name','$username','$enc_password')");
echo "Registration Complete! <a href='loginpage.php'>Click here to login</a>";
}
else
{
echo "Passwords must match";
}
}
else
{
echo "Your password must be between 6 and 30 characters";
}
}
else
{
echo "Your username is too long";
}
}
else
{
echo "Your name is too long";
}
}
else
{
echo "All fields are required";
}
}
?>
<html>
<form action="register.php" method="POST">
Name: <input type="text" name="name" value="<?php if(isset($_POST['submit'])){echo "$name";} ?>"> Max Length:30<p>
Username: <input type="text" name="username" value="<?php if(isset($_POST['submit'])){ echo "$username";} ?>"> Max Length:15<p>
Password: <input type="password" name="password"> Max length:30<p>
Re-Enter Password: <input type="password" name="password1"><p>
<input type="submit" name="submit" value="Register">
</form>
</html>
如果您需要更多信息,请随时问我。
此行有错误:
if($name && $username && $password && $password1)
您需要使用 empty
:
if(empty($name) && empty($username) && empty($password) && empty($password1))
从字面意思看empty()
表示变量为空。这是一个 BOOL 函数,这意味着它将 return true
为空时 false
为空时
提示:您不应使用 MySQL,因为它已被弃用,请改用 MySQLi。
你像这样使用优化代码。
下面使用
if($name!='' && $username!='' && $password!='' && $password1!='')
以下脚本无法正常运行。当我在我的网站上访问它并输入所有字段时,它仍然显示 'All fields are required'。我根据本网站上的脚本对其进行了一些修改: http://www.abell12.com/ 。您必须注册才能下载它,但是一旦注册,请单击“脚本”,然后单击 PHP,然后转到“登录和注册”并下载脚本。这是我的脚本版本:
<?php
if(isset($_POST['submit']))
{
$name = mysql_real_escape_string($_POST['name']);
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$password1 = mysql_real_escape_string($_POST['password1']);
$enc_password = md5($password);
if($name && $username && $password && $password1)
{
if(strlen($name)<30)
{
if(strlen($username)<10)
{
if(strlen($password)<30 || strlen($password)>6)
{
if($password == $password1)
{
require "dbc.php";
$query = mysql_query("INSERT INTO users VALUES ('','$name','$username','$enc_password')");
echo "Registration Complete! <a href='loginpage.php'>Click here to login</a>";
}
else
{
echo "Passwords must match";
}
}
else
{
echo "Your password must be between 6 and 30 characters";
}
}
else
{
echo "Your username is too long";
}
}
else
{
echo "Your name is too long";
}
}
else
{
echo "All fields are required";
}
}
?>
<html>
<form action="register.php" method="POST">
Name: <input type="text" name="name" value="<?php if(isset($_POST['submit'])){echo "$name";} ?>"> Max Length:30<p>
Username: <input type="text" name="username" value="<?php if(isset($_POST['submit'])){ echo "$username";} ?>"> Max Length:15<p>
Password: <input type="password" name="password"> Max length:30<p>
Re-Enter Password: <input type="password" name="password1"><p>
<input type="submit" name="submit" value="Register">
</form>
</html>
如果您需要更多信息,请随时问我。
此行有错误:
if($name && $username && $password && $password1)
您需要使用 empty
:
if(empty($name) && empty($username) && empty($password) && empty($password1))
从字面意思看empty()
表示变量为空。这是一个 BOOL 函数,这意味着它将 return true
为空时 false
为空时
提示:您不应使用 MySQL,因为它已被弃用,请改用 MySQLi。
你像这样使用优化代码。
下面使用
if($name!='' && $username!='' && $password!='' && $password1!='')