Abu*_*zzy 35 php variables url session
我正在使用这样的会话将一个变量传递到url中的另一个页面,但似乎我无法将另一个变量连接到同一个url并在下一页中成功检索它
第1页
session_start();
$event_id = $_SESSION['event_id'];
echo $event_id;
$url = "http://localhost/main.php?email=" . $email_address . $event_id;
Run Code Online (Sandbox Code Playgroud)
第2页
if (isset($_GET['event_id'])) {
$event_id = $_GET['event_id'];}
echo $event_id;
Run Code Online (Sandbox Code Playgroud)
echo $event_id
Undefined variable
在第2页显示错误,但如果我event_id
在$url
这里使用类似的
$url = "http://localhost/main.php?event_id=" . $event_id;
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我需要能够在url中使用这两个变量,以便第2页可以检索获取它们.
Jvd*_*erg 108
使用&符号&
将变量粘合在一起:
$url = "http://localhost/main.php?email=$email_address&event_id=$event_id";
// ^ start of vars ^next var
Run Code Online (Sandbox Code Playgroud)
Asa*_*aph 23
这是你想要做的,但它会带来一些安全性和编码问题,所以不要这样做.
$url = "http://localhost/main.php?email=" . $email_address . "&eventid=" . $event_id;
Run Code Online (Sandbox Code Playgroud)
查询字符串中的所有变量都需要进行urlencoded以确保正确传输.您永远不应该在网址中传递用户的个人信息,因为网址非常漏洞.Urls最终会出现在日志文件,浏览历史记录,反馈标题等方面.该列表会一直持续下去.
作为适当的URL编码,则可以使用任一来实现urlencode()
或http_build_query()
.其中任何一个应该工作:
$url = "http://localhost/main.php?email=" . urlencode($email_address) . "&eventid=" . urlencode($event_id);
Run Code Online (Sandbox Code Playgroud)
要么
$vars = array('email' => $email_address, 'event_id' => $event_id);
$querystring = http_build_query($vars);
$url = "http://localhost/main.php?" . $querystring;
Run Code Online (Sandbox Code Playgroud)
此外,如果$event_id
在您的会话中,您实际上不需要传递它以便从不同的页面访问它.只是打电话session_start()
,它应该可用.
你的第一个变量声明必须以一段?
时间开始,任何附加必须与a连接&