这看起来很简单,但我找不到一个好方法。
在第一页中,我创建了一个变量
$myVariable = "Some text";
表单对该页面的操作是"Page2.php"在page2。php中,我如何访问这个变量?我知道我可以用会话做到这一点,但我认为这对于一个简单的字符串来说太多了,我只需要传递一个简单的字符串(一个文件名)。
我怎样才能做到这一点呢?
谢谢!
这看起来很简单,但我找不到一个好方法。
在第一页中,我创建了一个变量
$myVariable = "Some text";
表单对该页面的操作是"Page2.php"在page2。php中,我如何访问这个变量?我知道我可以用会话做到这一点,但我认为这对于一个简单的字符串来说太多了,我只需要传递一个简单的字符串(一个文件名)。
我怎样才能做到这一点呢?
谢谢!
当前回答
在请求中传递数据
您可以将其作为隐藏字段嵌入到表单中,或者将其添加到表单操作URL中
echo '<input type="hidden" name="myVariable" value="'.
htmlentities($myVariable).'">';
or
echo '<form method="POST" action="Page2.php?myVariable='.
urlencode($myVariable).'">";
注意,这也说明了在传递数据时使用htmlentities和urlencode。
在会话中传递数据
如果数据不需要传递到客户端,那么会话可能更合适。只需在每个页面的开始处调用session_start(),就可以获取并将数据设置到$_SESSION数组中。
安全
由于您声明的值实际上是一个文件名,因此需要注意安全后果。如果文件名来自客户端,则假定用户篡改了该值。检查它的有效性!当用户将路径传递给一个重要的系统文件或在他们控制下的文件时会发生什么?您的脚本是否可以用于“探测”服务器上存在或不存在的文件?
很明显,这里刚刚开始,值得提醒的是,这适用于到达$_GET、$_POST或$_COOKIE中的任何数据——假设您最坏的敌人制作了这些数组的内容,并相应地编写代码!
其他回答
它的工作原理。 发送数据抛出URL,没有表单。
$upit = "SELECT * FROM usluga";
$data = $mysql->query($upit);
while ($row = mysqli_fetch_object($data))
{
echo "<a href='"."index.php?tretmanId=$row->tretman_id"."'>$row->naziv</a>";
echo "<br><br>";
}
你可以通过"$_GET['name from URL']"在目标页面上获得这个值,就像这样
$TrermanIdFromUrl = $_GET['tretmanId'];
在请求中传递数据
您可以将其作为隐藏字段嵌入到表单中,或者将其添加到表单操作URL中
echo '<input type="hidden" name="myVariable" value="'.
htmlentities($myVariable).'">';
or
echo '<form method="POST" action="Page2.php?myVariable='.
urlencode($myVariable).'">";
注意,这也说明了在传递数据时使用htmlentities和urlencode。
在会话中传递数据
如果数据不需要传递到客户端,那么会话可能更合适。只需在每个页面的开始处调用session_start(),就可以获取并将数据设置到$_SESSION数组中。
安全
由于您声明的值实际上是一个文件名,因此需要注意安全后果。如果文件名来自客户端,则假定用户篡改了该值。检查它的有效性!当用户将路径传递给一个重要的系统文件或在他们控制下的文件时会发生什么?您的脚本是否可以用于“探测”服务器上存在或不存在的文件?
很明显,这里刚刚开始,值得提醒的是,这适用于到达$_GET、$_POST或$_COOKIE中的任何数据——假设您最坏的敌人制作了这些数组的内容,并相应地编写代码!
试试这段代码
使用隐藏字段,我们可以传递PHP变量到另一个页面
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>
将PHP变量传递给隐藏字段值,以便您可以将此变量访问到另一个页面
page2.php
<?php
$text=$_POST['text'];
echo $text;
?>
例如,你可以通过在url中包含变量来调用你想要的页面:
header("Location: ../signup.php?newpwd=passwordupdated");
在你的注册。php页面上
if (isset($_GET['newpwd']) && $_GET['newpwd'] == "passwordupdated") {
//code here
}
在php中有三种传递值的方法。
邮寄 通过获得 通过设置session变量
这三种方法用于不同的目的。例如,如果我们想在下一页接收我们的值,那么我们可以使用'post' ($_POST)方法作为:-
$a=$_POST['field-name'];
如果我们在多个页面上需要变量的值,那么我们可以使用会话变量作为:-
$a=$_SESSION['field-name];
在使用此语法创建SESSION变量之前,我们必须在php页面的最开始添加此标记
session_start();
GET方法通常用于在同一页面上打印数据,该页面用于从用户获取输入。它的语法如下:
$a=$_GET['field-name'];
POST方法通常比GET方法更安全,因为当我们使用GET方法时,它可以在URL栏中显示数据。如果数据是更敏感的数据,如密码,那么它可以是inggeris。