Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在服务器上创建文本文件_Php_Mysql - Fatal编程技术网

PHP在服务器上创建文本文件

PHP在服务器上创建文本文件,php,mysql,Php,Mysql,在我的php应用程序中,我想创建一个文本格式的错误日志,所以尝试了这样的方法,在我的本地机器上运行良好 if(!$mail->Send()) { echo "Message could not be sent. <p>"; echo "Mailer Error: " . $mail->ErrorInfo; $stringData = "Error Info: ".$mail->ErrorInfo."\t\t"; $stringData .= "Email t

在我的php应用程序中,我想创建一个文本格式的错误日志,所以尝试了这样的方法,在我的本地机器上运行良好

if(!$mail->Send())
{
 echo "Message could not be sent. <p>";
 echo "Mailer Error: " . $mail->ErrorInfo;
 $stringData = "Error Info: ".$mail->ErrorInfo."\t\t";
 $stringData .= "Email to reciepient \t Regnumber: ".$RegNo." \t  Apllicant Name: ".$ApplicantName." Failed --- end ----";


 $fp = fopen($_SERVER['DOCUMENT_ROOT']."/lib/email_errorlog.txt","wb");
 fwrite($fp,$stringData);
 fclose($fp);

 exit;
  }
if(!$mail->Send())
{
echo“无法发送消息。”;
回显“邮件错误:”.$mail->ErrorInfo;
$stringData=“错误信息:”.$mail->ErrorInfo.\t\t”;
$stringData.=“发送给接收者的电子邮件\t注册号:“..$RegNo.”\t应用程序名称:“..$applicationName.”失败---结束----”;
$fp=fopen($_SERVER['DOCUMENT_ROOT'].“/lib/email_errorlog.txt”,“wb”);
fwrite($fp,$stringData);
fclose($fp);
出口
}

我已经在中看到了讨论,但它对我不起作用。问题是,没有显示错误,但没有创建文本文件。需要在服务器上设置任何权限吗

您必须确保:

  • 文件夹/lib存在于文档根目录中
  • webserver进程
    具有写入该文件夹的权限

如果使用ftp帐户创建文件夹,则Web服务器进程将具有访问权限。您可以将权限设置为777,但每个人都可以访问。最好将权限设置为770,并将文件夹组设置为Web服务器组id。

在尝试创建文件之前,您可以检查文件(或父目录)是否正确

根据
fopen()

成功时返回文件指针资源,错误时返回FALSE

因此,您可以使用此+或构建正确的文件写入代码:

$fp = fopen($_SERVER['DOCUMENT_ROOT']."/lib/email_errorlog.txt","wb");
if( $fp === false){
    // Notification about failed opening
    echo "Cannot open file: " + $php_errormsg; // Not that wise in production
    exit();
}

fwrite($fp,$stringData);
fclose($fp);
exit();

但是,如果配置正确,所有错误都应该出现在错误日志中。

是的,问题在于文件夹权限,现在我更正了,工作正常。。谢谢