php两个文件传值出问题
首先我第一个页面接收到了表单的传值,然后保存赋值到$email上,第二个页面引入第一个,还是会执行到if语句里面,按理来说我第一个页面已经把值赋值到$email上了,应该...
首先我第一个页面接收到了表单的传值,然后保存赋值到$email上,第二个页面引入第一个,还是会执行到if语句里面,按理来说我第一个页面已经把值赋值到$email上了,应该不会走if里面才对啊。新手一枚,求大神指点
展开
展开全部
变量的作用域只在当前页面, 到了另一个页面就失效了,否则的话还要数据库干嘛?一个页面定义了数据,其他页面就共用了啊?
所以要想在多个页面间共享数据,必须想法把数据存储起来,数据量大而且复杂的话,必须用数据库,如果是少量的或者临时的数据,可以考虑session或者cookie。
下面是用session的例子:
<?php
session_start();
if(!isset($_SESSION['email']))$_SESSION['email']=$_POST['email'];
echo $_SESSION['email'];
?>
另一个页面中就可以这样:
<?php
session_start(); //这行必须有
if(isset($_SESSION['email']))echo $_SESSION['email'];
?>
所以要想在多个页面间共享数据,必须想法把数据存储起来,数据量大而且复杂的话,必须用数据库,如果是少量的或者临时的数据,可以考虑session或者cookie。
下面是用session的例子:
<?php
session_start();
if(!isset($_SESSION['email']))$_SESSION['email']=$_POST['email'];
echo $_SESSION['email'];
?>
另一个页面中就可以这样:
<?php
session_start(); //这行必须有
if(isset($_SESSION['email']))echo $_SESSION['email'];
?>
展开全部
变量的生命周期问题吧。如果对第二个文件的访问是单独的一次请求,那么$email的值在第一个页面的请求完成时就被销毁了,所以不存在。如果表单是提交的target url是第二个页面的话,可能就是第一个文件的代码有问题了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$email是在public.php定义?
这些基本验证完全可以一个文件书写,加载文件多了。自己可能都被绕晕了
这些基本验证完全可以一个文件书写,加载文件多了。自己可能都被绕晕了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
文件一修改为:
<?php
class System{
static public $PATH;
Public function Run(){
self::$PATH = 'sdsad';
require '2.php';
$class = new indexAction();
$class->index();
}
}
$class = new System();
$class->Run();
?>
文件二修改为:
<?php
class indexAction extends System{
Public function index(){
print(parent::$PATH);//不生效
}
}
?>
注意静态属性的作用
和self parent等关键字的使用
<?php
class System{
static public $PATH;
Public function Run(){
self::$PATH = 'sdsad';
require '2.php';
$class = new indexAction();
$class->index();
}
}
$class = new System();
$class->Run();
?>
文件二修改为:
<?php
class indexAction extends System{
Public function index(){
print(parent::$PATH);//不生效
}
}
?>
注意静态属性的作用
和self parent等关键字的使用
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你弟一张的if要去掉,根本没定义不会运行代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询