2016-02-27 126 views
1

下面的脚本不会像它应该的那样工作。当我在我的网站上进入并输入所有字段时,仍然会显示'所有字段都是必需的'。我在这个网站上对脚本进行了一些修改:http://www.abell12.com/。你必须注册才能下载它,但一旦你做了,点击脚本,然后点击PHP,然后进入登录和注册并下载脚本。这是我的脚本版本: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> 

如果您需要更多的信息,请随时问我。

+0

请呼应,如果条件之前: - 回声$名称 '&&' $用户名 '&&' $密码 '&&' $密码1;退出;。。。。并检查每个字段是否得到张贴。 – rahul

回答

0

有这一行的错误:

if($name && $username && $password && $password1) 

你需要使用empty

if(empty($name) && empty($username) && empty($password) && empty($password1)) 

由于从字面意思empty()意味着变量为空。这是一个BOOL函数,这意味着它将在空时返回true,并且在非空时返回false

提示:您不应该使用MySQL,因为它已被弃用,请改用MySQLi。

+0

谢谢你的快速和有益的答案。我仍然需要等到我可以称之为答案。 – SkrillexNukehulk

+0

@SkrillexNukehulk不客气!很高兴有帮助! – Panda

+0

我讨厌这样说,但是我修改了一下脚本后又遇到了同样的问题。你愿意帮助我吗? – SkrillexNukehulk

0

您可以像这样使用优化代码。

使用下面

if($name!='' && $username!='' && $password!='' && $password1!='')