传递多个变量的另一网页网址(Passing multiple variables to anothe

2019-06-18 16:03发布

我用这样的会议传递变量到另一页面的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页可以检索得到它们。

Answer 1:

使用符号&胶水变量一起:

$url = "http://localhost/main.php?email=$email_address&event_id=$event_id";
//                               ^ start of vars      ^next var


Answer 2:

简短的回答:

这就是你正在尝试做的,但它带来了一些安全和编码问题,所以不这样做。

$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()它应该是可用的。



Answer 3:

你的第一个变量declartion必须以启动? 而任何其他必须使用级联&

  • 单变量URL

    http://www.example.com/page?var=foo

  • 多变量URL

    http://www.example.com/page?var=foo&var2=bar



Answer 4:

很简单,但另一个人说你不通过网址栏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";
 }

就像我对会议的好东西之前说的是,他们可以在整个网站中进行,如果这种类型的代码放在头文件顺利通过上加载的所有页面调用,您可以使用简单的可变无论何时何地。 希望这可以帮助 :)



Answer 5:

您正在检查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";

您没有使用来连接你的字符串,如果您使用的是"行情



Answer 6:

使用与此。 使用&只要你想你可以把尽可能多的变量!

$url = "http://localhost/main.php?event_id=".$event_id."&email=".$email;


Answer 7:

<a href="deleteshare.php?did=<?php echo "$rowc[id]"; ?>&uid=<?php echo "$id";?>">DELETE</a>

传递多个变量的一个页面到另一个页面



Answer 8:

从php.net

警告超全局变量$_GET$_REQUEST已经被解码。 使用urldecode()中的元素, $_GET$_REQUEST可能有意想不到的和危险的结果。

链接: http://php.net/manual/en/function.urldecode.php

小心。



文章来源: Passing multiple variables to another page in url