gpt4 book ai didi

php - 在 PHP 中读取文本文件

转载 作者:可可西里 更新时间:2023-11-01 08:37:49 25 4
gpt4 key购买 nike

我的代码-

$filename = basename($_FILES['file']['name']);
$ext = substr($filename, strrpos($filename, '.') + 1);
if (($ext=="txt")
&& ($_FILES["file"]["size"] < 2000000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{$newname = 'news/'.$filename;
move_uploaded_file($_FILES['file']['tmp_name'],$newname);
$fileread = $newname;
//reading a file
$file = fopen($fileread, "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
{
//inserting each data into table
$insert = "insert into $name (serial,data,used) values('','fgets($file)','0')";
$query = mysqli_query($connect,$insert);
if($query)
{
echo "cool";
}
}

因此用户上传包含每行数据的文本文件。我想将数据插入数据库直到执行查询。

插入数据库的是 fgets(Resource id #6) - 这一直持续到我停止......它是不受控制的......

最佳答案

  $insert = "insert into $name (serial,data,used) values('','fgets($file)','0')";

您正在将文字文本 fgets($file) 插入到您的数据库中,因为它嵌入在父字符串中。相反,你会想要这样的东西,它也(顺便地)消除了 sql 注入(inject)漏洞:

 $string = fgets($file);
$string = mysql_real_escape_string($string);
$insert = "insert into ... values ( ..., '$string', ...)";

为什么要逃避呢?我不知道那个文本文件里有什么,但是如果任何文本包含一个单引号,它会导致特定的插入失败并出现 SQL 语法错误,现在你在数据库。

关于php - 在 PHP 中读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5599871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com