我有以下jQuery click()函数需要通过ajax将表单数据发送到数据库.
$("#maandbutton").live('click', function(event) {
$.get("ajax.php",{"action":"addm","maandtekst":$('#maandtekstinput').val(),"maand":$('#maandselect').val(),"bovenonder":$('#bovenonder').val()},function(msg){
$("#maandtable").append($('<tr><td class="left">' + $('#maandtekstinput').val() + '</td><td class="right">' + $('#bovenonder').val() + '</td><td class="right">' + $('#maandselect').val() + '</td><td class="icon"></td></tr>'));
$('table.zebra tr').removeClass('odd');
$('table.zebra tr:odd').addClass('odd');
$('#maandtekstinput').val('');
$('#maandselect').val('');
$('#bovenonder').val('');
$("#maandbutton").button({ disabled: true });
})
});
Run Code Online (Sandbox Code Playgroud)
问题是如果textarea #maandtekstinput中有很多文本,只有append正在工作,但数据没有到达我的sql数据库.
我的ajax.php脚本有一个简单的switch语句.
$maandtekst = htmlspecialchars($_GET['maandtekst']);
switch($_GET['action'])
{
case 'addm':
$query = "INSERT INTO `site_maandteksten` (`id`, `maand`, `bovenonder`, `tekst`) VALUES (NULL, '".$maand."', '".$bovenonder."', '".htmlspecialchars_decode($maandtekst)."')";
$result = mysql_query($query) or die(mysql_error());
break;
}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么我的脚本不会将我的textarea文本传递给数据库.在我的数据库中,它是一个具有5000个字符空间的长文本字段
我有以下设置:
两个用户:example和git
在里面,/home/git/repositories/project.git/hooks/post-receive我有一个结账/home/example/public_html/dev
因此,每次git推送,项目文件都会发布到http://dev.example.com
问题是,结帐是从git用户执行的,因此dev目录中的所有文件都归git:git所有,权限为600.
因此,访问http://dev.example.com将不会显示该页面.因为用户apache无法访问它.
有人建议在post-receive钩子里面做一个chown.那么,用户git需要是sudo.所以我添加了用户git作为sudoer.接下来的问题是" 对不起,你必须有一个tty来运行sudo "所以我评论#Default requiretty,但遇到下一个问题.
让用户git成为一个sudoer并不是我想要的(不安全)所以我把所有东西都改回了正常状态.
还有其他更安全的选择吗?
可能让post-receive hook触发dev文件夹里面的php文件,这个php文件会进行结账吗?
或者我可以通过apache kan在浏览器中显示它们的方式将dev文件夹符号链接到/ home/git中的文件夹吗?