我在Justhost托管的Wordpress网站上有一个日记应用程序,几周前运行良好,但现在它不允许我添加日记条目。在keyup上,它应该动态地将我在textarea中写入的内容发送到mysql数据库中。我知道我的数据库连接很好,因为textarea确实显示了我之前编写的所有内容。我试过禁用所有的插件,这没有帮助,所以我怀疑这是由Wordpress或我的托管服务提供商引起的。我已经尝试过.htaccess的各种调整建议,但每次在textarea中键入一个键时,我的控制台仍会出现以下错误:
错误:POST http://myfullname.com/wp-content/themes/myportfolio/updatejournal.php 403(禁止)
以下是文件:
页面journal.php
<?php
session_start();
include("connection.php");
if (!$_SESSION['id']) exit( wp_safe_redirect( home_url() . '/privatejournal' ) );
$query="SELECT journal FROM users WHERE id='".$_SESSION['id']."' LIMIT 1";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_array($result);
$journal = $row['journal'];
?>
<!DOCTYPE html>
<head>
</head>
<body data-spy="scroll" data-target=".navbar-collapse">
<div class="container contentContainer" id="topContainer">
<div class="row">
<div class="col-md-6 col-md-offset-3" id="topRow">
<textarea class="form-control"><?php echo $journal; ?></textarea>
</div>
</div>
</div>
<script>
$(".contentContainer").css("min-height", $(window).height());
$("textarea").css("height", $(window).height()-110);
$("textarea").keyup(function() {
$.post("<?php bloginfo('template_url'); ?>/updatejournal.php", {journal:$("textarea").val()} );
});
</script>
</body>
</html>
updatejournal.php
<?php
session_start();
include("connection.php");
$query = "UPDATE users SET journal='".mysqli_real_escape_string($link, $_POST['journal'])."'WHERE id='".$_SESSION['id']."' LIMIT 1";
mysqli_query($link, $query);
?>
我在这个问题上发现的各种帖子都说这可能是由mod_security引起的,但是他们建议的解决方法都没有帮助。这是我的.htaccess文件:
# Use PHP5.4 as default
AddHandler application/x-httpd-php54 .php
# Changed PHP handler from application/x-httpd-php54 to application/x-httpd-phpbeta on Mon Nov 23 12:39:39 MST 2015.
# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{REQUEST_URI} ^/(wordpress|folder1|folder2)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
# Fix 403 errors on existing directories; WordPress overrides.
RewriteCond %{REQUEST_URI} ^/(wordpress)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
答案 0 :(得分:0)
位于wp-content文件夹中的.htaccess文件已损坏。我进入文本编辑器并清空了文件。 Wordpress最终自动重写了内容。现在一切都很好。