Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用户登录和注册php页面不一起工作,但分开工作。_Php_Html_Forms_Login - Fatal编程技术网

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

用户登录和注册php页面不一起工作,但分开工作。,php,html,forms,login,Php,Html,Forms,Login,我刚刚开始编写php代码。我想在同一页上创建用户登录和注册表单。这两个代码单独工作,但我在将它们放在一起时遇到了问题。有人能告诉我哪里出了问题吗 我遇到的两个问题是: 1) 当我尝试登录时,它会提示错误未定义变量电子邮件(但不是在我注册时) 2) 在他们注册或登录后,它不会将我重定向到index.php 头文件 <?php session_start(); include 'login.php'; include 'signup.php'; if (isset($_SESS

我刚刚开始编写php代码。我想在同一页上创建用户登录和注册表单。这两个代码单独工作,但我在将它们放在一起时遇到了问题。有人能告诉我哪里出了问题吗

我遇到的两个问题是:

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

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

头文件

<?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>";
}
?>

Sign-up.php

<?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
        }
    }
}
?>

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

要实现你的目标,请遵循以下步骤

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

因此,如果用户已注册,则将其重定向回登录视图

如果他登录,则将他重定向到内容页

最好使用MVC模式,因为它可以保持布局整洁,并且易于调试


希望这有帮助。

为什么
包含“login.php”;包括“signup.php”
在主页中,然后在登录和注册页面中包含头文件?请删除所有这些不必要的include如果我不知道,它会提示我20个未定义变量的错误。然后删除
include_once'header.php'从其他文件使用表单提交在页面之间传递信息(如user/pass/error)-删除包含项,这会使代码容易出错且难以调试Ok makes sence我会尝试,谢谢。好吧,我将页面设置为.html而不是.php,然后使用表单中的action命令将其添加到各个.php页面?跳过includes。你可以用html或php构建不需要的页面matter@GiBiT09您的页面必须是.php,而不是.htmlif(isset($\u SESSION['user']){$user=$\u SESSION['user'];$loggedin=TRUE;}否则{$loggedin=FALSE;}如果($loggedin){//显示一组代码}从您的登录和注册页面中删除此项。这就是问题所在。仅在您的登录后页面中包含此项。
<?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
        }
    }
}
?>