【发布时间】:2018-02-15 13:07:31
【问题描述】:
我尝试使用以下代码在 phpmyadmin 中创建用户帐户:
<?php
if(isset($_GET['page'])){
$connection = mysqli_connect('localhost', 'root');
if(!$connection){
echo 'MySQL Server Connection Issue';
}
else{
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "CREATE USER \'".$username."\'@\'%\' IDENTIFIED VIA mysql_native_password USING \'***\'GRANT ALL PRIVILEGES ON *.* TO \'".$username."\'@\'%\' REQUIRE NONE WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0GRANT ALL PRIVILEGES ON `".$username."\\_%`.* TO \'".$username."\'@\'%\'";
$mysqli_query = mysqli_query($connection, $sql);
if($mysqli_query){
echo 'done';
}
else{
echo 'faild';
}
}
}
else{
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="?page=create_user" method="POST">
<input type="text" name="username" required>
<input type="password" name="password" required>
<input type="submit" value="Create User">
</form>
</body>
</html>
<?php
}
?>
t 它只是在回显“失败”。为什么? 解释: 当访问者访问网页时,他会得到一个带有两个字段(用户名和密码)和一个提交按钮的 html 表单。如果访问者填写表格并提交,代码必须使用在表格中输入的用户名和密码创建一个 phpmyadmin 用户帐户。我添加了一个代码,如果代码在创建 MySQL 用户时失败,它将回显“失败”。当我尝试提交表单时,它现在显示“失败”字样。这意味着代码中有某种错误。但我无法弄清楚。请帮我解决这个问题......
【问题讨论】:
-
在您的 SQL 查询中将
\'替换为',因为您不需要在双引号字符串中转义单引号。显示 mysqli 错误消息echo mysqli_error($connection);也会很有用。 -
另外:您的代码容易受到 SQL 注入攻击。你最好使用prepared statements。
-
你需要了解PHP、PHPMyAdmin、MySQL的区别
-
我对你运行的服务器有两个版本的 PHP 印象深刻 ;)
标签: php phpmyadmin php-7 php-5.3