0

我创建了一个简单的登录和注册项目。

然后向用户呈现他们的“个人资料页面”。我希望他们能够单击“编辑”按钮并将信息输入到注册期间不存在的字段中。我可以让脚本向数据库添加“简历”,但它会创建一条新记录,如何将此生物信息添加到特定成员记录?

<?php
ob_start();
session_start();
if(!isset($_SESSION['Email'])){
header("Location: login.php");
}   
?>

<body>
<div id="wrapper">

<?php
$con = mysql_connect("HIDDEN");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("HIDDEN", $con);

$sql="INSERT INTO members (Bio)
VALUES
('$_POST[Bio]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con);
?>

<form action="edit.php" method="post">
Bio: <input type="text" name="Bio">
<input type="submit">
</form>

</div>
</body>
</html>
4

2 回答 2

0
<?php
ob_start();
session_start();
if(!isset($_SESSION['Email'])){
header("Location: login.php");
}   
?>

<body>
<div id="wrapper">

<?php
if(isset($_REQUEST['submit'])) {
$con = mysql_connect("HIDDEN");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("HIDDEN", $con);

$sql="INSERT INTO members(Bio) VALUES ('".$_POST['Bio']."')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con);
}
?>

<form action="edit.php" method="post">
Bio: <input type="text" name="Bio">
<input type="submit" name="submit">
</form>

</div>
</body>
</html>
于 2014-12-08T18:16:00.680 回答
0

如果该bio列在同一个表中,那么您需要执行一个UPDATE语句,而不是另一个INSERT语句。您还需要知道用户的 ID。

UPDATE `members` SET `bio` = ?

另外,不要$_POST在 SQL 语句中直接使用变量。那么,您的网站就会容易受到 SQL 注入漏洞的攻击。使用诸如 PDO 之类的东西来准备语句,然后使用绑定参数执行它们。一个例子,在PDO$db的一个实例中:

$sql = "UPDATE `members` SET `bio` = :bio WHERE `id` = :id LIMIT 1";

$statement = $db->prepare($sql);
$statement->bindParam(':bio', $bio);
$statement->bindParam(':id', $user_id);
$statement->execute();

您需要分配$bio$user_id变量。

于 2013-02-05T22:24:39.467 回答