最近我一直试图在我在互联网上偶然发现的登录脚本中实现我自己的安全性.在努力学习如何制作我自己的脚本为每个用户生成一个盐之后,我偶然发现了password_hash.
根据我的理解(基于本页的阅读:http://php.net/manual/en/faq.passwords.php),当您使用password_hash时,已经在行中生成了salt.这是真的?
我的另一个问题是,含有2种盐是不是很聪明?一个直接在文件中,一个在DB中?这样,如果有人在数据库中泄露了你的盐,你仍然直接在文件中?我在这里读到,存储盐绝不是一个明智的想法,但它总是让我困惑的是人们的意思.
我最近遇到了一个问题,我需要能够获取我在页面上插入的查询的最后一个ID.这个过程很简单,但我想对这个过程是如何完成的.以下是我的代码:
$query30 = $db->query("INSERT `mybb_quickexample` SET `player1` = '".$row19[username]."', `player2` = '".$row18[username]."', `games` = '".$numberofgames."'")or die( mysqli_error());
Run Code Online (Sandbox Code Playgroud)
如您所见,我刚刚在mybb_quickexample中插入了一些内容,然后生成一个ID.现在在它下面的代码中,我尝试找到ID.
$mmid = $db->insert_id();
foreach($_POST['optiontitle'] as $val){
$val = $db->escape_string($val); //
echo $val;
$query30 = $db->query("INSERT `mybb_quickexample2` SET `gid` = '".$id."', `mid` = '".$mmid."', `optiontitle` = 'OPTION TITLE', `option1` = '$val'")or die( mysqli_error());
}
Run Code Online (Sandbox Code Playgroud)
如您所见,它抓取最近的ID并将其放入新表中.当我需要时,允许这两个表在以后相互对应.
但是,insert_last_id是否会抓取插入数据库的最后一行或者插入页面上数据库的最后一行?现在我不完全确定这背后的机制,但我问这个因为,如果一个人在与另一个人相同的时间加载这个页面怎么办?是否有无与伦比的ID抓取或代码仍然有效?