Car*_*rlo 189 php variables session
看起来很简单,但我找不到一个好方法.
在第一页说我创建一个变量
$myVariable = "Some text";
Run Code Online (Sandbox Code Playgroud)
表单对该页面的操作是"Page2.php".所以在Page2.php中,我怎样才能访问该变量?我知道我可以用会话来做,但我认为这对于一个简单的字符串来说太过分了,我只需要传递一个简单的字符串(文件名).
我怎样才能做到这一点?
谢谢!
Jrg*_*gns 428
HTML/HTTP是无状态的,换句话说,您在上一页上所做/所看到的内容与当前页面完全没有关联.除非您使用会话,cookie或GET/POST变量之类的内容.会话和cookie非常易于使用,会话比cookie更安全.更安全,但不是完全安全.
会议:
//On page 1
$_SESSION['varname'] = $var_value;
//On page 2
$var_value = $_SESSION['varname'];
Run Code Online (Sandbox Code Playgroud)
session_start();在尝试访问$_SESSION阵列之前,以及在将任何输出发送到浏览器之前,请记住在这两个页面上运行该语句.
曲奇饼:
//One page 1
$_COOKIE['varname'] = $var_value;
//On page 2
$var_value = $_COOKIE['varname'];
Run Code Online (Sandbox Code Playgroud)
会话和cookie之间的最大区别在于,如果您正在使用会话,变量的值将存储在服务器上,如果您正在使用cookie,则会在客户端上存储.我想不出使用cookie而不是会话的任何好理由,除非你希望数据在会话之间保持不变,但即便如此,最好将它存储在数据库中,并根据用户名或ID检索它.
GET和POST
您可以将链接中的变量添加到下一页:
<a href="page2.php?varname=<?php echo $var_value ?>">Page2</a>
Run Code Online (Sandbox Code Playgroud)
这将创建一个GET变量.
另一种方法是在提交到第二页的表单中包含一个隐藏字段:
<form method="get" action="page2.php">
<input type="hidden" name="varname" value="var_value">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
然后在第二页:
//Using GET
$var_value = $_GET['varname'];
//Using POST
$var_value = $_POST['varname'];
//Using GET, POST or COOKIE.
$var_value = $_REQUEST['varname'];
Run Code Online (Sandbox Code Playgroud)
post如果您想通过帖子进行操作,只需将表单的方法更改为.两者都同样不安全,虽然GET更容易入侵.
除了会话数据之外,每个新请求都是一个全新的脚本实例,这在我第一次开始用PHP编写代码时就抓住了我.一旦你习惯它,它就很简单了.
小智 30
感谢上面的答案.这是我如何做到的,我希望它可以帮助那些追随者.我想将注册号从一个页面传递到另一个页面,因此regName和regValue:
创建你的第一页,称之为set_reg.php:
<?php
session_start();
$_SESSION['regName'] = $regValue;
?>
<form method="get" action="get_reg.php">
<input type="text" name="regName" value="">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
创建第二个页面,将其命名为get_reg.php:
<?php
session_start();
$regValue = $_GET['regName'];
echo "Your registration is: ".$regValue.".";
?>
<p><a href="set_reg.php">Back to set_reg.php</a>
Run Code Online (Sandbox Code Playgroud)
虽然不如上面的答案那么全面,但为了我的目的,这以简单的方式说明了各种元素之间的关系.
Pau*_*xon 16
您可以将其作为隐藏字段嵌入表单中,也可以将其添加到表单操作URL中
echo '<input type="hidden" name="myVariable" value="'.
htmlentities($myVariable).'">';
Run Code Online (Sandbox Code Playgroud)
要么
echo '<form method="POST" action="Page2.php?myVariable='.
urlencode($myVariable).'">";
Run Code Online (Sandbox Code Playgroud)
请注意,这也说明了在传递数据时使用htmlentities和urlencode.
如果不需要将数据传递给客户端,那么会话可能更合适.只需在每个页面的开头调用session_start(),就可以获取并将数据设置到$ _SESSION数组中.
由于您声明您的值实际上是文件名,因此您需要了解安全性后果.如果文件名已从客户端到达,则假定用户已篡改该值.检查它的有效性!当用户将路径传递给重要系统文件或其控制下的文件时会发生什么?您的脚本可以用来"探测"服务器上是否存在的文件?
正如你刚刚开始在这里开始的那样,值得提醒的是,这适用于任何到达$ _GET,$ _POST或$ _COOKIE的数据 - 假设你最大的敌人精心制作了这些数组的内容,并相应编码!
小智 9
在php中传递值有三种方法.
这三种方法用于不同的目的.例如,如果我们想在下一页接收我们的值,那么我们可以使用'post'($ _POST)方法: -
$a=$_POST['field-name'];
Run Code Online (Sandbox Code Playgroud)
如果我们在多个页面上需要变量值,那么我们可以使用会话变量:
$a=$_SESSION['field-name];
Run Code Online (Sandbox Code Playgroud)
在使用此语法创建SESSION变量之前,我们首先必须在php页面的最开头添加此标记
session_start();
Run Code Online (Sandbox Code Playgroud)
GET方法通常用于在用于从用户输入的同一页面上打印数据.其语法如下:
$a=$_GET['field-name'];
Run Code Online (Sandbox Code Playgroud)
POST方法通常比GET消耗更安全,因为当我们使用Get方法时,它可以显示URL栏中的数据.如果数据是更敏感的数据,如密码那么它可以是inggeris.
试试这个代码
使用隐藏字段,我们可以将php varibale传递到另一个页面
page1.php
<?php $myVariable = "Some text";?>
<form method="post" action="page2.php">
<input type="hidden" name="text" value="<?php echo $myVariable; ?>">
<button type="submit">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
将php变量传递给隐藏字段值,以便您可以将此变量访问到另一个页面
page2.php
<?php
$text=$_POST['text'];
echo $text;
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
755553 次 |
| 最近记录: |