php问题求救,12点前结贴 怎么个传递不了?第二个页面:$_SESSION["user"] = $user++;第三个页面:echo $user; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 深空老大,第三个页面应该用session_start();echo $_SESSION['user'];你的Blog很吸引人,呵呵 --------------------------------------------------------------------怎么个传递不了?第二个页面:$_SESSION["user"] = $user++;第三个页面:echo $user;------------------------------------------------------------------第一个页面呢?需要写什么吗? 楼上的意见不错呀你用session就行 第一个页面:<a href="第二个页面.php?user=1">点这里</a>第二个页面:echo $user = $_GET["user"];session_start();$_SESSION["user"] = $user++;echo "<br /> user now: " . $user;echo "<a href='第三个页面.php'">点这里</a>第三个页面:session_start();echo $user;//这里直接打印$user就可以了,因为已经自动全局变量了... to countstars(深空): 还是不行!我用了您说得了,有错是不是需要设置什么? 那是你PHP配置问题了吧?给你我的Session类,呵呵<?php /** * @author 深空(shenkong) <[email protected]> * @ver $id * @desc Session 类 * @copyright 深空(shenkong)版权所有,任何人使用和修改都必须保留此版权信息 */ class Session { /** * @return void * @param string $savePath Session 的保存路径 * @param int $lifeTime Session 过期时间 * @param string $limit Session 访问权限 * @desc 初始化 Session。设置 Session 保存路径和过期时间以及访问权限,并初始化 Session */ function __construct($savePath, $lifeTime = null, $limit = "private") { $this->setPath($savePath); $this->setTime($lifeTime); $this->start(); $this->limiter($limit); } /** * @return void * @param int $lifeTime * @desc 设置 Session 的 Cookie 有效时间 */ public function setTime($lifeTime) { session_set_cookie_params($lifeTime); } /** * @return void * @param string $savePath Session 保存路径 * @access private * @desc 设置 Session 保存路径 */ private function setPath($savePath) { session_save_path($savePath); } /** * @return boolean * @access private * @desc 启动 Session */ private function start() { return session_start(); } /** * @return unknown * @param string $sessionName * @access public * @desc 取的 Session 值 */ public function get($sessionName) { if ($sessionName === "_SESSION") { return getData(null, "session"); } else { return getData($sessionName, "session"); } } /** * @return void * @param string $sessionName * @param unknown $sessionValue * @access public * @desc 设置 Session 变量 */ public function set($sessionName, $sessionValue) { $_SESSION[$sessionName] = $sessionValue; } /** * @return void * @param string $sessionName * @access public * @desc 清空 Session 值 */ public function del($sessionName) { if ($sessionName === $_SESSION) { unset($_SESSION); } else { unset($_SESSION[$sessionName]); } } /** * @return boolean * @param string $sessionName * @access public * @desc 检测 Session 变量是否存在 */ public function exist($sessionName) { return isset($_SESSION[$sessionName]); } /** * @return void * @param string $limit * @access private * @desc 设置当前 Session 的缓存限制 */ private function limiter($limit = null) { session_cache_limiter($limit); } /** * @return boolean * @param string $sessionName * @desc 注册一个 Session 变量,其实 set 方法已经做到了 */ function register($sessionName) { return session_register($sessionName); } /** * @return void * @param unknown $sessionName * @desc Enter description here... */ function delete($sessionName) { session_unset($sessionName); } /** * @return unknown * @desc Enter description here... */ function destroy() { return session_destroy(); } /** * @return string * @access public * @desc 返回 Session ID */ public function sID() { return SID; } /** * @return void * @access public * @desc 关闭 Session */ public function close() { session_write_close(); } /** * @return void * @desc 析构函数,释放 Session */ function __destruct() { $this->close(); } }?> 1、<a href="2.php?user=1">第二个页面</a>2、<?php session_start(); echo $_GET['user']; $_SESSION['user'] = $_GET['user']++; echo "<a href=3.php>第三个页面</a>";?>3、<?phpsession_start();echo $_SESSION['user'];?> 用三楼的session方法也可以,用你自己的方法也可以不过user++我不是很明白,应该是用$user.$user才是比较合理的方法吧?难道你的user是一个数值?如果是数值那么加可以! 修改一下countstars(深空)老大的代码,这样就应该没问题了第一个页面:<a href="第二个页面.php?user=1">点这里</a>第二个页面:session_start(); //这一句提到上面来echo $user = $_GET["user"];$_SESSION["user"] = $user++;echo "<br /> user now: " . $user;echo "<a href='第三个页面.php'">点这里</a>第三个页面:session_start();//这一句有修改echo $_SESSION['user'];//这里直接打印$user就可以了,因为已经自动全局变量了...然后,关于使用SESSION还需要做一些配置,不知道楼主有没有配好,参考我以前写的资料以前写的例子,见笑.:)关于php中session的一点小心得 最近在学习写php,被里面的session给缠住了,在书上非常简单的session例子,居然在我的电脑上一直没办法运行出来。在请教了各位高手,再找了许多资料后,终于有了一个自认为正确的答案,现整理如下。 在php 4.1.0 之前的session大概是使用$HTTP_SERVER_VARS这个命令在进行操作的(只是从网上找到的资料没有经过验证),但一般现在装的php,都是在4.2、4.3的样子在下的系统里就是php-4.3.4-win32 很显然,书上的东西已经不能支持最新的php了。 经过试验,我解决的方法如下1、将session.save_path的路径改为session.save_path = c:\php\tmp同时在c:\php下建立tmp目录。2、另,session.cookie_path 的路径千万不能改还是要保持原来的样子session.cookie_path = / 网上有的文章说要把这改成和session.save_path一样的路径,就这点把我害了。 改完后重新起动服务器。运行两个文件。test.php<?session_start();$_SESSION["mytest"]="give my love.";echo "<a href=test2.php>go</a>";?>test2.php<?session_start();echo $_SESSION["mytest"];?> 结果可以让人满意。PS:注意点1、session_star()前面不能有任何字符输出,包括前面不能有空格。2、$_SESSION一定要大写,不能用小写。 可以啊,直接用Session就可以了。在每页的开头:<?php session_start();?>然后:$_SESSION['user']=$usre;在b和c中你可以:直接用:b中:$user=$_SESSION['user'];$user++;$_SESSION['user']=$user;c中:$user=$_SESSION['user'];就OK了!不用session,你也可以用在a中:echo('<form action="b.php" method="POST">');echo('<input type="HIDE" name="user" value="'.$user.'">');echo('<input type="SUBMIT" value="Go">');echo('</form>')在b中:echo('<form action="c.php" method="POST">');echo('<input type="HIDE" name="user" value="'.$user.'">');echo('<input type="SUBMIT" value="Go">');echo('</form>')就OK了! 用 <input type=hidden name=user value =<?echo $user?>> 传递也可以 那还是 GET的方式比较简单。在B页面中 的链接中加上 c.php?user=$user 即可~~~~ 你说的session不能用,很有可能是你在每页的开始没有启动session:<?php session_start();?>切记:在每个网页开始时要启动session; 使用SESSION吧,玩PHP总是要学会用的,楼主还没搞定? a页面<a href="b.php?user=1">b</a>b页面<?php$user = $_GET['user'];$user++;echo "<a href='c.php?user=$user'>c</a>";?>c页面<?php$user = $_GET['user'];echo $uder;?> 哈,和我开始学PHP时问的问题一样,告诉你,用session吧! 唠叨老大用的都是GET,也是好的选择,毕竟用session是要占用一定内存的 唠叨老大用的都是GET,也是好的选择,毕竟用session是要占用一定内存的GET难道就不点内在了? 请注意楼主的问题:“先访问a,通过 ?user=$user的方式.......通过同样的方式传给c”人家就是要用get方式,为什么要改成session方式呢? foreach问题 $a=26 $b=4 $a/=$b=?? php 国际化 关于ci框架的学习 php连接数据库基本语法问题 变量如何在PHP和Javascript之间传递? 查询表中行数的问题 求救:为什么session对象不能在PHP页面间传递 问一个菜鸟问题 简单问题,不知道为什么会出现这样的错误 SMTP发信问题~~~~~~~~~ 如何把EXCLE表里的数据导入MYSQL数据库中呢?
session_start();
echo $_SESSION['user'];你的Blog很吸引人,呵呵
怎么个传递不了?
第二个页面:$_SESSION["user"] = $user++;
第三个页面:echo $user;
------------------------------------------------------------------
第一个页面呢?需要写什么吗?
你用session就行
<a href="第二个页面.php?user=1">点这里</a>第二个页面:
echo $user = $_GET["user"];
session_start();
$_SESSION["user"] = $user++;
echo "<br /> user now: " . $user;
echo "<a href='第三个页面.php'">点这里</a>第三个页面:
session_start();
echo $user;//这里直接打印$user就可以了,因为已经自动全局变量了...
还是不行!
我用了您说得了,有错
是不是需要设置什么?
* @author 深空(shenkong) <[email protected]>
* @ver $id
* @desc Session 类
* @copyright 深空(shenkong)版权所有,任何人使用和修改都必须保留此版权信息
*/
class Session {
/**
* @return void
* @param string $savePath Session 的保存路径
* @param int $lifeTime Session 过期时间
* @param string $limit Session 访问权限
* @desc 初始化 Session。设置 Session 保存路径和过期时间以及访问权限,并初始化 Session
*/
function __construct($savePath, $lifeTime = null, $limit = "private") {
$this->setPath($savePath);
$this->setTime($lifeTime);
$this->start();
$this->limiter($limit);
} /**
* @return void
* @param int $lifeTime
* @desc 设置 Session 的 Cookie 有效时间
*/
public function setTime($lifeTime)
{
session_set_cookie_params($lifeTime);
}
/**
* @return void
* @param string $savePath Session 保存路径
* @access private
* @desc 设置 Session 保存路径
*/
private function setPath($savePath) {
session_save_path($savePath);
}
/**
* @return boolean
* @access private
* @desc 启动 Session
*/
private function start() {
return session_start();
}
/**
* @return unknown
* @param string $sessionName
* @access public
* @desc 取的 Session 值
*/
public function get($sessionName) {
if ($sessionName === "_SESSION") {
return getData(null, "session");
} else {
return getData($sessionName, "session");
}
}
/**
* @return void
* @param string $sessionName
* @param unknown $sessionValue
* @access public
* @desc 设置 Session 变量
*/
public function set($sessionName, $sessionValue) {
$_SESSION[$sessionName] = $sessionValue;
}
/**
* @return void
* @param string $sessionName
* @access public
* @desc 清空 Session 值
*/
public function del($sessionName) {
if ($sessionName === $_SESSION) {
unset($_SESSION);
} else {
unset($_SESSION[$sessionName]);
}
}
/**
* @return boolean
* @param string $sessionName
* @access public
* @desc 检测 Session 变量是否存在
*/
public function exist($sessionName) {
return isset($_SESSION[$sessionName]);
}
/**
* @return void
* @param string $limit
* @access private
* @desc 设置当前 Session 的缓存限制
*/
private function limiter($limit = null) {
session_cache_limiter($limit);
}
/**
* @return boolean
* @param string $sessionName
* @desc 注册一个 Session 变量,其实 set 方法已经做到了
*/
function register($sessionName) {
return session_register($sessionName);
}
/**
* @return void
* @param unknown $sessionName
* @desc Enter description here...
*/
function delete($sessionName) {
session_unset($sessionName);
}
/**
* @return unknown
* @desc Enter description here...
*/
function destroy() {
return session_destroy();
}
/**
* @return string
* @access public
* @desc 返回 Session ID
*/
public function sID() {
return SID;
}
/**
* @return void
* @access public
* @desc 关闭 Session
*/
public function close() {
session_write_close();
}
/**
* @return void
* @desc 析构函数,释放 Session
*/
function __destruct()
{
$this->close();
}
}?>
<a href="2.php?user=1">第二个页面</a>
2、
<?php
session_start();
echo $_GET['user'];
$_SESSION['user'] = $_GET['user']++;
echo "<a href=3.php>第三个页面</a>";
?>
3、
<?php
session_start();
echo $_SESSION['user'];
?>
<a href="第二个页面.php?user=1">点这里</a>第二个页面:
session_start(); //这一句提到上面来
echo $user = $_GET["user"];
$_SESSION["user"] = $user++;
echo "<br /> user now: " . $user;
echo "<a href='第三个页面.php'">点这里</a>第三个页面:
session_start();
//这一句有修改
echo $_SESSION['user'];//这里直接打印$user就可以了,因为已经自动全局变量了...
然后,关于使用SESSION还需要做一些配置,不知道楼主有没有配好,参考我以前写的资料以前写的例子,见笑.:)关于php中session的一点小心得 最近在学习写php,被里面的session给缠住了,在书上非常
简单的session例子,居然在我的电脑上一直没办法运行出来。
在请教了各位高手,再找了许多资料后,终于有了一个自认为正
确的答案,现整理如下。
在php 4.1.0 之前的session大概是使用$HTTP_SERVER_VARS
这个命令在进行操作的(只是从网上找到的资料没有经过验证),
但一般现在装的php,都是在4.2、4.3的样子在下的系统里就是
php-4.3.4-win32
很显然,书上的东西已经不能支持最新的php了。 经过试验,我解决的方法如下
1、将session.save_path的路径改为session.save_path = c:\php\tmp
同时在c:\php下建立tmp目录。2、另,session.cookie_path 的路径千万不能改还是要保持原来的样子
session.cookie_path = /
网上有的文章说要把这改成和session.save_path一样的路径,就这
点把我害了。 改完后重新起动服务器。运行两个文件。test.php<?
session_start();
$_SESSION["mytest"]="give my love.";
echo "<a href=test2.php>go</a>";
?>test2.php<?
session_start();
echo $_SESSION["mytest"];
?> 结果可以让人满意。PS:注意点
1、session_star()前面不能有任何字符输出,包括前面不能有空格。
2、$_SESSION一定要大写,不能用小写。
然后:$_SESSION['user']=$usre;
在b和c中你可以:直接用:
b中:$user=$_SESSION['user'];
$user++;
$_SESSION['user']=$user;c中:
$user=$_SESSION['user'];就OK了!不用session,你也可以用
在a中:
echo('<form action="b.php" method="POST">');
echo('<input type="HIDE" name="user" value="'.$user.'">');
echo('<input type="SUBMIT" value="Go">');
echo('</form>')
在b中:
echo('<form action="c.php" method="POST">');
echo('<input type="HIDE" name="user" value="'.$user.'">');
echo('<input type="SUBMIT" value="Go">');
echo('</form>')
就OK了!
在B页面中 的链接中加上 c.php?user=$user 即可~~~~
<?php session_start();?>
切记:在每个网页开始时要启动session;
<a href="b.php?user=1">b</a>b页面
<?php
$user = $_GET['user'];
$user++;
echo "<a href='c.php?user=$user'>c</a>";
?>c页面
<?php
$user = $_GET['user'];
echo $uder;
?>