在设置mod_security后,我得到了很多误报[??].我只是在检测中运行它,所以没有任何问题,但这些过滤器将在我需要它生效后开始阻止请求.
我不敢100%理解这些过滤器的重要性,我几乎在每个域上获得了100个,所有请求看起来都合法.
Request Missing a User Agent Header
Request Missing an Accept Header
Run Code Online (Sandbox Code Playgroud)
这里最好的事情是什么?我应该禁用这些过滤器吗?我可以将严重性设置得更低,以便不会阻止请求吗?
这是一个完整的条目
[22/Nov/2011:21:32:37 --0500] u6t6IX8AAAEAAHSiwYMAAAAG 72.47.232.216 38543 72.47.232.216 80
--5fcb9215-B--
GET /Assets/XHTML/mainMenu.html HTTP/1.0
Host: www.domain.com
Content-type: text/html
Cookie: pdgcomm-babble=413300:451807c5d49b8f61024afdd94e57bdc3; __utma=100306584.1343043347.1321115981.1321478968.1321851203.4; __utmz=100306584.1321115981.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=XXXXXXXX%20clip%20ons
--5fcb9215-F--
HTTP/1.1 200 OK
Last-Modified: Wed, 23 Nov 2011 02:01:02 GMT
ETag: "21e2a7a-816d"
Accept-Ranges: bytes
Content-Length: 33133
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
--5fcb9215-H--
Message: Operator EQ matched 0 at REQUEST_HEADERS. [file "/etc/httpd/modsecurity_crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf"] [line "47"] [id "960015"] [rev "2.2.1"] [msg "Request Missing an Accept Header"] [severity …Run Code Online (Sandbox Code Playgroud) 我正在尝试获取这些表单控件上的按钮:
看起来像这个例子中的控件:
基本上我试图使用Bootstrap3 [Bootstrap 3.1.1]表单控件重新创建Bootsnipp示例.
这是HTML:
<div class="container">
  <div class="row">
    <div class="controls"> 
      <div class="entry form-group col-sm-4">
        <div class="input-group">
          <input class="form-control" name="fields[]" type="text" placeholder="Type something">
          <button class="btn btn-success btn-add" type="button"><span class="glyphicon glyphicon-plus"></span></button>
        </div>
      </div>
      <div class="entry form-group col-sm-4">
        <div class="input-group">
          <input class="form-control" name="fields[]" type="text" placeholder="Type something">
          <button class="btn btn-success btn-add" type="button"><span class="glyphicon glyphicon-plus"></span></button>
        </div>
      </div>
      <div class="entry form-group col-sm-4">
        <div class="input-group">
          <input class="form-control" name="fields[]" type="text" placeholder="Type something">
          <button class="btn btn-success btn-add" type="button"><span class="glyphicon glyphicon-plus"></span></button>
        </div>
      </div>
    </div>
  </div>
</div> …Run Code Online (Sandbox Code Playgroud) 我已经尝试了几种不同的解决方案[在堆栈交换中找到]但似乎无法让我的示例正常工作.
如何设置此表以便单击"可点击"TR显示之后的所有隐藏行?
这是[浓缩]表,注意它的bootstrap3'悬停'类型:
<table class="table table-condensed table-hover dashboard">
    <thead>
        <tr><th></th><th></th></tr>
    </thead>
    <tbody>
        <tr class='clickable' id="68" >
            <td>visible row</td>
            <td> </td>
        </tr>
        <tr class="collapse out budgets" id="68collapsed">
            <td>hidden row</td>
            <td> </td>
        </tr>
        <tr class="collapse out budgets" id="68collapsed">
            <td>hidden row</td>
            <td> </td>
        </tr>
        <tr class='clickable' id="69" >
            <td>visible row</td>
            <td> </td>
        </tr>
        <tr class="collapse out budgets" id="69collapsed">
            <td>hidden row</td>
            <td> </td>
        </tr>
        <tr class="collapse out budgets" id="69collapsed">
            <td>hidden row</td>
            <td> </td>
        </tr>
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
这里是我用来尝试揭示隐藏行的JS.
$(".clickable").click(function() {
    var id = $(this).attr('id');
    var target = '#'+id+'collapsed';
    if($(target).hasClass("out")) {
        $(target).addClass("in"); …Run Code Online (Sandbox Code Playgroud) 如何使用 jquery 在表单中重置多个选择框?
到目前为止,我有这个,它重置了除选择之外的所有内容。
$('button#reset').click(function(){
    $form = $('button#reset').closest('form');
    $form.find('input:text, input:password, input:file, select, textarea').val('');
    $form.find('input:radio, input:checkbox').removeAttr('checked').removeAttr('selected');
    $form.find('select').selectedIndex = 0;
  });
Run Code Online (Sandbox Code Playgroud)
添加了一些标记:
<form id="form" name="form" method="post" class="form" role="form" action="inventory-search" enctype="multipart/form-data">
    <div class="form-group">
        <label for="grade">Grade</label>
        <select name="grade" class="form-control input-sm" onchange="this.form.submit();">
            <option value="">Any</option>
            <option value="opt1">opt1</option>
            <option value="opt2" selected="selected">opt2</option>
        </select>
    </div>
    <!-- there are 6 more select controls -->
    <div class="form-group">
        <label> </label>
        <button type="submit" name="search" id="search" value="search" class="btn button-sm btn-primary">Search</button>
    </div>
    <div class="form-group">
        <label> </label>
        <button type="reset" name="reset" id="reset" …Run Code Online (Sandbox Code Playgroud) 我正在尝试让hybridauth与modx一起使用,但是在使其完全正常工作方面遇到很多麻烦,我将其作为我的测试脚本:
<?php
$config = MODX_BASE_PATH . '/hybridauth/config.php';
require_once( MODX_BASE_PATH . '/hybridauth/Hybrid/Auth.php' );
$provider_name = 'Google';
try{
$hybridauth = new Hybrid_Auth($config);
$adapter = $hybridauth->authenticate($provider_name);
$social_profile = $adapter->getUserProfile();
$social_profile->provider = $provider_name;
print_r($_SESSION);
}catch( Exception $e ){
    // Display the recived error,
    // to know more please refer to Exceptions handling section on the userguide
    switch( $e->getCode() ){
      case 0 : echo "Unspecified error."; break;
      case 1 : echo "Hybriauth configuration error."; break;
      case 2 : echo "Provider not properly configured."; break;
      case …Run Code Online (Sandbox Code Playgroud) 当我尝试将数据插入自定义表并且插入失败时,如何显示 mysql 抛出的错误?
例如,下面的一段代码应该(将会)因 SQL 错误而失败。
$insert = "some insert sql statement that will fail";
$myquery = $modx->query($insert);
    if(!$myquery){
        echo 'error occurred! <br>';
    }
Run Code Online (Sandbox Code Playgroud)
如何返回错误的实际情况[即列不匹配、唯一 ID 存在等]?
我有一个表单提交的数组:
Array
(
    [form_key] => 9juTLit5qQbaBb98
    [sku] => Array
        (
            [0] => AC25
            [1] => AC30
            [2] => AC31
        )
    [product] => Array
        (
            [0] => 95
            [1] => 100
            [2] => 101
        )
    [related_product] => Array
        (
            [0] => 
            [1] => 
            [2] => 
        )
    [qty] => Array
        (
            [0] => 2
            [1] => 2
            [2] => 2
        )
)
Run Code Online (Sandbox Code Playgroud)
有没有一种更好的方式来对它进行排序?
Array
(
    [form_key] => 9juTLit5qQbaBb98
    [0] => Array
        (
            [sku] => AC25
            [product] => 95
            [qty] => 2
        ) …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个脚本,将 modx 用户导出到 CSV,相当简单的东西,但在 modx 中,用户可以属于许多组。只需加入 modx_member_groups 表就会为不同的用户生成多行。
我想做的是以某种方式重写下面的查询,以便 modx_member_groups 上的联接将返回用户所属的组 id 的列表或数组。
例如,我希望返回的数据如下所示:
user_group | id | username | ...the rest
1,3,5,7    | 12 | johndoe  | ...
Run Code Online (Sandbox Code Playgroud)
这是我的疑问。
SELECT mg.user_group, u.id, u.username, ua.*
FROM modx_users u 
LEFT JOIN modx_user_attributes ua ON u.id = ua.internalKey 
LEFT JOIN modx_member_groups mg ON u.id = mg.member
LIMIT 10
Run Code Online (Sandbox Code Playgroud)
理想情况下,以某种方式选择实际的组名称作为列会很棒。然后在组名列中强制输入 true 或 false。
更新
我在 shtever 回答后更新了查询,但存在性能问题: - GROUP_CONCAT 返回 BLOB 类型,因此我必须转换它,将 group_concat_max_length 设置为低于 512 不起作用
SELECT GROUP_CONCAT(CONVERT(mg.user_group, CHAR(10)) ORDER BY mg.user_group SEPARATOR …Run Code Online (Sandbox Code Playgroud) 我做了一些蠢事,但我不知道它是什么,有人能指出我为什么会收到这个错误:
Parameter index out of range (1 > number of parameters, which is 0). 
Run Code Online (Sandbox Code Playgroud)
从这段代码,
这种形式:
<form id="form1" name="form1" method="post" action="?template=/Assets/Plugins/AmericanSurcharges/index.cfm&action=add" class="inputform">
    <tr>
        <td>
            <select name="datamonth">
                <option value=""></option>
                <cfloop from="1" to="12" step="1" index="i">
                    <cfset option = monthasstring(i) /> 
                    <option value="#i#" >#option#</option>
                </cfloop>
            </select>
        </td>
        <td><input name="201data" type="text" id="201" size="6" maxlength="7" value="" class="data" /></td>
        <td><input name="301data" type="text" id="301" size="6" maxlength="7" value="" class="data" /></td>
        <td><input name="304data" type="text" id="304" size="6" maxlength="7" value="" class="data" /></td>
        <td><input name="316data" type="text" id="316" size="6" maxlength="7" value="" class="data" /></td> …Run Code Online (Sandbox Code Playgroud) 我无法让ajaxSubmit捕获错误:
$(document).ready(function(){
        $("#supportForm").validate({
              rules: {
                 //validation
              },
              messages: {              
                 //messages
              },
              submitHandler: function(form) {
                    $(form).ajaxSubmit({
                        url:"ajax/supportform",
                        type:"GET",
                        dataType: 'json',
                        error: function() { alert('error'); },
                        success: function() {alert('success'); },
                    });
              }
        });  
    })
Run Code Online (Sandbox Code Playgroud)
我必须在我的PHP脚本中返回什么才能使其触发错误事件?
我试过返回一个错误=> 0的数组,退出(json_encode('error'=>'0');等。
我试图弄清楚如何将格式化数组打印/回显到 modx 错误日志。但是 print_r 和 pre 标签不起作用,如果我使用类似的东西:
$log = "<pre>";
$log .= print_r($formdata);
$log .= "</pre>";
$this->modx->log(modX::LOG_LEVEL_ERROR, 'Form Data = ' . $log);
Run Code Online (Sandbox Code Playgroud)
日志中的结果是:
[2014-12-20 22:35:18] (ERROR @ /index.php) Form Data = <pre>1</pre>
Run Code Online (Sandbox Code Playgroud)
我之前在 modx 日志中看到过格式化数组,有人知道该怎么做吗?
用于在表上运行更新查询以从列中的值中删除所有空格的正确语法是什么?
我有一个用户表,其中包含导入空格的用户名,我需要删除空格.即"约翰史密斯先生".需要成为"johnsmithsr".
大约有500多个事件发生.
我正在尝试使用 bash 从 php 配置文件中读取一些变量,它在大部分情况下都有效,但我在尝试使用传回的值时遇到问题。
该变量在配置中找到,但当它被传回时,它仍然带有 PHP 的单引号或双引号。
这是我正在使用的。
DBPASS="$(grep -oE '\$database_password = .*;' $CONFIG | tail -1 | sed 's/$database_password = //g;s/;//g')"
Run Code Online (Sandbox Code Playgroud)
现在,变量可以用单引号或双引号括起来,并且单引号可以出现在密码字段中。所以我不能把它们全部去掉。
知道怎么做吗?
更新
因此,采用另一种方式,我在 bash 脚本(基本上备份 CMS)中添加了一些内容,该脚本将查找并编写一些 PHP“帮助程序”。该助手只会读取配置,构建一个数组并将其传递回 bash 脚本。
HELPER="backup-helper.php";
CONFIG="../core/config/config.inc.php"
if [ ! -f "$HELPER" ]; then
    echo '<?php' >> $HELPER;
    echo '$config = "$argv[1]";' >> $HELPER;
    echo 'include_once($config);' >> $HELPER;
    echo 'echo $dbase;' >> $HELPER; 
    echo 'echo $modx_core_path;' >> $HELPER;
    echo 'return "this";' >> $HELPER;
    chmod 755 $HELPER;
    php $HELPER  $CONFIG;
fi
Run Code Online (Sandbox Code Playgroud)
所以这基本上只是寻找帮助程序文件并创建它(如果它不存在),然后运行它来测试 - …
php ×4
mysql ×3
jquery ×2
modx ×2
ajax ×1
arrays ×1
bash ×1
cfqueryparam ×1
coldfusion ×1
css ×1
css3 ×1
forms ×1
google-api ×1
hybridauth ×1
javascript ×1
mod-security ×1
shell ×1
sorting ×1
xpdo ×1