QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2085|回复: 16

斑竹再次救命~~~~!!!

[复制链接]
发表于 2004-5-10 20:51:34 | 显示全部楼层 |阅读模式
斑竹救命!!!!!关于session传递的过程可不可以给我举个例子!!
我非常着急!!!!
我想让session记录登陆的用户名和密码
使各个页面session为空者禁止访问,可以作到防止匿名访问!!
我找了好多资料!!!都没有列子 我试了很多次!!!!!5555.。。。。。
不是我不勤奋,,而是,,,,,教材太老,,,老师不会。。。。
唯有跪求斑竹赐教!!!
 楼主| 发表于 2004-5-11 00:45:07 | 显示全部楼层
<?
session_start();
session_register('user_id');
session_register('user_pass');
$query = "SELECT * FROM test2 WHERE name='".$_POST[username]."'
                  and pass='".$_POST[password]."'";
                                                                                                                                             
        $result=mysql_query($query,$link);
        echo "$result\n";
        echo "id= $user_id";
                                                                                                                                             
        if (mysql_num_rows($result) > 0)
                                                                                                                                             
         {
                                                                                                                                             
                $user_id = $username;
                                                                                                                                             
                $user_pass = $password;
                                                                                                                                             
                echo "<script language='JavaScript'>";
                                                                                                                                             
                echo "alert(\"您已经成功登录到购物系统当中了,欢迎您!\");";
                                                                                                                                             
                echo "window.location="mainview.php'";
                                                                                                                                             
                echo "</script>";
                                                                                                                                             
        }
                                                                                                                                             
程序是这样的  ,我该如何才能把 已经得到值的session[user_id]传递到 mainview.php页面??
回复

使用道具 举报

发表于 2004-5-11 12:30:46 | 显示全部楼层
session_register('user_id'); --不要这样用
先用 session_is_registered 检测一下,看看是否已经注册,没注册再 session_register 。
这样:if (! session_is_registered('user_id')) session_register("user_id");

之后给 session 变量需要这样用 $_SESSION("user_id")
不管你是付给还是读取,之后只要浏览器不关闭你就可以用 $_SESSION['user_id']来使用她。

重要的:
使用session的网页开头需要有 session_start()
session变量如果已经存在,session_register 可能会清掉数据
session变量在 4.2.0 以后默认需要用 $_SESSION[] 数组来使用(防止url灌入漏洞)

例子:(正在上课,没法测试)
<?
session_start();
if (! session_is_registered('user_id'))
{
session_register("user_id");
echo "reg session<br>";
}

$_SESSION['user_id'] + +;

echo $_SESSION['user_id'];

?>

这个代码的作用:
第一次浏览器显示:
reg session
1

第2次
2

第3次
3
………………………………

有问题的话只能等我到家再说了………………
回复

使用道具 举报

 楼主| 发表于 2004-5-11 14:07:59 | 显示全部楼层
<?
session_start();
session_register('user_id');
session_register('user_pass');
$query = "SELECT * FROM test2 WHERE name='".$_POST[username]."'
and pass='".$_POST[password]."'";

$result=mysql_query($query,$link);
echo "$result\n";
echo "id= $user_id";

if (mysql_num_rows($result) > 0)

{

$user_id = $username;

$user_pass = $password;

echo "<script language='JavaScript'>";

echo "alert(\"您已经成功登录到购物系统当中了,欢迎您!\");";

echo "window.location="mainview.php'";

echo "</script>";

}
可是针对我这个程序 用javascript语言调用转入的网页 怎么才能传递session呢??

window.location="mainview.php"
我试过了 好像session不能传递到mainview.php 我是想让登陆了的用户不停的传递session[id]到他访问过的页面。当session[id]为空的页面,表示此人没有登陆 禁止访
问!就是说用javascript 调用的页面mainview.php怎么样才能得到我赋值了的$use_id


if($user_id && $user_pass!="")
       {
        echo"登陆成功!";
       }
       else{
       echo "<font color=black size=3> 登陆失败,确认您的密码是否正确,如果你还没有注册,请按";
       echo "<a herf=\"%20\">这里</a></font>";
        exit;
}
回复

