2013-10-05 58 views
-3

我的登录表单不显示。我得到一个空白页。PHP - 登录表不显示

所以请发布正确的代码,以便我可以轻松更换。 我是新来的PHP,所以我的代码不会像你的代码那样超级专业。

这里是我的代码:

<?php 
session_start(); 
?> 
<head> 
    <meta http-equiv=""Content-Type" content="text/html"; charset=utf-8 /> 
    <title>Member Register</title> 
</head> 
<body><?php 
    $form = "<form action='./login.php' method='post'> 

       <table> 
       <tr> 
        <td>Username:</td> 
        <td><input type='text' name='user' /></td> 
       </tr> 
       <tr> 
        <td>Password:</td> 
        <td><input type='password' name='password' /></td> 
       </tr> 
       <tr> 
        <td></td> 
        <td><input type='submit' name='loginbtn' value='Login' /></td> 
       </tr> 
       </table> 
      </form>"; 

    if ($_POST['loginbtn']) { 
     $user = $_POST['user']; 
     $password = $_POST['password']; 

     if ($user) { 
      if ($password) { 

       require("connect.php"); 

       $password = md5(md5("Ji5t63s".password."v5h2ih47"); 

       $query = mysql_query("SELECT * FROM users WHERE username='$user'"); 
       $numrows = mysql_num_rows($query); 
       if ($numrows == 1) { 
        $row = mysql_fetch_assoc($query); 
        $dbid = $row['id']; 
        $dbuser = $row['username']; 
        $dbpass = $row['password']; 
        $dbactive = $row['active']; 

        if ($password == $dbpass){ 
         if ($dbactive == 1){ 
          $_SESSION['userid'] = $dbid; 
          $_SESSION['username'] = $dbuser; 

          echo "You have been logged in as <b>$dbuser</b>. <a href="./member.php">Click here</a> to go to the member page."; 

         } 
         else 
          echo "you must activate your account to login. $form"; 
        } 
        else 
         echo "you did not entered a correct password. $form"; 
       } 
       else 
        echo "The user you entered was not found. $form"; 
        mysql_close(); 

      } 
      else 
       echo "You must enter you password. $form"; 
     } 
     else 
      echo "You must enter your username. $form"; 
    } 
    else 
     echo $form; 
?> 
</body> 
</html> 
+0

你不能在html中间设置会话变量!!!!!你必须在HTML之前这样做。这就是为什么你得到空白页面!放入ini_set(“display_errors”,1); session_start之前,你会看到。 – pregmatch

+0

你应该看看PHP的函数[password_hash](http://php.net/manual/en/function.password-hash.php),而不是实现一个自发的(在你的情况下非常不安全)密码哈希方案。 )和[password_verify](http://www.php.net/manual/en/function.password-verify.php)。这些功能不仅更易于使用,而且使密码处理非常安全。 – martinstoeckli

回答

1

(测试)

之所以表单没有显示是因为这两条线:

1)这其中有缺少一个右末括号)

$password = md5(md5("Ji5t63s".password."v5h2ih47"); 

应该是:

$password = md5(md5("Ji5t63s".password."v5h2ih47")); 

2)<a href="./member.php"> - 问题是(非转义)双引号或使用单引号。

您现有的线路:

echo "You have been logged in as <b>$dbuser</b>. <a href="./member.php">Click here</a> to go to the member page."; 

应该是:

echo "You have been logged in as <b>$dbuser</b>. <a href='./member.php'>Click here</a> to go to the member page."; 

\"

echo "You have been logged in as <b>$dbuser</b>. <a href=\"./member.php\">Click here</a> to go to the member page."; 

现在逃出他们尽可能的休息(的代码的功能包括文件),这是我的手。你问为什么你的表单没有显示出来。

+0

谢谢你唯一正确回答我的问题的谢谢你的帮助 – WireCoder

+0

@WireCoder非常欢迎你,很高兴我可以帮助你。我总是用提供的代码预先测试所有的答案,欢呼声。 –

+0

嘿,但你也看到登录系统的PHP代码也不工作。所以你能帮助我吗? – WireCoder

-2

请不要有任何空白字符之前,您session_start()

相反的:

<?php 
session_start(); ?> 

请说:

<?php 
session_start();?> 

会议需要你之前开始输出任何东西到浏览器。请记住PHP是一个解释器,因此每行都会执行。

+0

为什么downvote? – neeagl

+0

请给出降低答案的原因。这将有助于我在下一次合理构建答案。谢谢 – neeagl

+1

如果不先测试,请不要提出建议。 – pregmatch