使用AJAX和php将内容保存到文件
问题描述:
您好,非常感谢。 我搞乱了下面的代码,喜欢年龄,并没有得到它的工作。实际上,整个代码只应该将DIV写入服务器上的某个文件并为该文件命名。看起来很容易 - 但实际上并不像我意识到的那样。使用AJAX和php将内容保存到文件
这里是我到目前为止的代码:
HTML/PHP:
<div id="data2save">
<table width="80%" border="1px" cellpadding="0" cellspacing="0" style="float:left" >
<tbody>
<tr>
<td style="border-top:1px solid #000;border-left:1px solid #000;border-bottom:1px solid #000;">07:00 - 08:00</td>
<td bgcolor="#99CC00" value="1"> </td>
<td bgcolor="#99CC00" value="2"> </td>
<td bgcolor="#99CC00" value="3"> </td>
</tr>
</tbody>
</table>
</div>
<br>
<input type="button" value="save" id="save">
<?php
$userid = 10;
$kalenderwoche = date('W', time());
sprintf("%02d",$kalenderwoche);
$jahr = date('Y', time());
?>
AJAX:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script>
$("#save").live("click",function() {
var userid = "<?php echo $userid ?>";
var kalenderwoche = "<?php echo $kalenderwoche ?>";
var jahr = "<?php echo $jahr ?>";
var bufferId =$("#data2save").html();
$.ajax({
type : "POST",
url : "saver2.php",
data: {user_ID: userid , kw: kalenderwoche , jj : jahr , id : bufferId},
dataType: "html",
success: function(data){
alert("ok");
}
});
});
</script>
和处理数据,保存它的PHP文件到一个文件,似乎包含错误。
saver2.php:
<?php
$kalenderwoche = $_POST['kw'];
$userid = $_POST['user_ID'];
$jahr = $_POST['jj'];
$data = $_POST['id'];
if (!file_exists($userid.'/')) {
mkdir($userid.'/', 0755, true);
}
$copyname = $userid. '/' .$userid. '_' .$jahr. '_' .$kalenderwoche. '.html';
$handle = fopen($copyname , 'w+');
if($handle)
{
if(!fwrite($handle, $data))
echo "ok";
}
?>
好了,这就是全部。我希望任何人都尖锐眼睛,因为我没有发现问题。谢谢
答
不应该先关闭文件吗?另外,fwrite在错误或文件长度的情况下返回false。 所以!fwrite()
如果写入了某些内容(或0),则返回false。
<?php
$kalenderwoche = $_POST['kw'];
$userid = $_POST['user_ID'];
$jahr = $_POST['jj'];
$data = $_POST['id'];
if (!file_exists($userid.'/')) {
mkdir($userid.'/', 0755, true);
}
$copyname = $userid. '/' .$userid. '_' .$jahr. '_' .$kalenderwoche. '.html';
$handle = fopen($copyname , 'w+');
if($handle)
{
if(fwrite($handle, $data))
echo "ok";
}
fclose($handle);
?>
此外,我希望你不会将代码提取到生产服务器,因为它充满了安全漏洞。
flbs在这种情况下无关紧要,因为它会被垃圾收集:http://*.com/questions/12143343/does-php-close-the-file-after-the-file-handler-is - 垃圾收集 – bcmcfc 2014-10-04 09:25:31
fclose没有影响我意识到。不用担心,我不会使用该代码来处理任何敏感数据。它只是供私人使用。但它会很好,如果它的工作:) – thevibe 2014-10-04 09:52:31
!如果操作成功,fwrite返回false,我没有得到“ok”消息的逻辑。所以你的错误在哪里?它是否会在$ .ajax中获得成功消息? – 2014-10-04 09:54:52