使用道具 举报

发表于 2004-5-11 14:25:46 | 显示全部楼层
session 是存储在服务器端的变量,浏览器端是得不到数据也不能写数据的。
javascript 就是在浏览器端运行的脚本,他不能读写 session 数据。
session 在浏览器里的表示只是一个cookie数据,表明这个网页的session ID。
只要这个 session ID 一直在 cookie 里,服务器端就会一直保存 session 数据。

你需要用 cookie 或者其他的方法(比如 url 、表单来传递)。
你只要能让相关数据发送到服务器,就可以使用session。
回复

使用道具 举报

 楼主| 发表于 2004-5-11 14:36:44 | 显示全部楼层
虽然我还是有些不明白,但是还是谢谢你!!
   让没有登陆的人不能访问某些页面怎么才能作到呢??
回复

使用道具 举报

发表于 2004-5-11 14:49:51 | 显示全部楼层
你那里不明白?

禁止访问最简单的就是用 session 。
你只要吧session变量付了值,只要不关浏览器,在服务器那里就可以一直使用。

服务器根据 session 里的变量来决定发送什么网页代码。
回复

使用道具 举报

发表于 2004-5-11 14:55:46 | 显示全部楼层
你可以认为:PHP就像一个输出到屏幕的脚本程序。
不管你如何运算,只要能显示我需要的代码就可以了。
回复

使用道具 举报

 楼主| 发表于 2004-5-11 15:16:26 | 显示全部楼层
问题是第一个页面我有了值,到了第二个页面 session的值全部没有了
你说的我理解
就是session的值前一个页面赋有了,点击到第二个页面就没有了
回复

使用道具 举报

发表于 2004-5-11 15:30:23 | 显示全部楼层
session 只能 session_register 一次。
第2次会把上一次的数据清除掉~~~~~

session_register('user_id'); --不要这样用
先用 session_is_registered 检测一下,看看是否已经注册,没注册再 session_register 。
这样:if (! session_is_registered('user_id')) session_register("user_id");


你没注意看吧?
回复

使用道具 举报

 楼主| 发表于 2004-5-11 19:28:18 | 显示全部楼层
一个简单的测试 看看出了什么问题了
第一个页面  
<?
  session_start();
  if(!session_is_registered('id')) session_register("id");
                                                                                
  $_session[id]=1;
  echo  "<html><body>";
  echo " <script language='javascript'>";
  echo " alert(\"正在装入新页面\");";
  echo " window.location='test2.php'";
  echo " </script>";
  echo "</body></html>";
                                                                                
?>
/*******************************页面二 test2.php  ****************/
<?
   session_start();
   if(! session_is_registered("id"))
      {
      echo"无权访问!";
      return;
       }
      else
      {
                                                                                
       echo "成功访问!";
       echo "session = $_session[id]";
      }
?>

页面一转到页面二后显示

成功访问  session =

session的值没有得到
因该是session =1 但是为何可以成功访问?????请斑竹帮忙!!!
回复

使用道具 举报

 楼主| 发表于 2004-5-11 19:44:46 | 显示全部楼层
谢谢版主 我考考考 原来$_SESSION["id"],中的SESSION要大写 狂倒!!!!!!!!!!!!!!!太谢谢版主了  ~!!
回复

使用道具 举报

发表于 2004-5-12 18:11:05 | 显示全部楼层
:neutral:
PHP 和 C 语法类似,都是区分大小写的………
回复

使用道具 举报

 楼主| 发表于 2004-5-13 01:12:21 | 显示全部楼层
新问题!!!!!

一个连接 如   www.xxx.com/search.php?work=search
在页面search.php中这个work怎么表示??
用$_POST[work],,,还是$_GET[work],,,,都不行
应该用什么呢??
回复

使用道具 举报

发表于 2004-5-13 07:05:15 | 显示全部楼层
是 $_REQUEST[]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 05:05 , Processed in 0.052950 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表