我想用自己的代码创建一个带有许可证的系统,但是给了我一个错误
代码是这样的并且在lic.txt中是相同的1234567,有什么问题?
这是错误,如果我把@在fread dosent前面显示错误但是没有打开文件
警告:fread():在第7行的/home/u422978792/public_html/platforma/license/index.php中,长度参数必须大于0 许可证密钥无效
<?php
$fp = fopen("http://platforma.dar-project.org/license/lic.txt", "r");
stream_set_timeout($fp, 10);
$license = fread($fp, filesize($filename));
fclose($fp);
if ($license == "1234567") {
echo "Your license key is valid";
} else {
die("Invalid license key");
}
?>
答案 0 :(得分:4)
在使用if(filesize($my_file) > 0)
之前,您需要检查文件大小fread
。
例如:
<?php
$my_file = 'list.txt';
$handle = fopen($my_file, 'r');
$data = '';
if(filesize($my_file) > 0)
$data = fread($handle,filesize($my_file));
//---
echo $data;
//---
fclose($handle);
?>
答案 1 :(得分:0)
背后有一个原因
警告:fread():长度参数必须大于0
您的文件lic.txt
应为空。因此,fread()
无法从文件中读取任何内容。
因此您的情况会导致回显“无效的许可证密钥”。
答案 2 :(得分:0)
$filename
未定义。这样做:
$filename = "lic.txt";
不要忘记附加网址。我建议你把它作为一个不同的变量。
答案 3 :(得分:0)
如果文件不存在(可能是错误拼写或格式错误的URL),或者文件大小为0字节,PHP将返回警告和/或错误。
这是一个小函数,用于验证并返回字符串中的文件内容,或者返回“-1”,在这种情况下,您知道在阅读时出现问题。
$file_content = ReadtextFile( "file.txt" ); // caller
function ReadtextFile($FileName)
{
if (file_exists($FileName) )
{
$file_size = filesize($FileName);
if ($file_size == 0) return "";
}
else return "-1";
if (!$fp = fopen($FileName, "r")) return "-1";
$s01 = fread($fp, filesize($FileName));
fclose($fp);
return $s01;
}
答案 4 :(得分:0)
一个建议,我在运行opencart网站时遇到了这个问题, 我的解决方案是增加域的磁盘大小。或从域Cpanel的文件管理器中删除不必要的项目。
希望会有所帮助
答案 5 :(得分:0)
如果文件不存在,PHP将返回警告和/或错误,这是代码。
<?php
if(file_exists("webdictionary.txt"))
{
$myfile = fopen("webdictionary.txt", "r") or
die("Unable to open file!");
$len =filesize("webdictionary.txt");
echo "File content lenths:- $len .<br>";
echo "file containt.<br>";
for ($i=0;$i<$len;$i++)
{
echo fgetc($myfile);
}
echo "<br>";
fclose($myfile);
echo "$myfile";
}
else
{
return -1;
}
?>