PHP文件的权限问题

时间:2012-07-12 19:05:46

标签: php javascript ajax

我正在使用CMS。当我把HTML代码放在它的工作时,当我把简单的PHP代码如“hello World”或者当我尝试连接到数据库时,它可以工作。但是,当我放置更复杂的PHP代码(如“phpinfo()”或任何SQL语句,如"$reponse = $bdd->query('SELECT * FROM insription_14juin');"时,它不起作用。我使用fiddler获得的消息是

 403 Forbidden
 You don't have permission to access /admin/modules/gestion_articles/updateContenu.php
on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

经过多次测试后,我认为JavaScript文件正在尝试将信息加载到PHP文件中,显然当PHP代码很复杂时,JavaScript文件无权访问PHP文件。

这是JavaScript文件:

  $(function() {
$('#savemodif').click(function() {
    $('#formModif').append('<img src="images/ajax-loader.gif" alt="Enregistrement en cours..." id="loadingImg" />');

            var contenu ="";
    var type = $('#type').val();
    if(type == '0')
    {
                tinyMCE.triggerSave();
                contenu = $('#contenu').val();
                contenu = encodeURIComponent(contenu);
    }
    else
    {
                contenu = $('#contenu').val();
                contenu = encodeURIComponent(contenu);
    }

    /* Récupération d'infos nécessaires à la mise à jour */
    var id = $('#idcontenu').val();
    var oldtitre = $('#oldtitre').val();

    /* Récupération des mises à jours */
    var titre = $('#titre').val();
    var date = $('#date').val();
    var publie = 0; if($('#publie').is(':checked')) publie = 1;
            var diapo = '0'; if($('#diapo').is(':checked')) diapo = '1';
    var prive = 0; if($('#prive').is(':checked')) prive = 1;

    $.ajax({
        url: 'modules/gestion_articles/updateContenu_test.php',
        type: 'POST',
        data: 'id='+encodeURIComponent(id)
            + '&oldtitre='+encodeURIComponent(oldtitre)
            + '&titre='+encodeURIComponent(titre)
            + '&date='+encodeURIComponent(date)
            + '&contenu='+contenu
            + '&publie='+encodeURIComponent(publie)
            + '&diapo='+encodeURIComponent(diapo)
                            + '&prive='+encodeURIComponent(prive),

        success: function(result) {
            $('#result').html(result);
            $('#loadingImg').fadeOut(1000, function() {
                $(this).remove();
            });
        }
    });

    $('#oldtitre').attr('value',titre);

    return false;
});
  });

我已经尝试在cpanel中更改权限,但它不起作用。我重命名了每个htaccess文件,它不起作用。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:1)

问题终于解决了,它是关于modsecurity的。技术人员告诉我,modsecurity存在限制。如果您遇到同样的问题,请与您的提供商联系。

我上面发布的代码现在完美无缺。

答案 1 :(得分:0)

您的问题是文件系统的权限。我假设你不是服务器管理员。

向您的服务器管理员发送一封电子邮件,说明正在发生的事情,他会调查并更改权限。

答案 2 :(得分:0)

这是一个黑暗中的镜头,但每当页面的服务器文件夹中缺少占位符文件时,我在我的cms上遇到类似的消息。像index.php一样。

另一件事可能是添加

async: false,

到你的ajax调用,以确保它与适当的数据一起运行。