php - 从用户获取数据库用户、密码、名称和主机信息并想要更新数据库列信息

标签 php html mysql database forms

我是新来的,编程新手。 我创建了一个可以更改数据库列的脚本,但现在我想从用户获取数据库登录信息,并在用户正确提供所有信息时从用户更改值,脚本更改了用户提供的数据库列信息。

这是我的login.html源代码:

<html>
<center>

<form action="db.php" method="post">
DB Host:     <input type="text" name="host"><br>
DB Username: <input type="text" name="usr"><br>
DB Password: <input type="password" name="psw"><br>
DB Name:     <input type="text" name="dbname"><br><br><br>
Admin changed Username: <input type="text" name="admusr"><br>
Admin Changed Password: <input type="password" name="admpsw"><br>
<input type="submit">
</form>
</center>
</html>

这是我的 db.php 源代码,可以手动更新数据库列信息

<?php

$servername = "localhost";
$username = "admin";
$dbname = "mydb";
$password = "1234";

// Create connection
$conn = new mysqli($servername, $username, $password);


// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
mysqli_select_db($conn,"$dbname");


$sql = "UPDATE admins SET user_login='admin1',user_pass='1234'  WHERE id=1";


if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . $conn->error;
}


$conn->close();

?>

是否可以从用户的值中获取值并更改数据库列信息? 抱歉英语不好。

最佳答案

这是一个非常糟糕的主意...大量的安全问题。但是,如果您想从收到的表单值更改它,只需将您的查询更改为:

// escape received values
$usr = $conn->real_escape_string($_POST['usr']);
$psw = $conn->real_escape_string($_POST['psw']);

// use them in query
$sql = "UPDATE admins SET user_login='".$usr."',user_pass='".$psw."'  WHERE id=1";

您有更多由用户填写的字段...我不知道您的确切表结构。但如果您想使用所有这些,只需将收到的转义值添加到您的查询中即可:

// escape received values
$usr = $conn->real_escape_string($_POST['usr']);
$psw = $conn->real_escape_string($_POST['psw']);
$host = $conn->real_escape_string($_POST['host']);
$dbname = $conn->real_escape_string($_POST['dbname']);
$admusr = $conn->real_escape_string($_POST['admusr']);
$admpsw = $conn->real_escape_string($_POST['admpsw']);

// use all of them in query depending on your table structure
$sql = "UPDATE admins SET user_login='".$usr."',user_pass='".$psw."'  WHERE id=1";

关于php - 从用户获取数据库用户、密码、名称和主机信息并想要更新数据库列信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28964447/

相关文章:

javascript - 在表单上使用 jQuery 的 PreventDefault() 后,如何使用 PHP 重定向用户?

javascript - PHP 根据路径名读取文件内容

PHP AJAX Comet 与 MySQL 选择记录

javascript - Bootstrap 网格系统(行澄清)

html - 我如何使这个渐变透明?

mysql - 将文件保存为 MYSQL 数据库中的 blob 或文件路径

java - JPA 在插入/更新时返回完整的外键实体

php - mp3 的 HTML5 音频持续时间始终为 Infinity

javascript - Html 选择列表 : why would onchange be called twice?

mysql - 查询从表中获取前 2 条和第 3 条记录