smokerlee 发表于 2004-5-10 20:51:34

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

斑竹救命!!!!!关于session传递的过程可不可以给我举个例子!!
我非常着急!!!!
我想让session记录登陆的用户名和密码
使各个页面session为空者禁止访问,可以作到防止匿名访问!!
我找了好多资料!!!都没有列子 我试了很多次!!!!!5555.。。。。。
不是我不勤奋,,而是,,,,,教材太老,,,老师不会。。。。
唯有跪求斑竹赐教!!!

smokerlee 发表于 2004-5-11 00:45:07

<?
session_start();
session_register('user_id');
session_register('user_pass');
$query = "SELECT * FROM test2 WHERE name='".$_POST."'
                  and pass='".$_POST."'";
                                                                                                                                             
      $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传递到 mainview.php页面??

jiangtao9999 发表于 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
………………………………

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

smokerlee 发表于 2004-5-11 14:07:59

<?
session_start();
session_register('user_id');
session_register('user_pass');
$query = "SELECT * FROM test2 WHERE name='".$_POST."'
and pass='".$_POST."'";

$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到他访问过的页面。当session为空的页面,表示此人没有登陆 禁止访
问!就是说用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;
}

jiangtao9999 发表于 2004-5-11 14:25:46

session 是存储在服务器端的变量,浏览器端是得不到数据也不能写数据的。
javascript 就是在浏览器端运行的脚本,他不能读写 session 数据。
session 在浏览器里的表示只是一个cookie数据,表明这个网页的session ID。
只要这个 session ID 一直在 cookie 里,服务器端就会一直保存 session 数据。

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

smokerlee 发表于 2004-5-11 14:36:44

虽然我还是有些不明白,但是还是谢谢你!!
   让没有登陆的人不能访问某些页面怎么才能作到呢??

jiangtao9999 发表于 2004-5-11 14:49:51

你那里不明白?

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

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

jiangtao9999 发表于 2004-5-11 14:55:46

你可以认为:PHP就像一个输出到屏幕的脚本程序。
不管你如何运算,只要能显示我需要的代码就可以了。

smokerlee 发表于 2004-5-11 15:16:26

问题是第一个页面我有了值,到了第二个页面 session的值全部没有了
你说的我理解
就是session的值前一个页面赋有了,点击到第二个页面就没有了

jiangtao9999 发表于 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");


你没注意看吧?

smokerlee 发表于 2004-5-11 19:28:18

一个简单的测试 看看出了什么问题了
第一个页面
<?
session_start();
if(!session_is_registered('id')) session_register("id");
                                                                              
$_session=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";
      }
?>

页面一转到页面二后显示

成功访问session =

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

smokerlee 发表于 2004-5-11 19:44:46

谢谢版主 我考考考 原来$_SESSION["id"],中的SESSION要大写 狂倒!!!!!!!!!!!!!!!太谢谢版主了~!!

jiangtao9999 发表于 2004-5-12 18:11:05

:neutral:
PHP 和 C 语法类似,都是区分大小写的……… :wink:

smokerlee 发表于 2004-5-13 01:12:21

新问题!!!!!

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

jiangtao9999 发表于 2004-5-13 07:05:15

是 $_REQUEST[]
页: [1] 2
查看完整版本: 斑竹再次救命~~~~!!!