每次用户访问各个会员页面时,我都希望创建一个登录功能,这些页面会在登录后将其返回到原始页面。我已经看到了这个问题的各种答案,但没有一个它们似乎包含一个检查功能,然后返回原始页面。目前我创建的代码似乎并没有意识到我已经登录并继续将我返回到登录表单中。任何答案将不胜感激。我意识到我正在使用已弃用的代码,但这是我的主机提供商的服务器识别的唯一版本。
这是我在每个成员页面顶部放置的代码
<?php
session_start();
if($_SESSION['login'] != "yes" )
{
header("Location: main_login.php");
exit();
}
?>
然后打开main_login.php页面
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="password" id="mypassword"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
点击登录按钮后,checklogin.php中的以下代码会检查条目
<?php
$host='.....'; // Host name
$username='.....'; // Mysql username
$password='........'; // Mysql password
$db_name='....'; // Database name
$tbl_name='......'; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_start();
$_SESSION['myusername'];
$_SESSION['mypassword'];
header("location:entry_form_european_languages.php");
}
else {
echo "Wrong Username or Password";
}
?>
最后一个标题位置指的是我想要返回的页面,这似乎重复了打开登录和签入文件的过程 - 好像是为了表明返回页面没有识别出来登录成功。
我需要添加与每个页面相关的内容,但由于我不知道我在固定页面返回的哪个方面出错,我无法继续进行编码阶段。
我确实有一个替代标题地址,它将其带到了以下页面login_success.php,这给人的印象是用户名条目已被接受,但这并不允许我返回原始页面
<?php
session_start();
if(isset($_SESSION[$myusername])){
header("Location:entry_form_european_languages.php");
}
?>
<?php
include '........';//Formatting for the page
?>
<html>
<body>
Login Successful
</body>
</html>
提前致谢。
答案 0 :(得分:0)
我需要添加一些额外的东西来使会话细节工作,如下所示。此代码需要先于页面上的任何其他代码,包括与字符格式相关的任何html代码。虽然我已将其编码出来,但错误报告行很方便用于指示php服务器没有读取哪一行,如果你有持续的问题。
<?php
//error_reporting(E_ALL); ini_set('display_errors', 'On');
session_start();
ob_start();
if(!isset($_SESSION['myusername'])){
header('Location:main_login.php');
}
else if (isset($_SESSION['myusername'])){
}
$myusername=$_SESSION['myusername'];
$Page_Title ='Members Profile';
?>