【发布时间】:2015-01-02 23:48:26
【问题描述】:
我正在为我的网站开发一个禁止系统,所有值都是正确的,页面上没有错误,但数据没有进入表格。这是数据库连接的代码。
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="PyroStudio"; // Database name
$tbl_name="banned"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
这是实际的禁止系统本身
if ($_POST['post'])
{
//get data
$bannuser = $_POST['bannuser'];
$TypeBan = $_POST['TypeBan'];
$Reviewed = $_POST['Reviewed'];
$ModNote = $_POST['ModNote'];
$Reason = $_POST['Reason'];
$OffenItem = $_POST['OffenItem'];
$BanLengthMssg = $_POST['BanLengthMssg'];
$ReleaseMssg = $_POST['ReleaseMssg'];
$AppealMssg = $_POST['AppealMssg'];
//Connect To The Database
$connect = mysql_connect("localhost","root","");
mysql_select_db("PyroStudio");
$namecheck = mysql_query("SELECT bannuser FROM $tbl_name WHERE bannuser='$bannuser'");
$count = mysql_num_rows($namecheck);
if($count!=0)
{
die("This User Is Already Banned! <a href='home.php'>[Home]</a>");
}
//check for existance
if ($bannuser)
{
if(strlen($bannuser)>25||strlen($bannuser)<6)
{
echo "<b>Length Of Username Is Must Be Between 6 and 25 Characters Long!</b>";
}
else
{
$queryreg = mysql_query("
INSERT INTO $tbl_name VALUES ('$bannuser','$TypeBan','$Reviewed','$ModNote','$Reason','$OffenItem','$BanLengthMssg','$ReleaseMssg','$AppealMssg')
");
die ("<b>The Moderation Report Has Been Submitted! The User Is Now Banned!</b> <b><a href='home.php'>[Home]</a></b>");
}
}
}
?>
我以前用过这个系统,现在我不知道为什么它不想工作。如果您能提供帮助,那就太好了。
【问题讨论】:
-
请告诉我们这段代码哪里出错了?您采取了哪些调试步骤?
-
在打开
<?php标签error_reporting(E_ALL); ini_set('display_errors', 1);后立即将错误报告添加到文件顶部,看看它是否产生任何结果。还要将or die(mysql_error())添加到mysql_query()。 -
第一个查询有SQL注入漏洞。
-
Mouser,我的问题之一是我的表名错误,然后我更正了它,这是被禁止的表。我检查了我的 mysql 连接,它很完美,我只是不知道哪里出了问题。弗雷德,我会试一试
-
您应该停止使用已弃用的 mysql_* php 扩展并开始使用 PDO。看看这个问题:stackoverflow.com/questions/25024438/…