小编Nie*_*che的帖子

Gravity Forms自定义验证过滤器

我有一个功能,通过第三方服务处理销售,处理结果并返回状态为"成功"或"无效"的数组.此销售调用是使用应用于特定表单的gform_after_submission挂钩进行的.

我需要做的是将数组中的"Success"或"Invalid"结果存储为变量,我稍后可以使用gform_validation钩子将其传递给函数以验证或使信用卡字段无效.

我在函数中声明变量,如下所示:

function foo { 
...code to sell product through API...

$status = $checkoutShoppingCartRequest['Result']['Status'];
}
Run Code Online (Sandbox Code Playgroud)

当我在函数中打印变量$ status时,它显示成功或无效.

这是我需要使用此变量的其他函数,传递给gform_validation,无论Success或Invalid result,都会每次都失败:

function MBvalidate( $validation_result ) {
$form = $validation_result['form'];
if ( $status !== "Success") {
    $validation_result['is_valid'] = false;
    foreach( $form['fields'] as &$field ) {
        if ( $field->id == '34' ) {
            $field->failed_validation = true;
            $field->validation_message = 'Your credit card could not be processed.';
            break;
        }
    }
}
//Assign modified $form object back to the validation result
$validation_result['form'] = $form;
return $validation_result; …
Run Code Online (Sandbox Code Playgroud)

php wordpress gravity gravity-forms-plugin

10
推荐指数
1
解决办法
2285
查看次数

IE中的jQuery缓存

我们在这里有一个使用Wufoo表单和Wufoo jQuery API的站点.

我们从API中提取数据,对其进行排序,然后在页面上显示.当我们提交的数字高于当前前10名时,它应该在右侧实时更新,因为表单会重定向回自身.它这样做,但不是在IE中.相反,在提交表单和显示新数据之间似乎存在不必要的延迟.关闭浏览器并重新打开页面似乎有效,但这没有用.

这是我们正在使用的jQuery:

<script>
    $.wufooAPI.getEntries({
        "callback"   : processEntries,             
        "formHash"   : "x7x1x7",                   
        "sortID"   : "Field3",                   
        "sortDirection"   : "DESC",
    });
    function processEntries(data) {
        $.each(data.Entries.slice(0, 10), function(entriesIndex, entriesObject) {
            // Make sure this entry has all the required bits
            if (entriesObject.Field1 && entriesObject.Field3) {
                $("#attendeeTemplate").tmpl(entriesObject).appendTo("#people ul");  
            }
        });
    };

</script>
Run Code Online (Sandbox Code Playgroud)

这是模板代码:

            <script id="attendeeTemplate" type="text/x-jquery-tmpl">
                <li>
                    <h4>${Field1}</h4>
                    ${Field3} minutes
                </li>
            </script>
Run Code Online (Sandbox Code Playgroud)

它在除IE8和9之外的所有浏览器中都能很好地工作,当它看起来像是在缓存数据而不是从服务器提取请求时.

有没有办法停止在IE中缓存jQuery?

jquery internet-explorer wufoo jquery-templates

7
推荐指数
1
解决办法
2118
查看次数

将数据格式化为数据库:防止SQL注入

最近有人提到我们通过表单提交将数据插入我们的SQL数据库的方法受到SQL注入攻击,并且需要一些建议来加强我们的安全性.

这是将表单数据插入数据库的代码:

        <cfquery name="InsRegistrant" datasource="#application.Datasource#" dbtype="odbc">

            INSERT INTO Schedule_Registrations(
                schedule_id,
                first_name,
                last_name,
                phone_number,
                email,
                guest,
                list_type,
                datetime_registered
             )
            VALUES(
                #url.schedule_id#,
                '#FORM.first_name#',
                '#FORM.last_name#',
                '#CleanPhoneNumber#',
                '#FORM.email#',
                 #attendee.guest#,
                 <!--- Values for list types 
                    0 = NEVER USE Will cause many many problems
                    1 = Main List
                    2 = Waiting List --->                    
                 #attendee.list_type#,
                 #createodbcdatetime(now())#
             )                
        </cfquery>
Run Code Online (Sandbox Code Playgroud)

CleanPhoneNumber以这种方式设置:

<cfset CleanPhoneNumber = REReplace(form.phone_number, "[^0-9]", "", "ALL") />
Run Code Online (Sandbox Code Playgroud)

我被告知要使用,例如,

<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.phone_number#" />
Run Code Online (Sandbox Code Playgroud)

但我不确定要更换什么以及在哪里.当我用这样的值替换值时,我得到一个错误.

任何方向都会有所帮助..

coldfusion coldfusion-9

3
推荐指数
1
解决办法
1604
查看次数

如果行是当前日期,则插入锚点

我们有一个使用部分代码动态生成的计划:

    <cfloop from="0" to="6" index="x">
        <cfset thisDate = dateFormat(dateAdd("d",x,theDate),"yyyy-mm-dd")>
        <cfoutput><tr><td colspan="4" class="date"><strong>#dateFormat(thisDate,"DDDD, M/D")#</strong></td></tr></cfoutput>
        <cfif structKeyExists(dayData,thisDate)>
            <cfif arrayLen(dayData[thisDate]) gt 0>
                <cfloop from="1" to="#arrayLen(dayData[thisDate])#" index="y">
                    <cfoutput><tr>#dayData[thisDate][y]#</tr></cfoutput>
                </cfloop>
            <cfelse>
                <cfoutput><tr><td colspan="4">There are no classes scheduled for this day</td></tr></cfoutput>
            </cfif>
        <cfelse>
            <cfoutput><tr><td colspan="4">Schedule not available</td></tr></cfoutput>
        </cfif>
    </cfloop>
Run Code Online (Sandbox Code Playgroud)

我要做的是动态插入一个锚(例如,<a name ="anchor">),具体取决于显示行中的日期是否是当前日期.所以我想要一个cfif,它将在日程表的当天一行显示锚点.目标是使用锚链接到此.

任何建议都非常感谢.

coldfusion coldfusion-9

2
推荐指数
1
解决办法
210
查看次数

表格姓氏长度检查ColdFusion?

我们有一个表单,我们正在尝试验证姓氏字段的输入,以确保至少输入至少两个字符.这是我们使用的代码类型:

<cfif form.last_name is "S">
    <cfset errors = errors & "<li>You must include your <b>complete</b> last name.</li>">
</cfif>
Run Code Online (Sandbox Code Playgroud)

关于我们如何确保姓氏字段有两个或更多字母的任何想法(不单独将每个字母作为单独的支票,如上所述).关于如何更有效地验证姓氏的其他想法也会有所帮助.

coldfusion coldfusion-9

2
推荐指数
1
解决办法
1210
查看次数

使用ColdFusion标准化提交表单中的电话号码

我们正在寻找一种方法来标准化输入表格中输入的电话号码,例如,(444)555-666.现在您可以输入任何格式,例如4445556666或444-555-6666,并且没有标准化.我希望在将数字输入数据库时​​将数字转换为前一种格式.

以下是表单的HTML代码:

<tr>
  <td align="right">
    <label for="phone_number">Telephone:</label>
  </td>
  <td>
    <input type="text" name="phone_number" value="#form.phone_number#" />
  </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

这与所有其他数据一起使用cfquery INSERT INTO命令输入数据库.如果需要,我可以提供该代码.这是一个简短的版本:

INSERT INTO Schedule_Registrations(
  phone_number
)
VALUES(
  '#FORM.phone_number#'
)
Run Code Online (Sandbox Code Playgroud)

对此的任何想法将不胜感激.

coldfusion coldfusion-9

1
推荐指数
1
解决办法
4215
查看次数

cfloop空查询条件?

我有以下ColdFusion代码,它从数据库获取信息并在主页上显示结果.这是cfquery代码:

<cfquery name="getSchedule" datasource="#APPLICATION.datasource#" dbtype="odbc">
SELECT * FROM SCHEDULE_Days SD 
LEFT JOIN SCHEDULE_ScheduledClasses SSC ON SD.day_id = SSC.day_id
LEFT JOIN SCHEDULE_Classes SC ON SSC.class_id = SC.class_id
WHERE SD.day_date = #createODBCDate(now())# AND SSC.schedule_cancelled = 0
ORDER BY SSC.start_time
</cfquery>
Run Code Online (Sandbox Code Playgroud)

和输出代码:

<cfoutput>
<cfloop query="getSchedule">
<tr>
<td width="40">&nbsp;</td>
<td width="74">#lcase(timeFormat(start_time,"h:mm tt"))#</td>
<td width="158">#class_name#</td>
</tr>
</cfloop>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

问题是,如果getSchedule中没有包含数据(即没有ScheduledClasses),则不显示任何内容.

我正在寻找一种方法来改变它,以便在没有数据显示的情况下,我可以指定一条消息和代码,以便在缺席时显示.

coldfusion cfloop

0
推荐指数
1
解决办法
2271
查看次数