使用AJAX和php将内容保存到文件

使用AJAX和php将内容保存到文件,php,jquery,ajax,file,save,Php,Jquery,Ajax,File,Save,大家好,谢谢大家。 我把下面的代码弄得乱七八糟,很长时间都没用了。实际上,整个代码应该只向服务器上的某个文件写入一个DIV,并为该文件命名。这似乎很容易,但实际上对我来说并不像我意识到的那样 以下是我目前的代码: HTML/PHP: <div id="data2save"> <table width="80%" border="1px" cellpadding="0" cellspacing="0" style="float:left" > <tbody>

大家好,谢谢大家。 我把下面的代码弄得乱七八糟,很长时间都没用了。实际上,整个代码应该只向服务器上的某个文件写入一个DIV,并为该文件命名。这似乎很容易,但实际上对我来说并不像我意识到的那样

以下是我目前的代码:

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">&nbsp;</td>
    <td bgcolor="#99CC00" value="2">&nbsp;</td>
    <td bgcolor="#99CC00" value="3">&nbsp;</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());
?>

07:00 - 08:00

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

$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";
 }


?>

$(“保存”).live(“单击”,函数(){
var userid=“”;
var kalenderwoche=“”;
var jahr=“”;
var bufferId=$(“#data2save”).html();
$.ajax({
类型:“POST”,
url:“saver2.php”,
数据:{user_ID:userid,kw:kalenderwoche,jj:jahr,ID:bufferId},
数据类型:“html”,
成功:函数(数据){
警报(“正常”);
}
});
}); 
以及处理数据以将其保存到文件的php文件,该文件似乎包含错误

saver2.php:

<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

$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);

?>


另外,我希望您不要将该代码提取到生产服务器,因为它充满了安全漏洞。

flcose在这种情况下无关紧要,因为它将被垃圾收集:我意识到fclose没有任何影响。别担心,我不会对任何敏感数据使用该代码。这只供私人使用。但如果它能工作那就太好了:)!fwrite返回false如果操作成功,我就不会得到“ok”消息的逻辑。那么你的错误在哪里?您是否无法在$.ajax中返回成功消息?实际上什么都没有发生。代码应该创建一个文件,但没有创建。当按下“save”(保存)按钮时,我在chrome控制台(匿名功能)第38行收到错误消息。但是第38行仅仅是$.ajax({我无法想象那一行有什么问题?$您可以记录php错误吗?$。由于php错误,ajax返回了一个错误。