【发布时间】:2017-05-06 19:19:13
【问题描述】:
我希望标题有意义。我有一个社交网站,在个人资料页面上,一个 HTML 表单将被提交到一个 php 文件,该文件将使用登录时创建的用户名会话变量将用户输入存储在 MySQL 数据库中,现在简化版本看起来像这样:
HTML:
<html>
<body>
<form method='POST' action='destination.php'>
<input type='text' name='email'/>
<input type='text' name='location'/>
<input type='submit' value='Submit'/>
</form>
<body>
</html>
destination.php:
<?php
session_start();
$username = $_SESSION['username'] //from before (e.g. login)
//CONNECT TO MYSQL
$servername = "127.0.0.1";
$sqlusername = "root";
$sqlpassword = "*********";
$dbname = "**********";
$conn = new mysqli($servername, $sqlusername, $sqlpassword, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = $conn->prepare("insert into users(email, location) values(?, ?) where username=?");
$sql->bind_param("sss", $_POST['email'], $_POST['location'], $username);
$sql->execute();
$sql->close();
$conn->close();
?>
这很好用,但是我在一台正在开发的机器上运行它,并且想知道当多个用户几乎同时发布表单时它会如何实际工作,会话会变得“混乱”吗?我是新手,所以我不确定会话是如何工作的,但上面的代码安全吗?如果不行,我该怎么办?
【问题讨论】: