我目前正在使用isset获取登录用户的用户名,以便将Excel文档保存到我的站点目录中的那个区域。现在我也使用第二个isset进行加密,因此用户不能简单地更改用户名isset并将文件保存到其他人的目录,除非他们知道他们的加密密钥以及每天或按下时更改。现在,当我尝试收到错误消息时,现在我不确定是否isset无法使用它或者是否是创建文档的文档源文件。任何人对如何解决这个问题都有任何想法?
错误
警告:fopen(USERS /".$用户名。“/ Documents / DocName.xls) [function.fopen]:无法打开流:没有这样的文件或目录 第90行的public_html / Site / PHP / PHPExcel / Shared / OLE / PPS / Root.php
致命错误:未捕获异常'PHPExcel_Writer_Exception' 消息'无法打开USERS /".$用户名。“/ Documents / DocName.xls。有可能 正在使用或受到保护。在 /public_html/Site/PHP/PHPExcel/Shared/OLE/PPS/Root.php:93堆栈跟踪: 0 /public_html/Site/PHP/PHPExcel/Writer/Excel5.php(226):PHPExcel_Shared_OLE_PPS_Root-> save('USERS /".$ Userna ...')#1 /public_html/Site/Create.php(124): PHPExcel_Writer_Excel5-> save('USERS /".$ Userna ...')#2 {main}抛出 第93行/public_html/SitePHP/PHPExcel/Shared/OLE/PPS/Root.php
PHP
<?php
if (isset($_GET['logout'])){
session_destroy();
header("Location: index.php");
exit();
}
else{
if (isset($_GET['Username'])){
if (isset($_GET['Encryption'])){
$Username = $_GET['Username'];
$Encryption = $_GET['Encryption'];
if (is_dir("USERS/".$Username) === true) {
if($Encryption == file_get_contents("USERS/".$Username."/Encryption.txt")){
$NoOfDocs = file_get_contents("USERS/".$Username."/NoOfDocuments.txt");
}
else{
header("Location: 201Error.php");exit();
}
}
else{
header("Location: 201Error.php");exit();
}
}
}
}
//Excel Transfer
$myFile=fopen("USERS/".$Username."/RiskAssessment/A1.txt","r") or exit("Can't open file!");
$A1 = fgets($myFile);
if ($Spo === false) $A1 = '';
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment/A2.txt","r") or exit("Can't open file!");
$A2 = fgets($myFile);
if ($Spo === false) $A2 = '';
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment/A3.txt","r") or exit("Can't open file!");
$A3 = fgets($myFile);
if ($Spo === false) $A3 = '';
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment/A4.txt","r") or exit("Can't open file!");
$A4 = fgets($myFile);
if ($Spo === false) $A4 = '';
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment/A5.txt","r") or exit("Can't open file!");
$A5 = fgets($myFile);
if ($Spo === false) $A5 = '';
fclose($myFile);
$Date = date("d/m/Y");
Include_once 'PHP/PHPExcel.php';
$objPHPExcel = new PHPExcel();
$activeSheet = $objPHPExcel->getActiveSheet();
$objPHPExcel->getActiveSheet()->setTitle('Risk Assessment');
$border = array(
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN
)
)
);
//Set Up
$activeSheet->setCellValue('A1','Risk Assessment');
$activeSheet->setCellValue('F1',$Date);
$objPHPExcel->getActiveSheet()->mergeCells('A1:E1');
$objPHPExcel->getActiveSheet()->mergeCells('F1:I1');
//Title
$title = array(
'font' => array(
'bold' => true,
'size' => 32,
));
$horizontalCenter = array(
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
)
);
$objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($title);
//Basic Information
$objPHPExcel->getActiveSheet()->mergeCells('B2:D2');
$objPHPExcel->getActiveSheet()->mergeCells('A3:I3');
$objPHPExcel->getActiveSheet()->mergeCells('A4:I4');
$objPHPExcel->getActiveSheet()->mergeCells('A5:I5');
$objPHPExcel->getActiveSheet()->mergeCells('A6:I6');
$objPHPExcel->getActiveSheet()->mergeCells('A7:I7');
$objPHPExcel->getActiveSheet()->mergeCells('A8:I8');
$objPHPExcel->getActiveSheet()->mergeCells('A9:I9');
$objPHPExcel->getActiveSheet()->mergeCells('A10:I10');
$objPHPExcel->getActiveSheet()->mergeCells('F11:G11');
$objPHPExcel->getActiveSheet()->mergeCells('H11:I111');
$objPHPExcel->getActiveSheet()->mergeCells('F12:G12');
$objPHPExcel->getActiveSheet()->mergeCells('H13:I13');
$activeSheet->setCellValue('B2','Risk No.1');
$activeSheet->setCellValue('A3','What are the hazards?');
$activeSheet->setCellValue('A4', $A1);
$activeSheet->setCellValue('A5','What are you already doing?');
$activeSheet->setCellValue('A6',$A2);
$activeSheet->setCellValue('A7','Do you need to do anything else to control this risk?');
$activeSheet->setCellValue('A8',$A3);
$activeSheet->setCellValue('A9','Action by who?');
$activeSheet->setCellValue('A10',$A4);
$activeSheet->setCellValue('F11','Action by when?');
$activeSheet->setCellValue('F12',$A5);
$activeSheet->setCellValue('H11','Done');
$activeSheet->setCellValue('H12',$A6);
//Document Settings
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('USERS/".$Username."/RiskAssessment/Risk_Assessment.xls');
?>
答案 0 :(得分:1)
更改此行
$objWriter->save('USERS/".$Username."/RiskAssessment/Risk_Assessment.xls');
到这个
$objWriter->save("USERS/".$Username."/RiskAssessment/Risk_Assessment.xls");
或者这个
$objWriter->save('USERS/'.$Username.'/RiskAssessment/Risk_Assessment.xls');
或者这个
$objWriter->save("USERS/$Username/RiskAssessment/Risk_Assessment.xls");
注意引号。