带有mysql和session的php登录页面

时间:2013-07-03 03:04:06

标签: php

我正在尝试使用session()函数创建一个登录页面,但我遇到了代码问题,但我不知道为什么。

我想要做的是在我的管理页面中我希望它说“欢迎(在表单中插入的用户名)”,但我不知道如何。

我尝试使用session(),但它显示了我:

PHPSESSID

我该怎么办?

这是代码

<?php
$sid = $_POST["username"];
session_start(); 
include("../inc/passwords.php"); 
if ($_POST["ac"]=="log") { /// do after login form is submitted  
 if ($USERS[$_POST["username"]]==$_POST["password"]) { /// check if submitted 
      $_SESSION["logged"]=$_POST["username"]; 
 } else { 
      echo 'Incorrect username/password. Please, try again.'; 
 }; 
}; 
if (array_key_exists($_SESSION["logged"],$USERS)) { //// check if user is logged     or     not  
 header('Location: index.php'); //// if user is logged show a message  
} else { //// if not logged show login form 
 echo '<table align="center" border="0">
<h3 style="color: #555" align="center" class="">بالرجاء تسجيل الدخول للمتابعة</h3>
<form action="login.php" method="post"><input type="hidden" name="ac" value="log">
<tr><td>الاســـــــم</td><td>:</td><td><input type="text" name="username" size="20">    </td></tr>
<tr><td>كلمة السر</td><td>:</td><td><input type="password" name="password" size="20">    </td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td><input class="buttons" type="submit"     value="تسجيل الدخول"></td></tr>
</form>
</table>'; 
}; 
?>

3 个答案:

答案 0 :(得分:0)

只是为了知识:

最重要的事情要记住。

在php标记启动后始终启动会话。

e.g。

<?php
session_start();

如果您启动它:

<?php
$sid = $_POST["username"];
session_start();

它将通过错误消息:headers already sent

答案 1 :(得分:0)

我建议你看看这段代码:

if ($USERS[$_POST["username"]]==$_POST["password"]) { /// check if submitted 
      $_SESSION["logged"]=$_POST["username"]; 
 } 

您需要确保$_SESSION["logged"]实际设置完毕。也许尝试在其上执行echo。如果它是空的,则逻辑不会评估为true

还要确保在index.php页面上执行session_start()

答案 2 :(得分:-1)

它不能使用带有欢迎的东西的会话

尝试使用mysql

像 当管理员输入名称和密码时 他的名字被放在mysql的一个表中 并在管理页面的索引中 你查询表 像

 $username = $_POST['username'];
 mysql_query(SELECT username FROM admins where username='$username');