为什么我的php命令在我托管之后不起作用?
我托管了我的网站,然后突然,用于将记录插入数据库的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
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字符串中。