从用户那里获取数据库用户,传递,名称和主机信息,并希望更新数据库列信息

时间:2015-03-10 13:02:45

标签: 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();

?>

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

2 个答案:

答案 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'];