【发布时间】:2013-03-12 20:29:03
【问题描述】:
我有一个 Facebook 应用程序,部署在 Heroku 上。当有人填写表格时,此应用程序会将一些用户数据收集到 CSV 中。但是,我对这个 CSV 有疑问。它每天都会被彻底清除(只剩下标题)。
我将提供用于操作 CSV 的 PHP 代码:
这是我实际操作 CSV 并将数据写入其中的代码:
<?php
date_default_timezone_set('Europe/Bucharest');
$error = 0;
if($_GET["name"] == ""){
$error = 2;
}
else if($_GET["email"] == ""){
$error = 3;
}
else if(!filter_var($_GET["email"], FILTER_VALIDATE_EMAIL)){
$error = 4;
}
if($error == 0){
$list = array($_GET["name"], $_GET["email"],date("d-m-Y H:i:s",time()));
$fp = fopen('users.csv', 'a');
fputcsv($fp, $list);
fclose($fp);
}
header( 'Location: index.php?signedrequest='.$_GET["signedrequest"].'&errors='.$error );
?>
这是用于下载 CSV 的管理页面的代码:
<div id="admintab">
<p>
<iframe name="myframe_targ" style="display:none;"></iframe>
Download : <a href="users.csv" target="myframe_targ">users.csv</a>
</p>
</div>
我提到这个应用程序托管在 Heroku 上,自周一以来我没有向它推送任何数据。我最后的日志显示最后一次推送是在星期一 13:21。但是,我只能从今天开始以 CSV 格式查看数据。我也检查了其他日子,还有其他意见。
你有什么想法,为什么会这样? Heroku 或我的 PHP 代码有问题吗?
提前致谢!!
【问题讨论】:
-
听起来您应该将数据存储在数据库中。
-
将数据存储到数据库中会让我在 heroku 上花费一些钱,或者至少要确认我的付款方式,我不同意这样做。写入 CSV 有什么问题?
-
我相信 Heroku 上的数据是暂时的。这就是他们扩展网络的方式。您的应用程序可能会在数十或数百台机器上进行配置,这些计算机可能会根据需要重新配置或移动。您没有拥有一台机器。
-
我是说你永远不能指望任何机器上的瞬态数据。它可以在任何时候出于任何原因在不通知的情况下移动。所以,是的,一定要试试更好的存储解决方案。
标签: php html facebook csv heroku