我是新来的,编程中的菜鸟。 我创建了一个可以更改数据库列的脚本,但是现在我想从用户那里获取数据库登录信息,并且当他们正确地提供所有信息时,用户的更改后的值更改了用户提供的数据库列信息。
这是我的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();
?>
是否可以从用户获取值并更改数据库列信息? 抱歉英文不好。
答案 0 :(得分:1)
这是一个非常糟糕的主意......很多安全问题。但是,如果您想要从接收的表单值更改它,只需将查询更改为:
// 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";
答案 1 :(得分:0)
使用$_POST
变量检索用户在login.html页面上输入的数据
就像在$servername
的db.php和$username
中使用
$servername = $_POST['host'];
$username = $_POST['usr'];