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

时间:2018-03-04 16:07:12

标签: php mysql forms access account

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

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

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

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

FORM TO REACH EDIT PAGE

<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。

任何帮助都会受到赞赏,希望其他人也能从中受益。

1 个答案:

答案 0 :(得分:0)

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

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

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

你也应该在下载的php页面中清理用户的post varibles,如:

         $var1=htmlentities($_POST['var1'], ENT_QUOTES);