PHP / JavaScript: 如何将变量从一页传递到另一页
PHP / JavaScript: How to pass variable from one page to another
我是 PHP 的新手,希望有人能帮助我。
我有一个页面 (index.php
),用户可以在其中 select 一种语言。
如果未 select 编辑任何语言,则页面 URL 只是 index.php,默认为英语。
如果他们 select 一种语言,则页面会重新加载,并且变量 ?lang=xy
将添加到定义页面语言的 URL 中。
例如。对于德语,页面 URL 将是 index.php?lang=de
.
到目前为止一切正常。
现在我在索引页上有一个导航栏,允许导航到其他页面,这些页面都保存为单独的 php 文件(如 page1.php, page2.php, page3.php
等)。
我如何管理如果有人在索引页面上select输入了一种语言然后导航到另一个页面该语言变量传递给所有其他页面?
例如。对于德语,其他页面应该是 page1.php?lang=de, page2.php?lang=de, page3.php?lang=de
等
我知道我可以在每个页面上使用 $_GET["lang"]
来获取变量,但是找不到使用 PHP 或 [=44 将其从索引页面传递到其他页面的方法=],理想情况下,我可以将其设置得更通用,而不是为每个 link 单独设置。
注:
我使用带有标准 links 的无序列表来创建我的导航栏,例如:
<li><a href="page1.php">Page1</a></li>
有人可以帮我解决这个问题吗?
非常感谢。
您可以使用 cookie 这样做
setcookie(name, value, expire, path, domain, secure, httponly);
即:
setcookie('language', 'german', 60000,"/");
然后用
检查这个
$_COOKIE["language"]
如果您使用 select 种语言,只需添加 onchange 事件,然后将表单提交至 index.php
<form action="index.php">
<select name="lang" onchange="javascript:this.form.submit()">
<option value="en">English</option>
<option value="xy">XY</option>
</select>
</form>
在同一页
<?php
$lang = $_GET['lang'];
if(empty($lang)){
$lang = "en";
}
?>
然后把$lang传到你想传的地方
<li><a href="page1.php?<?php echo $lang; ?>">Page1</a></li>
您可以使用会话将变量传递到任何页面,它比 cookie 更安全,因为它是服务器端,
示例:
发布数据后:
<?php
session_start();
if(isset($_POST)){
$var_name=$this->db->real_escape_string($_POST['input_name']);
$_SESSION['var1_sess']=true;
$_SESSION['var1_sess']=$var_name;
}
?>
注意:session_start()必须在文件的第一行。
我是 PHP 的新手,希望有人能帮助我。
我有一个页面 (index.php
),用户可以在其中 select 一种语言。
如果未 select 编辑任何语言,则页面 URL 只是 index.php,默认为英语。
如果他们 select 一种语言,则页面会重新加载,并且变量 ?lang=xy
将添加到定义页面语言的 URL 中。
例如。对于德语,页面 URL 将是 index.php?lang=de
.
到目前为止一切正常。
现在我在索引页上有一个导航栏,允许导航到其他页面,这些页面都保存为单独的 php 文件(如 page1.php, page2.php, page3.php
等)。
我如何管理如果有人在索引页面上select输入了一种语言然后导航到另一个页面该语言变量传递给所有其他页面?
例如。对于德语,其他页面应该是 page1.php?lang=de, page2.php?lang=de, page3.php?lang=de
等
我知道我可以在每个页面上使用 $_GET["lang"]
来获取变量,但是找不到使用 PHP 或 [=44 将其从索引页面传递到其他页面的方法=],理想情况下,我可以将其设置得更通用,而不是为每个 link 单独设置。
注:
我使用带有标准 links 的无序列表来创建我的导航栏,例如:
<li><a href="page1.php">Page1</a></li>
有人可以帮我解决这个问题吗?
非常感谢。
您可以使用 cookie 这样做
setcookie(name, value, expire, path, domain, secure, httponly);
即:
setcookie('language', 'german', 60000,"/");
然后用
检查这个$_COOKIE["language"]
如果您使用 select 种语言,只需添加 onchange 事件,然后将表单提交至 index.php
<form action="index.php">
<select name="lang" onchange="javascript:this.form.submit()">
<option value="en">English</option>
<option value="xy">XY</option>
</select>
</form>
在同一页
<?php
$lang = $_GET['lang'];
if(empty($lang)){
$lang = "en";
}
?>
然后把$lang传到你想传的地方
<li><a href="page1.php?<?php echo $lang; ?>">Page1</a></li>
您可以使用会话将变量传递到任何页面,它比 cookie 更安全,因为它是服务器端,
示例:
发布数据后:
<?php
session_start();
if(isset($_POST)){
$var_name=$this->db->real_escape_string($_POST['input_name']);
$_SESSION['var1_sess']=true;
$_SESSION['var1_sess']=$var_name;
}
?>
注意:session_start()必须在文件的第一行。