首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP fputcsv -没有创建或附加到

问PHP fputcsv -没有创建或附加到
EN

Stack Overflow用户
提问于 2014-04-01 17:55:06
回答 1查看 585关注 0票数 1

嗨,堆叠溢出社区!

我需要一点帮助,知道我在哪里出了问题。

情境:在我正在建设的一个网站上,我有一个表格的部分,用户填写的名称,食物选择和过敏。我在IIS 7上使用php5.5,并有一个表单提交给form.php的php页面。一旦他们填写了表单并提交,它就会将它们带到php页面,在该页面上表示感谢您的提交,等待5秒,然后将它们返回到上一页。

我已经确认,通过将这些值和键输出到变量中并在屏幕上回显,以及使用var_dump($_POST);,所发布的值和键都没有问题。

这是我的表单代码:

代码语言:javascript
复制
<form action="form.php" method="post">
    <p>First Name: <input type="text" name="fname"></p>
    <p>Last Name: <input type="text" name="lname"></p>
    <p>Food selection:
        <select name="food">
            <option value="no_selection">---Please Select---</option>
            <option value="chicken">Chicken</option>
            <option value="beef">Beef</option>
            <option value="corn">Corn</option>
        </select>
    </p>
    <p>Allergies:<input type="text" name="allergies"></p>
    <hr />
    <input type="submit" value="Submit" />
</form>

下面是输出到CSV的PHP代码:

代码语言:javascript
复制
<?php

  $fname = $_POST['fname'];
  $lname = $_POST['lname'];
  $fullname = $_POST['fname']." ".$_POST['lname'];
  $food = $_POST['food'];
  $allergies = $_POST['allergies'];

  $currentData = array($fname,$lname,$food,$allergies);

  $file=fopen('food.csv', 'a');
  fputcsv($file, $currentData);
  fclose($file);
?>

没有创建或写入任何文件,当我手动创建该文件并将其放在dir中时,它仍然不会写入该文件,并且它对该文件具有完全的权限。我已经检查了服务器,这也不是文件锁问题。

任何帮助都是非常感谢的!如果还有什么需要我写信帮忙的话,请告诉我。

提前感谢!

用答案编辑:

太棒了!感谢Darragh对is_writable()函数的推荐。这帮助我理解了我作为php用户(IIS中的IUSR)所做的和没有权限写入的内容。

还感谢greg0ire和Spechal关于使用错误日志设置进行调试的技巧。

答案肯定是权限问题,因为我将IUSR作为文件夹根的读/写,但是继承被关闭,因此子文件夹和文件无法访问。

除了权限问题之外,Spechal还提到在编写数据之前将数据内爆,这是一个很好的方法(但对于我来说并不是必需的,因为fputcsv完成了与逗号分离有关的所有工作),特别是如果您想要更改分隔符。

感谢大家的快速和有益的回应!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-01 18:14:32

关于开发,请检查以下内容:

在php.ini:display_errors = On error_reporting = E_ALL | E_STRICT中

您需要检查以确保您要写入的路径实际上是可写的。您应该使用绝对路径而不是相对路径。

您还可能希望在编写$currentData之前用逗号将其内爆。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22793288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档