【发布时间】:2019-10-14 23:00:52
【问题描述】:
要求:使用QRBOT-app扫描手机上的条码,并将扫描的号码提供给网站。 问题:我打开了一个会话 (1),从这里我打开应用程序(请参阅 ScanBardcode.php),我扫描并且应用程序返回到包含所需参数的回调 URL。但是我确实希望它会重新使用它的会话,它会创建一个新的会话 (2)。有人能帮我吗?它确实有两个会话都处于活动状态,并且两个页面都继续使用它自己的会话。我只能在我的手机上测试它,我检查过每次都在使用它(initial-1和callback-2是同一个浏览器) 我已经尝试过的: 1.在回调URL中传递sessionID(QRBOT不允许参数) 2.设置Session.auto_start为1
ScanBarcode.php
<?php
include_once('../../config.inc.php'); //contains DB connection details and other settings
include_once($fullurl . '../../admin/includes/sessie.inc.php'); //generates session
echo "SessionID=". session_id() . "!";
$_SESSION['BarCode'] = "VoorraadTellen";
echo "Wat gaan we doen? " . $_SESSION['BarCode'] . "</br></br>";
//URL to open qrbot.
echo "<a href=https://qrbot.net/x-callback-url/scan?x-success=https%3A%2F%2Filonashairstyling.nl/2016UAT/module/Ilonas_admin/ScanBarcodeCallBack.php?".">click</a>"
?>
ScanBarcodeCallBack.php
<?php
$source = $_GET['x-source'];
$content = $_GET['content'];
$format = $_GET['format'];
include_once('../../config.inc.php');
include_once($fullurl . '../../admin/includes/sessie.inc.php');
echo "Wat gaan we doen? " . $_SESSION['BarCode'] . "</br></br>";
echo "SessionID=". session_id() . "!";
echo $source . $content . $format;
// HERE I WRITE TO THE DB.
?>
sessie.inc.php
<?php
$a = session_id();
if(empty($a))
{
session_start();
}
if(isset($_SESSION['sgebruiker']))
{
$now = time();
if($now - $_SESSION['stijd'] > $_SESSION['maxidle'])
{
$_SESSION = array();
session_destroy();
}
else
{
$_SESSION['stijd'] = $now;
}
}
elseif(isset($_COOKIE['login_cookie']))
{
//Check against db and set cookie.
}
?>
当我在 URL 中添加 sessionId 作为参数时添加屏幕截图: enter image description here
更新到 ScanBarcode.php
`echo "<a href=https://qrbot.net/x-callback-url/scan?x-success=https%3A%2F%2Filonashairstyling.nl/2016UAT/module/Ilonas_admin`/ScanBarcodeCallBack.php?s=".htmlspecialchars(session_id()).">click</a>"
【问题讨论】:
-
会话与特定应用程序相关联。浏览器和 QRBOT 应用程序都有自己的会话 cookie。
-
@Barmar 感谢您的回复。你有什么建议可以解决这个问题吗?
-
我认为将会话 ID 作为 URL 参数传递应该可以。展示你是如何尝试这样做的。这是documentation
-
@Barmar 我已将 Barcode.php 中的 URL 更新为回显“qrbot.net/x-callback-url/…>”。当我运行测试时,我在应用程序中收到错误(看起来它正在尝试添加两次参数)
-
将代码放入问题中,以便正确格式化。
标签: php session session-cookies