gpt4 book ai didi

php/mysql 排序问题和表单清理?

转载 作者:行者123 更新时间:2023-11-30 01:16:43 24 4
gpt4 key购买 nike

我对脚本编写还很陌生,但我一直很好地遵循代码逻辑。我有两个工作脚本(下面发布),一个将表单发布到 mysql 数据库,另一个在表的同一页面上提取信息。对于我想要完成的以下事情,我无法找到帮助。

1.) 清理表单,我被告知它对注入(inject)/其他非常开放。大多数人会提交的是文本,我希望他们最终能够发布由第二个脚本调用和点击的 html 链接。

2.) 我希望回调脚本对信息进行排序,以便最新的帖子位于顶部。 (我可以在名为“日期”的类别和内容旁边创建一个新的 mysql 列,自动检测日期/时间并使用它进行排序吗?我很想看到一些示例代码。

这是提交表单

<html>
<div style="width: 330px; height: 130px; overflow: auto;">
<form STYLE="color: #f4d468;" action="send_post.php" method="post">

Category: <select STYLE="color: #919191; font-family: Veranda; font-weight: bold; font-size: 10px; background-color: #000000;" name="category">
<option value="category 1">category 1</option>
<option value="category 2">category 2</option>
<option value="category 3">category 3</option>
<option value="Other">Other</option>
</select> <br>

<textarea overflow: scroll; rows="4" cols="60" STYLE="color: #919191; font-family: Veranda; font-weight: bold; font-size: 10px; background-color: #000000; width:300px; height:80px; margin:0; padding:0;" name="contents"></textarea><br>
<input type="submit" STYLE="color: #919191; font-family: Veranda; font-weight: bold; font-size: 10px; background-color: #000000;" value="Create Log">
</form>
</div>
</html>

sendpost.php

<?php
//Connecting to sql db.
$connect=mysqli_connect("localhost","myuser","mypassword","mydb");

header("Location: http://mywebsite.com/myhomepage.php");

if (mysqli_connect_errno()) { echo "Fail"; } else { echo "Success"; }

//Sending form data to sql db.
mysqli_query($connect,"INSERT INTO mydbtable (category, contents)
VALUES ('$_POST[category]', '$_POST[contents]')");

?>

然后在页面上调用 get php

<?php
$con=mysqli_connect("localhost","myuser","mypassword","mydb");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM mydbtable");

echo "<table border='1'>
<tr>
<th>Category</th>
<th>Contents</th>
</tr>";

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['category'] . "</td>";
echo "<td>" . $row['contents'] . "</td>";
echo "</tr>";
}
echo "</table>";

mysqli_close($con);
?>

另外,在两个脚本中使用 $con=mysqli_connect 命令进行连接的情况下,这基本上是公开的吗?难道有人不能访问 php 并查看该信息吗?

我真的很感谢您的帮助,非常愿意阅读和学习正确的做事方法!

最佳答案

这两个问题会对您有所帮助。

  1. How can I prevent SQL injection in PHP?

  2. How can I specify sql sort order in sql query

    SELECT * FROM mydbtable ORDER BY date
<小时/>

对于公开的数据库密码和连接...通常人们只包含该 php 文件(即使它并没有使其更安全)。但是,如果您对文件系统具有 root 访问权限,则可以将其放在足够高的目录中,位于 htdocs 之上,并且无法通过 url 访问它。

dbconnect.php

$con=mysqli_connect("localhost","myuser","mypassword","mydb");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

index.php

include 'dbconnect.php';

但是,这实际上并没有使其更安全,只是方便您不会意外地发布带有密码的代码。

关于php/mysql 排序问题和表单清理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18989293/

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