为什么我的php命令在我托管之后不起作用?

为什么我的php命令在我托管之后不起作用?,php,html,sql,web,host,Php,Html,Sql,Web,Host,我托管了我的网站,然后突然,用于将记录插入数据库的php命令不起作用 下面是命令的代码,成功消息有效,但记录未插入数据库。当我在本地运行该网站时,它运行良好。我网站上的一些命令可以插入到数据库中,但有些命令就像这个问题一样,成功消息是有效的,但数据库没有改变 function doInsert(){ global $mydb; if(isset($_POST['save'])){ if ($_POST['U_NAME'] == "" OR $_POST['U_USER

我托管了我的网站,然后突然,用于将记录插入数据库的php命令不起作用

下面是命令的代码,成功消息有效,但记录未插入数据库。当我在本地运行该网站时,它运行良好。我网站上的一些命令可以插入到数据库中,但有些命令就像这个问题一样,成功消息是有效的,但数据库没有改变

function doInsert(){
    global $mydb;
    if(isset($_POST['save'])){


    if ($_POST['U_NAME'] == "" OR $_POST['U_USERNAME'] == "" OR $_POST['U_PASS'] == "") {
        $messageStats = false;
        message("All field is required!","error");
        redirect('index.php?view=add');
    }else{  

        $sql = "SELECT * FROM useraccounts WHERE ACCOUNT_USERNAME='" .$_POST['U_USERNAME']."'";
        $mydb->setQuery($sql);
        $userresult = $mydb->loadSingleResult(); 
        if ($userresult) {
            # code...
            message("Username is already taken.", "error");
            redirect('index.php?view=add');
        }else{

        $user = New User();
        $user->USERID               = $_POST['user_id'];
        $user->ACCOUNT_NAME         = $_POST['U_NAME'];
        $user->ACCOUNT_USERNAME     = $_POST['U_USERNAME'];
        $user->ACCOUNT_PASSWORD     =sha1($_POST['U_PASS']);

        $user->ACCOUNT_TYPE         =  $_POST['U_ROLE'];
        $user->create();

        message("New [". $_POST['U_NAME'] ."] created successfully!", "success");
        redirect("index.php");

        } 
    }
    }

}

您的代码易受sql注入攻击,您不检查POST变量是否存在,您使用
sha1
散列密码,而不是
password\u散列
。但是,上面的代码不会尝试插入数据,除非这是通过
$user->create()
方法完成的,您还没有显示该方法。您需要执行一些更详细的调试,确保启用了错误日志记录,并检查异常和警告。根据你提供的信息,我们只能猜测问题出在哪里。是的,您需要紧急修复SQL注入漏洞,并开始使用参数化查询将用户数据放入SQL字符串中。