gpt4 book ai didi

php - CF7 - 数据库字段验证

转载 作者:行者123 更新时间:2023-11-29 11:04:47 25 4
gpt4 key购买 nike

我想使用数据库中的自定义列表验证我的 cf7 表单。因此,如果用户在字段中输入的值不在我的列表中,则表单将无法通过验证。这是一个包含 60,000 个条目的长列表。

感谢您的帮助!

最佳答案

您可以使用 cf7 的自定义验证 Hook 。您需要执行以下操作:

add_filter( 'wpcf7_validate_email*', 'custom_email_confirmation_validation_filter', 20, 2 );

function custom_email_confirmation_validation_filter( $result, $tag ) {
$tag = new WPCF7_FormTag( $tag );

if ( 'your-email-confirm' == $tag->name ) {
$your_email = isset( $_POST['your-email'] ) ? trim( $_POST['your-email'] ) : '';
$your_email_confirm = isset( $_POST['your-email-confirm'] ) ? trim( $_POST['your-email-confirm'] ) : '';

if ( $your_email != $your_email_confirm ) {
$result->invalidate( $tag, "Are you sure this is the correct address?" );
}
}

return $result;
}

这是电子邮件字段的基本自定义验证,您需要像这样自定义:

add_filter( 'wpcf7_validate_email*', 'custom_field_validation', 20, 2 );

function custom_field_validation( $result, $tag ) {
$tag = new WPCF7_FormTag( $tag );

global $wpdb;
$searchTerm = $wpdb->get_row('select * from ' . $wpdb->prefix . 'name_of_table where name_of_field = "' . $_POST['given_value'] . '"');

if(!$searchTerm)
$result->invalidate( $tag, "Value doesn't match" );

return $result;
}

如果您使用文本字段,您还可以使用 wpcf7_validate_text 而不是 wpcf7_validate_mail

关于php - CF7 - 数据库字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41593219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com