用户登录和注册php页面不一起工作,但分开工作。
我刚刚开始编写php代码。我想在同一页上创建用户登录和注册表单。这两个代码单独工作,但我在将它们放在一起时遇到了问题。有人能告诉我哪里出了问题吗 我遇到的两个问题是: 1) 当我尝试登录时,它会提示错误未定义变量电子邮件(但不是在我注册时) 2) 在他们注册或登录后,它不会将我重定向到index.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
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: 
<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: </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: </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
}
}
}
?>