首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户登录和注册php页面不是一起工作,而是分开工作。

用户登录和注册php页面不是一起工作,而是分开工作。
EN

Stack Overflow用户
提问于 2013-08-03 15:30:55
回答 1查看 976关注 0票数 0

我刚刚开始编写php代码。我想做一个用户登录和注册表单在同一个页面上。这两种代码都是单独工作的,但我在将它们放在一起时遇到了问题。有人能向我解释我哪里出了问题吗?

我遇到的两个问题是:

1)当我尝试登录时,它会提示错误,未定义的变量电子邮件(但不是当我注册时)。

2)在他们注册或登录后,我不会重定向到index.php。

头文件。

代码语言:javascript
复制
<?php 
  session_start();
  include 'login.php';
  include 'signup.php';

if (isset($_SESSION['user']))
{
    $user     = $_SESSION['user'];
    $loggedin = TRUE;
}
else {
    $loggedin = FALSE;
}

if ($loggedin)
{
   //shows a bunch of code
}
else
{
echo  "<div class='header'>" .
         "<div class='logo'>" .
              "<a href='login.php' " . "style='color: #FFF; text-decoration: none;'>$appname</a>" .
         "</div> ";
    echo     "<div id='login'>
            <fieldset>
            <legend style='color:white;'>Login</legend>
            <form method='post' action='login.php'>$error".
            "<div class='row'>
                 Username:
                 <span class='form'>
                       <input type='text' maxlength='16' name='user' value='$user' />
                 </span>
            </div> ".
            "<div class='row'>
                 Password:&nbsp
                 <span class='form'>
                       <input type='password' maxlength='16' name='pass' value='$pass' />
                 </span>
            </div>".
            "<div class='row'>
                 <span class='form'>
                       <input type='submit' value='Login' />
                 </span>
            </div>
            </form>
            </fieldset>
         </div> 
         </div>";
   echo "<div class='container'>
        <form method='post' action='signup.php'>$error".
              "<div class='row_signup'>
                     <span class='form_signup'>
                           <h3>Sign Up Today!</h3>
                     </span>
               </div> ".
              "<div class='row_signup'>
                     <span class='label_signup'>Username:</span>
                         <span class='form_signup'>
                               <input type='text' maxlength='16' name='user' value='$user' onBlur='checkUser(this)'/><br /><span id='info'></span>
                         </span>
              </div> ".
              "<div class='row_signup'>
                         <span class='label_signup'>Password:&nbsp</span>
                         <span class='form_signup'>
                               <input type='password' maxlength='16' name='pass' value='$pass' />
                         </span>
              </div>".
              "<div class='row_signup'>
                         <span class='label_signup'>Email:&nbsp</span>
                         <span class='form_signup'>
                               <input type='email' name='email' value='$email' />
                         </span>
              </div>".
              "<div class='row_signup'>
                         <span class='form_signup'>
                               <input type='submit' value='Sign Up' />
                         </span>
               </div>  ".
        "</form>
</div>";
}
?>

login.php

代码语言:javascript
复制
<?php
include_once 'header.php';
$error = $user = $pass = "";

if (isset($_POST['user']))
{
    $user = sanitizeString($_POST['user']);
    $pass = sanitizeString($_POST['pass']);

    if ($user == "" || $pass == "")
    {
        $error = "Not all fields were entered<br />";
    }
    else
    {
        $query = "SELECT user,pass FROM members
        WHERE user='$user' AND pass='$pass'";

    if (mysql_num_rows(queryMysql($query)) == 0)
    {
        $error = "<span class='error'>Username/Password
                  invalid</span><br /><br />";
    }
    else
    {
        $_SESSION['user'] = $user;
        $_SESSION['pass'] = $pass;
        header("Location: index.php"); // redirect
        }
    }
}
?>

符号up.php

代码语言:javascript
复制
<?php // Example 21-5: signup.php
include_once 'header.php';

$error = $user = $pass = $email = "";
if (isset($_SESSION['user'])) destroySession();

if (isset($_POST['user']))
{
    $user = sanitizeString($_POST['user']);
    $pass = sanitizeString($_POST['pass']);
    $email = sanitizeString($_POST['email']);


    if ($user == "" || $pass == "" || $email == "")
        $error = "Not all fields were entered<br /><br />";
    else
    {
        if (mysql_num_rows(queryMysql("SELECT * FROM members
          WHERE user='$user'")))
            $error = "That username already exists<br /><br />";
        else
      {
            queryMysql("INSERT INTO members VALUES('$user', '$pass', '$email')");
            $_SESSION['user'] = $user;
            header("Location: index.php"); // redirects
        }
    }
}
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-03 15:51:21

您正在将登录和注册页面包含到标题页面中,然后在每个登录和注册页面中包含标题页,这似乎是错误的。

要实现你的目标,请按照下面的步骤

创建一个html视图页面,其中您显示登录和注册表单,引用登录和注册php脚本。

因此,如果用户签名向上,那么将他重定向回登录视图

如果他登录,那么将他重定向到内容页面。

最好使用MVC模式,因为它保持布局整洁,调试简单。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18034387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档