我試圖將會話變量傳遞到在我的PHP腳本中打開的新選項卡,以便可以以相同的順序多次循環腳本。但是,$ _SESSION數據似乎沒有傳遞到新選項卡。將會話變量傳遞到新選項卡
下面是從原來的標籤代碼:
if ($dir = opendir($filefolder)) {
$fileCount = 0;
while (($file = readdir($dir)) !== false) {
echo "filename: " . $file . " " . filemtime($filefolder . $file);
$fileInfo = new SplFileInfo($file);
if (filemtime($filefolder . $file) > $lastcheck &&*/ $fileInfo->getExtension() == '7z') {
copy($filefolder . $file, $workingFolder . $file);
$_SESSION{'filename'} = $file;
$_SESSION['filepath'] = $workingFolder . $file;
?>
<script>
workingWindow = window.open("<?php xecho($set->url); ?>/?module=upload&mode=automatic&step=0");
</script>
<?php
$fileCount++;
}
}
這裏是新標籤的代碼:
$filefolder = $_SESSION['filepath'];
$filename = $_SESSION['filename'];
$filepath = $filefolder . $filename;
,我發現了新的選項卡上的錯誤是:
Notice: Undefined index: filepath in C:\xampp\htdocs\datascrape\lib\functions\modules\upload\automatic\automaticStep0.php on line 22
Notice: Undefined index: filename in C:\xampp\htdocs\datascrape\lib\functions\modules\upload\automatic\automaticStep0.php on line 23
會話是否開始?我只問b/c,如果不是,會話變量還沒有初始化,而且如果會話還沒有持久(提交),那麼新的設置值不可用。這就是爲什麼在使用這些值之前,您需要首先驗證對會話變量的期望。注意腳本的併發性。 – hakre
是的,會話已啓動。實際上,啓動多個會話是因爲它會將會話啓動從前一頁中抽出,並且每次頁面加載都會被調用。 (我意識到這一點,因爲我得到了多個會話已經開始在上面的頁面上發佈通知) –
並且整個會話在第二個腳本中是空的?要在作業完成之前提前完成會話,請使用http://php.net/manual/en/function.session-write-close.php - 如果解決了您的問題,您可以嘗試,但我有點猜測 – hakre