gpt4 book ai didi

php - 尝试使用 php 的 "save as"和 javascript 制作 "file_put_contents"表单... "Filename cannot be empty"

转载 作者:行者123 更新时间:2023-11-28 20:52:28 24 4
gpt4 key购买 nike

我正在尝试使用 javascript 和 php 制作“另存为”功能。在我使用的html中:

<textarea id="filename" cols="20" rows="1"></textarea>    
<li class ="add" onclick="js:saveas()" >save</li>

然后使用内联 javascript,我这样做是为了获取文件名和动态生成的 dom:

<script>
function saveas() {
$.post('write.php', { name : $('#filename').val() });
$.post('write.php', { dom : $('html').html() });
}

</script>

然后在“write.php”中...

<?php
$name = urldecode($_POST['name']);
$dom = urldecode($_POST['dom']);
file_put_contents($name, $dom);

?>

但是控制台显示:

[30-Aug-2012 15:45:22] PHP Notice:  Undefined index: dom in /Users/J/Documents/test7/test7/write.php on line 3

[30-Aug-2012 15:45:22] PHP Notice: Undefined index: name in /Users/J/Documents/test7/test7/write.php on line 2

[30-Aug-2012 15:45:22] PHP Warning: file_put_contents() [<a href='function.file-put-contents'>function.file-put-contents</a>]: Filename cannot be empty in /Users/J/Documents/test7/test7/write.php on line 4

它创建了具有正确名称的文件,但它是空的,零字节。但是,如果我对文件名进行硬编码,如下所示:

file_put_contents('foo.html', $dom);

一切都按其应有的方式进行,尽管我仍然收到通知。关于我做错了什么有什么想法吗?

最佳答案

撇开安全问题不谈(您所做的事情安全),您正在向write.php发送两个不同的POST。

您想要在 1 个请求中发送两个值:

$.post('write.php', {
name : $('#filename').val(),
dom : $('html').html()
});

我是否提到过,您所做的事情安全?

关于php - 尝试使用 php 的 "save as"和 javascript 制作 "file_put_contents"表单... "Filename cannot be empty",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12204683/

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