替换WordPress主题中的MYSQL_REAL_ESPRY_STRING

时间:2016-10-26 作者:tinym

我对mysql_real_escape_string. 这用于显示WooThemes Diner主题的自定义帖子类型(食物菜单项)。食物菜单项不再显示在用餐者菜单页面上,因为它们被调用mysql_real_escape_string.

这些项目的正确名称是什么?

主题:Diner by WooThemes 版本1.9.8(现已从主动支持中退役)

受影响的文件:管理界面。php

行:111和;118

/*-----------------------------------------------------------------------------------*/
/* WooThemes Admin Interface - woothemes_add_admin */
/*-----------------------------------------------------------------------------------*/

if ( ! function_exists( \'woothemes_add_admin\' ) ) {
function woothemes_add_admin() {

    global $query_string;
    global $current_user;
    $current_user_id = $current_user->user_login;
    $super_user = get_option( \'framework_woo_super_user\' );

    $themename =  get_option( \'woo_themename\' );
    $shortname =  get_option( \'woo_shortname\' );

    // Reset the settings, sanitizing the various requests made.
    // Use a SWITCH to determine which settings to update.

    /* Make sure we\'re making a request.
------------------------------------------------------------*/

    if ( isset( $_REQUEST[\'page\'] ) ) {

        // Sanitize page being requested.
        $_page = \'\';

        $_page = mysql_real_escape_string( strtolower( trim( strip_tags( $_REQUEST[\'page\'] ) ) ) );

        // Sanitize action being requested.
        $_action = \'\';

        if ( isset( $_REQUEST[\'woo_save\'] ) ) {

            $_action = mysql_real_escape_string( strtolower( trim( strip_tags( $_REQUEST[\'woo_save\'] ) ) ) );

        } // End IF Statement

        // If the action is "reset", run the SWITCH.

        /* Perform settings reset.
    ------------------------------------------------------------*/

3 个回复
SO网友:AddWeb Solution Pvt Ltd

mysql_real_escape_string() 在PHP 5.5.0中被弃用,在PHP 7.0.0中被删除,您可以尝试esc_sql() 用于更高版本的WP/PHP。

代替mysql_real_escape_string() 具有esc_sql() 第111行(&A);118英寸admin-interface.php 文件

希望这对你有好处!

SO网友:Damith Ruwan

mysql_real_escape_string 之前已弃用并在PHP7中删除。你必须使用mysqli_real_escape_string. 但是我认为WordPress不可能,因为您也传递了连接字符串。

因此,您也可以使用esc_sql() 而不是mysql_real_escape_string.

SO网友:user12143633

使用此

global $wpdb;
$string = "<h1>Hello world</h1>";
$string = $wpdb->_real_escape($string);
此处链接:https://developer.wordpress.org/reference/classes/wpdb/_real_escape/