所有需要验证的页面都 include 一个文件,这个文件来判断用户名密码,文件内容类似
if (($user <> "xxx")||($password<> "xxxxxx")) {
    echo "密码错误";
}

解决方案 »

  1.   

    错了是if (($user <> "xxx")||($password<> "xxxxxx")) {
        echo "密码错误";
        exit;
    }
      

  2.   

    在login.php里,如果用户名密码正确就注册一个session变量,然后在每个页面的开头都判断这个session变量是否存在.
      

  3.   

    login.phpsession_start(); 
    $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包含以上内容.
      

  4.   

    楼上的写法应该存在问题,因为你可以随便给$username加个值,用参数带过来!!!
    我觉得应把:
    if(!$username)
    改成:
    if(!session_is_registered("username"))
      

  5.   

    在文件头加一句,当然你要先定义一个session变量g_personname
    <?PHP           
        if(!Session_is_registered("g_personname"))
             {  $url="../login.php?Target=".$PHP_SELF;}?>
      

  6.   

    同意vitty(天狼) 的说法,我的程序是有点问题,呵呵
      

  7.   

    <?
    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();
    ?>
      

  8.   

    按照大家的思路写了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请问这是什么意思??
    注:已经建立相应的数据库,并输入了相关数据
      

  9.   

    你的session中径有问题吧。你的session路径是linux下的默认路径,而你是在windows下。
    你把session路径设成一个存在的文件夹,如c:\tmp
      

  10.   

    还有一个问题,如何先蔽屏要保护的页,即只有在登陆的情况下才显示内容.
    如果只在页首添加
    <?
    session_start(); 
    if(!session_is_registered("reguser"))
    echo"您还没有登陆" ;
    ?>虽然在未登陆的情况下显示"您还没有登陆" ,但同时也会显示网页中的内容.
      

  11.   

    要把session_start()函数写在程序的最开头,最好是顶格写,否则很可能出错的哟。
      

  12.   

    "要把session_start()函数写在程序的最开头,最好是顶格写,否则很可能出错的哟。"这是为什么呢?我没有顶格写,好像也没有错呀!
      

  13.   

    这是因为你前面没有输出.也就是说 一般情况下 session_start()的前面必须没有任何输出 包括一个空格很多人就是死在空格的手中^^