我用这样的会议传递变量到另一页面的URL,但似乎我不能连接其他变量相同的URL,并在接下来的页面检索它成功
第1页
session_start();
$event_id = $_SESSION['event_id'];
echo $event_id;
$url = "http://localhost/main.php?email=" . $email_address . $event_id;
第2页
if (isset($_GET['event_id'])) {
$event_id = $_GET['event_id'];}
echo $event_id;
echo $event_id
显示错误Undefined variable
第2页,但如果我只使用event_id
在$url
喜欢这里
$url = "http://localhost/main.php?event_id=" . $event_id;
这工作正常,但我需要能够使用这两个变量在URL中,以便第2页可以检索得到它们。
使用符号&
胶水变量一起:
$url = "http://localhost/main.php?email=$email_address&event_id=$event_id";
// ^ start of vars ^next var
简短的回答:
这就是你正在尝试做的,但它带来了一些安全和编码问题,所以不这样做。
$url = "http://localhost/main.php?email=" . $email_address . "&eventid=" . $event_id;
长一点的回答:
在查询字符串的所有变量都需要url编码,以确保正确传输。 你不应该通过在URL中用户的个人信息,因为URL是非常漏水。 网址日志文件,浏览历史,转诊头,等等不胜枚举和结束。
作为适当的URL编码,则可以使用任一来实现urlencode()
或http_build_query()
无论是其中的一个应该工作:
$url = "http://localhost/main.php?email=" . urlencode($email_address) . "&eventid=" . urlencode($event_id);
要么
$vars = array('email' => $email_address, 'event_id' => $event_id);
$querystring = http_build_query($vars);
$url = "http://localhost/main.php?" . $querystring;
此外,如果$event_id
是在会话中,你实际上并不需要各地通过它,以便从不同的页面访问。 只需调用session_start()
它应该是可用的。
你的第一个变量declartion必须以启动?
而任何其他必须使用级联&
很简单,但另一个人说你不通过网址栏1.You不需要,因为会话在整个从头部整个网站通过当你把在头文件2.security风险传递会话变量
这是第一页代码
$url = "http://localhost/main.php?email=" . urlencode($email_address) . "&eventid=" . urlencode($event_id);
获取变量时,从地址栏是第2页:
if(isset($_GET['email']) && !empty($_GET['email']) AND isset($_GET['eventid']) && !empty($_GET['eventid'])){ ////do whatever here }
现在,如果你想这样做使用会话您创建的则忽略我上面的代码,并呼吁实例的第二页上的会话变量创建的第一页上的会话可以说,例如正确的方法:
$_SESSION['WEB_SES'] = $email_address . "^" . $event_id;
很明显,你将已经分配的值在上面的代码中的会话变量,你可以调用任何你想我只是用例子web_ses,第二页所有你需要做的就是启动一个会话,看看会话名称会议是存在的,检查变量,做任何他们,例如:
session_start();
if (isset($_SESSION['WEB_SES'])){
$Array = explode("^", $_SESSION['WEB_SES']);
$email = $Array[0];
$event_id = $Array[1]
echo "$email";
echo "$event_id";
}
就像我对会议的好东西之前说的是,他们可以在整个网站中进行,如果这种类型的代码放在头文件顺利通过上加载的所有页面调用,您可以使用简单的可变无论何时何地。 希望这可以帮助 :)
您正在检查isset($_GET['event_id']
但你没有设置让变量在你的超链接时,你是刚刚加入email
http://localhost/main.php?email=" . $email_address . $event_id
而在你的链接添加另一个GET变量
$url = "http://localhost/main.php?email=$email_address&event_id=$event_id";
您没有使用来连接你的字符串,如果您使用的是"
行情
使用与此。 使用&只要你想你可以把尽可能多的变量!
$url = "http://localhost/main.php?event_id=".$event_id."&email=".$email;
<a href="deleteshare.php?did=<?php echo "$rowc[id]"; ?>&uid=<?php echo "$id";?>">DELETE</a>
传递多个变量的一个页面到另一个页面
从php.net
警告超全局变量$_GET
和$_REQUEST
已经被解码。 使用urldecode()
中的元素, $_GET
或$_REQUEST
可能有意想不到的和危险的结果。
链接: http://php.net/manual/en/function.urldecode.php
小心。