2013-10-06 52 views
0

好的,这是我的问题。我为几页创建了一个简单的登录系统。这一切都有效。我刚刚创建了一个PHP表单提交输入到MySQL数据库的另一页。这一切都工作以及...在我的网站上的其他网页上。
出于某种原因,当我提出这种形式,它一直重定向到我的登录页,我不知道为什么。下面是形式/代码,我试图提交:PHP表单错误,保持重定向登录页面

<form method="post" action="admin_home.php?page=search.php"> 
<p>Search by date range: </p> 
From: <input type="text" id="from" name="from" />To: <input type="text" id="to" name="to" /> 
<BR> 
<p>Search by:</p> 
Name: <input type="text" id="name" name="name" /> 
Phone Number: <input type="text" id="phone" name="phone" /> 
<input name="export" type="submit" value="Search" /> 
</form> 

这形式是在文件的search.php在搜索结果也显示在表格下方。 这里是登录代码我有admin_home.php页:

<?php 
session_start(); 
require("admin_logincheck.php"); 
if (!(isset($_SESSION['name']) && $_SESSION['name'] != '')) { 

header ("Location: admin_index.php"); 

} 
?> 

....然后显示什么。

这里是我的admin_logincheck.php页:

<?php 
session_start(); 
session_name("MemberLogin"); 


$hostname = ""; 
$username = ""; 
$dbname = ""; 
$password = ""; 

if($_GET['action'] == "login") { 

mysql_connect($hostname, $username, $password) OR DIE ("Unable to connect to database! Please try again later."); 
mysql_select_db($dbname); 


$name = $_POST['user']; 
$q_user = mysql_query("SELECT * FROM users WHERE username='$name'"); 

if(mysql_num_rows($q_user) == 1) { 

$query = mysql_query("SELECT * FROM users WHERE username='$name'"); 
$data = mysql_fetch_array($query); 
if($_POST['pass'] == $data['password']) { 
$_SESSION['name'] = $name; 
header("Location: admin_home.php"); // This is the page that you want to open if the user successfully logs in to your website. 
exit; 
} 
      else { 
       header("Location: admin_index.php?login=failed&cause=".urlencode('Wrong Password')); 
       exit; 
      } 

} 
else { 
    header("Location: admin_index.php?login=failed&cause=".urlencode('Invalid User')); 
exit; 
} 
} 

// if the session is not registered 
//if(session_is_registered("name") == false) { 
if ($_SESSION['name'] == false) { 
header("Location: admin_index.php"); 
} 
?> 
All 

我的其他网页都很好,但由于某些原因,一个表格/搜索页面不断重定向到我的登录页面。任何帮助是极大的赞赏。我希望这是有道理的大声笑。

+0

什么是你的admin_logincheck?似乎登录不起作用 – wernersbacher

+0

我会编辑我的帖子并添加它。 admin_logincheck的作品,只要我添加此页面。 – dkeeper09

+0

所以你是脚本重定向你admin_index.php登录=失败和原因= WrongPassword? – wernersbacher

回答

0

替换此:

if (!(isset($_SESSION['name']) && $_SESSION['name'] != '')) { 
header ("Location: admin_index.php"); 
} 

与此:

if (isset($_SESSION['name']) && !empty($_SESSION['name'])) { 
header ("Location: admin_index.php"); 
} 
+0

请注意,如果(!empty($ some_var))...就够了。您不需要首先使用isset($ some_var),因为empty()已经这样做了(并且它将未设置的变量视为空)。 –

+0

嘿老板,那没用。它不会让我登录,只需要我到admin_index.php – dkeeper09