2014-05-15 47 views
0

一直在看几个这些,并没有找到任何运气 - 我敢肯定这是简单的我正在做。我有一个基本的HTML登录页面,它调用login.php。只有登录的用户才能访问PHP登录页面?

HTML:

<?php 
    session_start(); 
?> 

<form action="login.php" method="POST"> 
    <div align="center">Username: 
     <input type="text" name="uname"> 
     <br><br> 
     Password: 
     <input type="password" name="pass"> 
     <br><br> 
     <input type="submit" value="login" name="submit"> 
    </div> 
</form> 

的login.php:

<?php 

require ('sql_connect.php'); 
if (isset($_POST['submit'])){ 
$username=mysql_escape_string($_POST['uname']); 
$password=mysql_escape_string($_POST['pass']); 
if (!$_POST['uname'] | !$_POST['pass']) 
{ 
echo ("<SCRIPT LANGUAGE='JavaScript'> 
     window.alert('You did not complete all of the required fields') 
     window.location.href='htmlogin.html' 
     </SCRIPT>"); 
exit(); 
    } 
$sql= mysql_query("SELECT * FROM `members` WHERE `username` = '$username' AND `password` = '$password'"); 
$row= mysql_fetch_assoc($sql); 
$url=$row['defaultpage']; 

if(mysql_num_rows($sql) > 0) 
{ 
echo ("<SCRIPT LANGUAGE='JavaScript'> 
     window.alert('Login Succesfully!') 
     window.location.href='htmllogin.html' 
     </SCRIPT>"); 
     header($url); 
exit(); 
} 
else{ 
echo ("<SCRIPT LANGUAGE='JavaScript'> 
     window.alert('Wrong username password combination.Please re-enter.') 
     window.location.href='htmllogin.html' 
     </SCRIPT>"); 
exit(); 
} 
} 
else{ 
} 
?> 

我有sucesfully连接到数据库的形式,将让我登录(我曾与一个数据库条目得到它的设置所以它重定向到一个特定的URL基于谁登录)

我的问题是,我不希望特定的URL访问某人没有登录。我已经尝试了几个不同的选项,使用session_start();,但显然我要么没有输入正确的信息,要么在正确的页面上进行。以下是我目前拥有的着陆页面上的一个特定的用户将在登录后发送至:

<?php 
session_start(); 
if(!isset($_SESSION['username'])){ 
    header("Location:http://mywebsite.com/htmllogin.html") 
} 
?> 

<html> 
<head> 
</head> 
    <body> 
     <div id="div1"> 
      test 
     </div> 
    </body> 
</html> 

我的想法是,在登陆页面,如果它不符合会话将重新引导用户到原始的html登录页面。 任何帮助......谢谢!

+0

是该第二码块你的login.php文件?你在哪里设置你的用户名密钥$ _SESSION? – WillardSolutions

+0

你的php有一个致命的错误。您应该在header()函数后面添加一个';'。 –

+0

你确定你设置了会话变量'username'吗? – Gudgip

回答

0

一旦你的用户被验证并且应该登录,你需要创建你的$ _SESSION变量。

<?php 
$_SESSION['username'] = $_POST['uname']; 
?> 

上面的代码段应被放置在下一如果结构在内侧的login.php:

if(mysql_num_rows($sql) > 0) 
{ 
$_SESSION['username'] = $_POST['uname']; 
echo ("<SCRIPT LANGUAGE='JavaScript'> 
     window.alert('Login Succesfully!') 
     window.location.href='htmllogin.html' 
     </SCRIPT>"); 
     header($url); 
exit(); 
} 
+0

所以这需要替换我在着陆页上的php代码? – Dre

+0

不,一旦你知道你的用户登录正确,你必须将这段代码添加到你的login.php页面。 – Gudgip

+0

好的 - 我已经添加了所有这些,但是无论我输入用户名/密码字段,立即得到服务器500错误 – Dre

相关问题