gpt4 book ai didi

php - 使用 php 和 HTML5 表单更新 MySQLi 数据库

转载 作者:行者123 更新时间:2023-11-29 20:54:14 25 4
gpt4 key购买 nike

在我的网站上,我有一个管理页面,我希望能够使用表单更新数据库中的信息。

这是我用来输入信息和更新数据库中内容的代码:

adminform.php

<html>
<head>
<link rel="stylesheet" href="assets/css/main.css" />
</head>
<body>

<header id="header">
<h1><a href="home.php">SafeTNet</a></h1>
<nav id="nav">
<ul>

<li>Admin Page Only</li>
<li></li>


<li><a href="logout.php" class="button">Logout</a> </li>

</ul>
</nav>
</header>

<h1> Select a member </h1>
<br />
<select name="members" onchange="showUser(this.value)">
<option value="">Select a member email</option>
<?php
$query = "SELECT * FROM members";
$mysqli = new mysqli('localhost','root','root','SafeTNetD');
$result = $mysqli->query($query);
while($row = $result->fetch_assoc())
echo '<option value="'.$row["email"].'">'.$row["email"].'</option>';
?>
</select>
<div id="signup">
<h2>Update Your Member Information</h2>
<form method="post" action="admin1.php">
<table>
<tr>
<td>Email</td>
<td><input type="text" name="email" required="required"></td>
</tr>
<tr>
</tr>
<tr>
<td>City </td>
<td><input type="text" name="city"></td>
</tr>
<tr>
</tr>
<tr>
</table>
<br><br>
<div id="buttons">
<input type="submit">
</div>


</body>
</html>

admin1.php

<html>
<head>
<title>Admin</title>
<link rel="stylesheet" href="assets/css/main.css" />
</head>
<body>


<header id="header">
<h1><a href="home.php">SafeTNet</a></h1>
<nav id="nav">
<ul>

<li>Admin Page Only</li>
<li></li>


<li><a href="logout.php" class="button">Logout</a></li>

</ul>
</nav>
</header>
<br />

<?php
$query = "SELECT * FROM members";
$mysqli = new mysqli('localhost','root','root','SafeTNetD');
$result = $mysqli->query($query);
while($row = $result->fetch_assoc())
echo '<option value="'.$row["email"].'">'.$row["email"].'</option>';
?>
</select>
<br />
<?php
$q=$row["email"];
$mysqli = new mysqli('localhost','root','root','members');
$sql = "SELECT * FROM members WHERE email='".$q."'";
if(array_key_exists('_submit_check', $_POST))
{
$email = $_POST['email'];
$city = $_POST['city'];

$sql = "UPDATE members SET city = '$city' WHERE email = '$q'";
if($mysqli->query($sql) === TRUE)
{
echo 'Record updated successfully<br />';
}
else
{
echo $sql.'<br />' . $mysqli->error;
}
$mysqli->close();
}
?>

<br><br><br>

<footer id="footer">
<img src="logo.jpg" height="50px">

<ul class="copyright">
<li>&copy; SafeTNet. All rights reserved.</li><li> 2016</li>
</ul>
</footer>
</body>
</html>

我可以运行表单,但无法获取要在数据库中更改的信息或回显到屏幕。

提前谢谢您。

最佳答案

if(array_key_exists('_submit_check', $_POST))
{
$email = $_POST['email'];
$city = $_POST['city'];

$sql = "UPDATE members SET city = '$city' WHERE email = '$q'";
if($mysqli->query($sql) === TRUE)
{
echo 'Record updated successfully<br />';
}
else
{
echo $sql.'<br />' . $mysqli->error;
}
$mysqli->close();
}

您的表单中没有名为“_submit_check”的元素。我猜您忘记了提交按钮的名称属性。

您的脚本非常容易受到 SQL 注入(inject)的攻击。您确实不应该简单地将用户输入放入查询中。您可以使用mysqli_real_escape_string()Prepared Statements保护您的应用程序。

为了提高代码的可读性,您可以稍微更改结构。在 admin1.php 中,您应该在输出任何 html 之前执行业务逻辑。所以你首先要检查表单是否已发送,然后再进行数据库操作。检查结果或数据库操作的成功/错误消息可以写入变量中,直到输出站点的内容。

这样,每个开始阅读代码的人都会立即知道“好吧,这个脚本是某种形式的目标,并访问数据库以进行某些写入操作”。

关于php - 使用 php 和 HTML5 表单更新 MySQLi 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37760934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com