php - 如果我使用 AWS RDS 将用户输入存储到数据库中,我的 PHP 文件应该放在哪里?
问题描述
在使用 Amazon RDS 之前,我会在本地测试我的用户输入和我的终端节点 ( http://localhost/emails.php
),终端节点 ( ) 将位于我的htdocs
文件夹中(我正在使用 MAMP),因此我可以通过文本字段将用户输入存储在我的 SQL 数据库中没有什么问题。
但是现在我已经迁移到 Amazon RDS,我得到了一个成功连接到 MySQL Workbench 的新终端节点。
我的问题是 - 我应该在哪里存储这个包含连接到我的数据库、sql 表等的所有信息的 php 文件?我希望它能够像使用 RDS 之前在本地工作一样工作
我刚才提到的所有内容都有以下代码:
这是我的js文件:
import React, {Component} from 'react';
import axios from 'axios';
export default class ProductList extends Component {
constructor(props) {
this.addFormData = this.addFormData.bind(this);
}
addFormData(evt) {
evt.preventDefault();
const fd = new FormData();
fd.append('myEmail', this.refs.myEmail.value);
var headers = {
'Content-Type': 'application/json;charset=UTF-8',
// 'Host' : 'sdb.amazonaws.com'
"Access-Control-Allow-Origin": "*"
};
axios.post("My AWS RDS Endpoint", fd, headers)
.then(res => {
alert(res);
}).catch(err => {
alert(err);
});
}
render() {
return (
<React.Fragment>
<form>
<div className="col-xs-2 text-center">
<input type="email" id="Email" aria-describedby="emailHelp" placeholder="Enter email" ref="myEmail" />
</div>
<button type="submit" className="submitEmail btn btn-primary" onClick={this.addFormData}>Submit</button>
</form>
</div>
</React.Fragment>
);
}
}
这是我的 php 文件:
<?php
header("Access-Control-Allow-Origin: *");
$servername = "my host";
$username = "my name";
$password = "my pw";
$dbname = "mydb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO mydb.emails
VALUES ('".$_POST['myEmail']."')";
echo $sql;
if (mysqli_query($conn,$sql)) {
$data = array("data" => "You Data added successfully");
echo json_encode($data);
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
?>
这是我创建包含电子邮件的表的 SQL 查询:
CREATE TABLE mydb.emails(emails VARCHAR(200));
SELECT * FROM mydb.emails;
解决方案
本地系统上的http://localhost/ *.php 将位于主机的根文件夹中——htdocs、public 或 www。
axion.post() 应该指向那个 .php 文件,而不是 AWS 端点。
将您的 RDS 凭据放在公用文件夹下的文件夹中的单独文件中可能会更安全,以防由于某种原因出现以纯文本形式显示 PHP 的错误。至少如果您“要求”该文件,您不会意外暴露您的凭据。
推荐阅读
- python - 如何自动化一个函数,并在列表中使用一个字符串,然后用列表中的下一个字符串重复它?
- scala - 将一列的行映射到其他数据框中这些行的数据
- r - 绘制两个城市的道路网络(以相同的比例)以比较城市的蔓延
- css - Nextjs,从 node_modules 导入样式在生产中失败
- css - 如何从 NPM 包中更改 CSS 并改用 SCSS?
- bluetooth-lowenergy - 使用 NRF51822 通过 BTLE 与 Unicorn Hybrid Black EEG 耳机进行通信
- r - 通过添加前缀 -in R 重命名数据框的列
- r - 根据R中的不同列计算列中值的比例
- c# - Skisharp ColorMatrix 反转黑/白
- angular - Angular - 页面加载时访问子组件列表