按照大家的思路写了2个页面 login.php 用于用户认证 ------------------------- <? session_start(); $dbh = mysql_connect("localhost","",""); mysql_select_db("goldenwind");//选择数据库 $query="select password from user_log where log_id=1 and nicker=tjyihui "; $res=mysql_query($query,$dbh); if($row=mysql_fetch($res)) { $reguser=$row[0]; ?> <script> alert("ok,哥们,欢迎你!"); </script> <? } else { $reguser=""; ?> <script> alert("sorry,你不是注册用户!"); </script> <? session_register("reguser"); ?> ---------------------------- index.php 检查是否已经登录 ---------------------------- <? session_start(); if(isset($reguser)&&$reguser!="")//已经登录 { echo "欢迎你,哥们"; } else//没有登录呀 echo "请注册吧"; ?> ---------------------------- 可是在运行login.php时报错: Warning: open(/tmp\sess_e33fba875af90ff1f5fa75c0eafd9df5, O_RDWR) failed: m (2) in C:\apache\htdocs\session\index.php on line 2 请注册吧 Warning: open(/tmp\sess_e33fba875af90ff1f5fa75c0eafd9df5, O_RDWR) failed: m (2) in Unknown on line 0Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0请问这是什么意思?? 注:已经建立相应的数据库,并输入了相关数据
echo "密码错误";
exit;
}
$query="select username from userpass where id='$userid' and pass='$pass'";
$result=mysql_query($query,$dbh);
$row=mysql_fetch_row($result);
if($row[0])
{
$username=$row[0];
session_register("username");
}在每个页面开头加上:if(!$username)
{
echo "<script>";
echo ("alert(\"未登录!\");");
echo ("location.href=\"login.htm\";");
echo "</script>";
} 最好写一个validate.php包含以上内容.
我觉得应把:
if(!$username)
改成:
if(!session_is_registered("username"))
<?PHP
if(!Session_is_registered("g_personname"))
{ $url="../login.php?Target=".$PHP_SELF;}?>
function authenticate()
{
Header("WWW-authenticate: basic realm='Joo @ Net'");
Header("HTTP/1.1 401 Unauthorized");
exit;
}
$auth=0;
if (isset($PHP_AUTH_USER) && strcmp(trim($PHP_AUTH_USER),"Reve")==0 && strcmp(trim($PHP_AUTH_PW),"")==0) $auth=1;
while(!isset($PHP_AUTH_USER) || $auth==0 )
authenticate();
?>
login.php 用于用户认证
-------------------------
<?
session_start();
$dbh = mysql_connect("localhost","","");
mysql_select_db("goldenwind");//选择数据库
$query="select password from user_log where log_id=1 and nicker=tjyihui ";
$res=mysql_query($query,$dbh);
if($row=mysql_fetch($res))
{
$reguser=$row[0];
?>
<script>
alert("ok,哥们,欢迎你!");
</script>
<?
}
else
{
$reguser="";
?>
<script>
alert("sorry,你不是注册用户!");
</script>
<?
session_register("reguser");
?>
----------------------------
index.php 检查是否已经登录
----------------------------
<?
session_start();
if(isset($reguser)&&$reguser!="")//已经登录
{
echo "欢迎你,哥们";
}
else//没有登录呀
echo "请注册吧";
?>
----------------------------
可是在运行login.php时报错:
Warning: open(/tmp\sess_e33fba875af90ff1f5fa75c0eafd9df5, O_RDWR) failed: m (2) in C:\apache\htdocs\session\index.php on line 2
请注册吧
Warning: open(/tmp\sess_e33fba875af90ff1f5fa75c0eafd9df5, O_RDWR) failed: m (2) in Unknown on line 0Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0请问这是什么意思??
注:已经建立相应的数据库,并输入了相关数据
你把session路径设成一个存在的文件夹,如c:\tmp
如果只在页首添加
<?
session_start();
if(!session_is_registered("reguser"))
echo"您还没有登陆" ;
?>虽然在未登陆的情况下显示"您还没有登陆" ,但同时也会显示网页中的内容.