您好,我只是想创建一个博客,我偶然发现了这个问题。
致命错误:在第5行的D:\ xampp \ htdocs \ wd1_vtec_0100348514 \ pages \ post_add.php中调用未定义的函数mysql_safe_query()
这是我在该特定页面上的代码..
<?php
// post_add.php
if(!empty($_POST)) {
include 'config.php';
if(mysql_safe_query('INSERT INTO posts (title,body,date) VALUES (%s,%s,%s)', $_POST['title'], $_POST['body'], time()))
echo 'Entry posted. <a href="post_view.php?id='.mysql_insert_id().'">View</a>';
else
echo mysql_error();
}
?>
<?php
include 'header.php';
?>
<form method="post">
<table>
<tr>
<td><label for="title">Title</label></td>
<td><input name="title" id="title" /></td>
</tr>
<tr>
<td><label for="body">Body</label></td>
<td><textarea name="body" id="body"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Post" /></td>
</tr>
</table>
</form>
<link rel="stylesheet" type="text/css" href="../css/style1.css">
<div id="menu">
<ul id="nav">
<li><a href="home.php" target="_self" >Home</a></li>
<li><a href="session1.php" target="_self" >Sessions</a>
<ul>
<li><a href="session1.php" target="_self" >Session 1</a></li>
<li><a href="session2.php" target="_self" >Session 2</a></li>
<li><a href="session3.php" target="_self" >Session 3</a></li>
<li><a href="session4.php" target="_self" >Session 4</a></li>
<li><a href="session5.php" target="_self" >Session 5</a></li>
<li><a href="session6.php" target="_self" >Session 6</a></li>
<li><a href="session7.php" target="_self" >Session 7</a></li>
<li><a href="session8.php" target="_self" >Session 8</a></li>
<li><a href="session9.php" target="_self" >Session 9</a></li>
<li><a href="session10.php" target="_self" >Session 10</a></li>
<li><a href="session11.php" target="_self" >Session 11</a></li>
<li><a href="session12.php" target="_self" >Session 12</a></li>
<li><a href="session13.php" target="_self" >Session 13</a></li>
<li><a href="session14.php" target="_self" >Session 14</a></li>
</ul>
<li><a href="blog.php" target="_self" >Blog</a></li>
</ul>
<div style="float:right"> <a class="btn btn-danger logout" href="logout.php" > Logout</a> </div>
</div>
<?php include ('footer.php'); ?>
我已经尝试了各种方法,但我不确定如何继续。任何帮助,将不胜感激。
谢谢!
答案 0 :(得分:0)
这是因为您没有定义mysql_safe_query()
方法。它不包含在PHP中。将以下方法添加到config.php
:
function mysqli_safe_string($value) {
if(empty($value)) return 'NULL';
elseif(is_string($value)) return '\''.mysqli_real_escape_string(trim($value)).'\'';
elseif(is_numeric($value)) return $value;
elseif(is_array($value)) return implode(',',array_map('mysqli_safe_string',$value));
else return false;
}
function mysqli_safe_query($format) {
$args = array_slice(func_get_args(),1);
$args = array_map('mysql_safe_string',$args);
$query = vsprintf($format,$args);
return mysqli_query($query);
}
来源:http://snipplr.com/view/22287/mysqlsafequery-to-prevent-sql-injection/(我用Google搜索时出现的第一个链接)。
请注意,我已将所有内容更改为mysqli_
,而不是mysql_
。 mysql_
已被弃用了一段时间,我不知道为什么人们在这里提问仍然会使用它。将所有mysql_
方法更改为mysqli_
,包括数据库连接配置文件的方法。