切换到 php 7 后 $.getJSON 不起作用

问题描述

我切换到 PHP 7 并且这不再起作用了!请帮忙!

当我切换回 PHP 5.6 时,它突然起作用了。不知道为什么 PHP 会影响 jquery。请帮忙!

我已经尝试了一切,但所有其他代码都是一样的,我什么都没改变。我所做的只是切换PHP版本。我很困惑和困惑。请帮忙!

我什至可以向您展示我的服务器的屏幕截图。除了切换 PHP 版本之外,我什么都没改变。配置中是否缺少某些内容

请帮忙!

function fillForm(id) {
        console.log('fillForm ' + "<?=$read_call?>&id="+id+"");

        $.getJSON("<?=$read_call?>&id="+id+"",function( data ) {
        
        console.log('fillForm '+data);
        
        $.each( data,function( key,val ) {
            if(data.hasOwnProperty(key))
                    $('input[name='+key+']').val(val);

            if(key == 'acct') {                 
                    $('select[name="acct"]').find('option:contains("'+val+'")').attr("selected",true);  
            }
            
            if(key == 'priority') {                 
                    $('select[name="priority"]').find('option:contains("'+val+'")').attr("selected",true);  
                    console.log('priority '+val);
            }
            
            if(key =='extra') {
                $('textarea[name='+key+']').val(val);
            }
            
            if(key == 'password') {
                $('#passwordRow').prop('title',val);
            }
            
            if(key == 'code') {
                $('#codeRow').prop('title',val);
            }
            
            if(key == 'url') {
                $('#url_1_href').prop('href',val);
            }
            
            if(key == 'referralURL') {
                $('#url_2_href').prop('href',val);
            }
            });
        });
    }
    

添加PHP代码

<?PHP
include($dir.'functions.PHP');
include($dir.'config.PHP');
include($dir.'ez_sql_core.PHP');
include($dir.'ez_sql_MysqL.PHP');

///////////////////////////
$tableName = 'credentials';
///////////////////////////
$id = $_REQUEST['id'];


foreach($_REQUEST as $request => $value) {
    $_REQUEST[$request] = MysqL_real_escape_string($value);
}

switch($_GET['action']) {
    case 'update':
       
       $update = "UPDATE $tableName SET name='".$_REQUEST['name']."',password=AES_ENCRYPT('".$_REQUEST['password']."','$key'),code=AES_ENCRYPT('".$_REQUEST['code']."',acct='".$_REQUEST['acct']."',priority='".$_REQUEST['priority']."',campaign='".$_REQUEST['campaign']."',username='".$_REQUEST['username']."',email='".$_REQUEST['email']."',url='".$_REQUEST['url']."',referralURL='".$_REQUEST['referralURL']."',extra='".$_REQUEST['extra']."'
            WHERE id='".$id."'";
            
        $success = $conn->query($update);

        if($success == 1)
            echo 'Updated record '.$id.': '.$update;
        else 
            echo 'Failed to update record '.$update;
        break;
        
    case 'delete':
    
        $query = "DELETE from $tableName WHERE id='".$id."'";
        $success = $conn->query($query);

        if($success == 1) 
            echo 'Successfully deleted record '.$id;
        else
            echo 'Failed to delete record '.$id;
        break;
        
    case 'create':
    
        $insert = "INSERT INTO $tableName (name,acct,priority,campaign,username,email,password,code,url,referralURL,extra) values (
            '".$_REQUEST['name']."','".$_REQUEST['acct']."','".$_REQUEST['priority']."','".$_REQUEST['campaign']."','".$_REQUEST['username']."','".$_REQUEST['email']."',AES_ENCRYPT('".$_REQUEST['password']."',AES_ENCRYPT('".$_REQUEST['code']."','".$_REQUEST['url']."','".$_REQUEST['referralURL']."','".$_REQUEST['extra']."'
        )";

        $success = $conn->query($insert);
        
        if($success == 1) 
            echo 'Added record '.$insert;
        else 
            echo 'Failed to add record '.$insert;
        break;
    case 'read':
    default:
        $read = "SELECT *,AES_DECRYPT(password,'$key') as password,AES_DECRYPT(code,'$key') as code FROM $tableName WHERE id='".$id."'";

        $resR = $conn->query($read);        
        $recs = $resR->fetch_assoc();

        echo json_encode($recs);
        break;
}


?>

解决方法

正如切线垂直所说,这个函数导致了错误 mysql_real_escape_string()

改为 mysqli_real_escape_string() 它奏效了