用户可以提交存储在数据库中的反馈的网页

时间:2016-08-10 08:41:44

标签: mysql

我正在创建一个用户可以提交反馈的网页。这些反馈将存储在服务器上的mysql数据库中。我使用PHP,我在db中有一个开放的用户帐户,只允许插入指定的表吗?我很困惑,因为密码是以提交形式公开的,还是我误解了什么?

$db_password = 'password';

任何人都可以访问这个吗?我应该以某种方式加密它吗?

1 个答案:

答案 0 :(得分:0)

以下是一个例子:

<强> HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Add Record Form</title>
</head>
<body>
<form action="insert.php" method="post">
    <p>
        <label for="firstName">First Name:</label>
        <input type="text" name="firstname" id="firstName">
    </p>
    <p>
        <label for="lastName">Last Name:</label>
        <input type="text" name="lastname" id="lastName">
    </p>
    <p>
        <label for="emailAddress">Email Address:</label>
        <input type="text" name="email" id="emailAddress">
    </p>
    <input type="submit" value="Submit">
</form>
</body>
</html>

<强> PHP

<?php
/* Attempt MySQL server connection. 
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "", "demo");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

// Escape user inputs for security
$first_name = mysqli_real_escape_string($link, $_POST['firstname']);
$last_name = mysqli_real_escape_string($link, $_POST['lastname']);
$email_address = mysqli_real_escape_string($link, $_POST['email']);

// attempt insert query execution
$sql = "INSERT INTO persons (first_name, last_name, email_address) VALUES ('$first_name', '$last_name', '$email_address')";
if(mysqli_query($link, $sql)){
    echo "Records added successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// close connection
mysqli_close($link);
?>

好的,这样就会在表单上插入发布的数据,表所需的内容和数据库权限只是创建一个新用户(您的自定义用户),然后为此用户分配读写权限,假设您是在某个时候去读取数据。然后如上面的php示例所示,将 mysql用户替换为&#39; root&#39; 如果您指定了密码,只需将其添加到空字符串中的root旁边。要回答任何人都可以访问的密码,答案是否定的。 PHP是服务器端脚本语言,除了您故意将db密码发送到客户端之外,所有内容都在服务器上呈现和验证,并且只将标记发送到客户端。