1
chenyg32 OP 我好像有点想法了。是不是curl()打开的网页是新开的,与我当前的无关,所以即使保存了session也是徒劳的。根本不是同一个范围内的。
|
2
chenyg32 OP 话又说回来了,既然不能用curl,那php之间应该怎么传值?
|
3
11 2013-12-05 02:47:02 +08:00 1
为什么要用curl?直接用 $_POST[] 获取呀。
|
4
raincious 2013-12-05 08:59:38 +08:00 1
楼主,为什么要这么纠结呢。
你的reg.php将数据POST给login.php,login.php(注意是login.php)会根据自己的环境计算COOKIE的KEY,这里的环境也仅包含请求方reg.php的HTTP HEADER。 这样的话,main.php和reg.php肯定是读不到这个KEY邦定SESSION的。 |
5
kuye 2013-12-05 09:18:21 +08:00 1
session的获取是基于cookie 的,curl的时候带上之前产生的cookies,一般来说是$_COOKIE['PHPSESSID'],就可以了
|
6
justfindu 2013-12-05 09:42:55 +08:00 1
curl应该算重开了一个进程 而且这个进程不属于用浏览器打开的用户 而是服务器吧
|
7
cute 2013-12-05 11:18:07 +08:00 1
要把curl获取到cookie自己传到客户端.
|
8
macdino 2013-12-05 12:21:13 +08:00 1
1、session没写成功,看一下你的session目录有没有写成功
2、跨域 |
10
raincious 2013-12-05 12:52:25 +08:00 1
@chenyg32 要实现登陆什么的,PHP页面之间不需要传值。
如果需要数据临时储存,可以使用Cookie在客户端和服务器之间来回传递。Cooke设置好之后,范围内的页面都能读取。 还有更常用的方式就是使用$_SESSION数组或者自己实现数据库的Session,然后根据某个条件(比如用户ID什么的)读取。 |
11
bombless 2013-12-05 15:49:30 +08:00 1
session是基于cookie的,如果用户关掉了cookie,那session也不会起作用,这是其一。
我简单说一下,如果按照楼主现在这个页面跳转逻辑要怎么改。 因为你的session id是login.php给出的,而用户没有访问过login.php,他访问的是reg.php 所以现在的任务是从reg.php获取一个客户端状态,让他能够保持到后面对main.php的访问上去。 在reg.php脚本里面,你先从login.php拿到Set-Cookie头和Cookie头,然后把它们原样输出到头部。 这样,后面用户访问main.php的时候就能回到login.php那次会话了。 |
12
jarlyyn 2013-12-05 21:32:15 +08:00
...不是应该include么?
|
13
beaaar 2013-12-06 10:58:23 +08:00
一定要给login.php去写session么?直接在reg.php写就行了,不过不知道楼主是不是有什么特殊的需求
|
14
johnlui 2013-12-06 17:10:05 +08:00 via Android
curl……
看起来像是正在入门而且还不好好看教程…… |