如何正确填写表格以访问数据?

问题描述 投票:0回答:1

好的,所以我搜索了,似乎无法找到我正在寻找的任何东西。

我想要完成的背景:我有一个网站,不需要登录信息,因为它是一个机密的网站,我不希望发布链接到任何一个帐户的任何东西。因此,我计划这项工作的方式是,每当有人创建一个帖子,你必须填写一个表格,例如...标题 - 信息 - 密码短语(简单的单词) - 密码(5 - 数字从10000 - 99999)。

现在可以在以后访问的原因是,他们可以在创建事实之后编辑或删除帖子,而无需链接帐户以识别它们如上所述。

我有简单的以下代码来编辑代码,但我怎么能说它(passPhrase和passCode)必须匹配以提取相关数据?在访问编辑页面之前我会有一个表单输入正确的信息。

表格到达编辑页面

<div id="form-holder">
        <form action="function/example.php" method="post"> 
            <h3>Pass ID:</h3>
            <input type="text" name="ID" id="ID">
            <h3>Passcode:<br /></h3>
            <input type="text" name="passcode" id="passcode">
            <p><input class="button" type="submit" value="Edit"></p>
        </form>
    </div>

编辑页面:

<?php
$server = "*****";
$user = "*****";
$pass = "*****";
$dbname = "*****";

//Creating connection for mysqli

$conn = new mysqli($server, $user, $pass, $dbname);

//Checking connection

if($conn->connect_error){
 die("Connection failed:" . $conn->connect_error);
}

$article_id = $_GET['id'];

if( ! is_numeric($article_id) )
  die("Looks like you are lost!  <a href='#'>Back to Home</a> ");

$query = "SELECT * FROM `DBname` WHERE `ID` =$article_id LIMIT 0 , 30";

$comments = mysqli_query($conn,$query);

while($row = mysqli_fetch_array($comments, MYSQL_ASSOC))
{

    $title = $titleHere['title'];
    $info = $infoHere['info'];

    $title = htmlspecialchars($row['title'],ENT_QUOTES);
    $info = htmlspecialchars($row['info'],ENT_QUOTES);

echo "<form action='function/update-post.php?id=$article_id' method='post'>";
echo "<h3>Title:</h3>";
echo "<input type='text' name='title' id='title' value='$title'>";
echo "<h3>info:</h3>";
echo "<textarea name='info' id='info'>$info</textarea>";
echo "<p><input class='button' type='submit' value='Update'></p>";  
echo "</form>";
}
?>

我找到了很多关于基于帐户的解决方案的指南我想这是使得这个请求不同的原因是没有帐户。并且用户实际上无法知道帖子的密钥ID。

任何帮助将不胜感激,希望其他人将从中受益。

php mysql forms access account
1个回答
0
投票

您使用数据库进行登录并存储用户和密码。我会更进一步加密数据库中的密码,然后在登录时加密密码。然后使用count语句查看是否存在具有用户名的哈希样式密码的行。最好的方法是使用带有预处理语句的pdo哦,关闭php中的错误报告,这样它就不会在浏览器中输出,只是日志文件应该记录错误。对于机密性,你只是在他们的表中没有这些信息。您需要做的最后一项任务是设置一个cron作业来清除网站访问日志。这是记录IP地址的地方。

我也会将您的表单更改为所有帖子类型,因此编辑过程无法预订标记并打开以进行攻击。所以我会从网址中删除id并将其带入表单中,如下所示:

   echo '<input type="hidden" name="id" value="'.$article_id.'" >';

您还应该在以下php页面中清理用户的帖子变量,如:

         $var1=htmlentities($_POST['var1'], ENT_QUOTES);
© www.soinside.com 2019 - 2024. All rights reserved.