相关疑难解决方法(0)

如何在PHP中阻止SQL注入?

如果插入用户输入而不修改SQL查询,则应用程序容易受到SQL注入的攻击,如下例所示:

$unsafe_variable = $_POST['user_input']; 

mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");
Run Code Online (Sandbox Code Playgroud)

这是因为用户可以输入类似的内容value'); DROP TABLE table;--,查询变为:

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')
Run Code Online (Sandbox Code Playgroud)

可以采取哪些措施来防止这种情况发生?

php mysql sql security sql-injection

2776
推荐指数
28
解决办法
166万
查看次数

未捕获的错误:调用未定义的函数mysql_escape_string()

致命错误:未捕获错误:在C:\ xampp\htdocs\phoenixproject\register.php中调用未定义函数mysql_escape_string():16堆栈跟踪:#0 {main}抛出C:\ xampp\htdocs\phoenixproject\register.php在第16行

如何解决这个问题?

<?php
require("config.php");
?>
<?php
if(isset($_POST['submit'])){

$email1 = $_POST['email1'];
$email2 = $_POST['email2'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];

if($email1 == $email2) {
    if($pass1 == $pass2) {
//All good. Nastavi broo.

$name = mysql_escape_string($_POST['name']);
$lname = mysql_escape_string($_POST['lname']);
$uname = mysql_escape_string($_POST['uname']);
$email1 = mysql_escape_string($email1);
$email2 = mysql_escape_string($email2);
$pass1 = mysql_escape_string($pass1);
$pass2 = mysql_escape_string($pass2);

mysql_query("INSERT INTO `users` (`id`, `name`, `lname`, `uname`, `email`, `pass`) VALUES (NULL, '$name', '$lname', '$uname', '$email1', '$pass1')") or die (mysql_error());



}else{
  echo "Sorry, your password is …
Run Code Online (Sandbox Code Playgroud)

php mysql string function

8
推荐指数
1
解决办法
7万
查看次数

我应该如何转义此LIKE查询中的字符?

我的一个表中有一个包含此字符串的字段:

!"#¤%&/()=?´`?=)(/&%¤#"!\'\'"'
Run Code Online (Sandbox Code Playgroud)

(仅用于测试目的).我已经尝试了无数的查询来正确选择这个字段,当然没有返回任何错误,但我似乎无法做到正确.

这是我目前使用的查询:

SELECT * FROM mytable WHERE `column` LIKE '%!"#¤%&/()=?´`?=)(/&%¤#"!\\\'\\\'"\'%'
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释一下我的做法是不是正确的?'我应该逃避任何其他角色(除了)吗?我还没有在任何地方读过它...(但我尝试在precent符号之前添加反斜杠).

mysql escaping sql-like

5
推荐指数
2
解决办法
5066
查看次数

调用未定义的函数 mysql_real_escape_string()

//这里是insert.php中的代码


if ($_SERVER["REQUEST_METHOD"] == "POST") { if(isset($_POST['image']) && isset($_POST['cate']) ){

        $image = mysql_real_escape_string(trim($_POST['image']));

        $cate = mysql_real_escape_string(trim($_POST['cate']));



        $query_input = "INSERT INTO category(cat_name,image) VALUES('$cate','$image')";
        $result_input = insert_fun($query_input);
Run Code Online (Sandbox Code Playgroud)

php mysql

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

mysql ×4

php ×3

escaping ×1

function ×1

security ×1

sql ×1

sql-injection ×1

sql-like ×1

string ×1