4 php sql passwords wordpress salt
我想用标准的Wordpress盐加密发送到数据库的密码,就像Wordpress在创建新用户时那样.我知道我可以在wp-config.php中找到我的盐.所以我不需要生成盐; 我只需要加密密码.
因此,当我创建mypassword0时,发送到数据库的是由我的Wordpress盐加密的文本字符串.
这是我的原始代码.(谢谢Yadav Chetan的帮助!)现在我只需要添加salt加密代码.
<?php
if(isset($_POST['submit'])){
$query = "INSERT INTO mytable_one
(user, pass)
VALUES
('".$_POST['user']."', '".$_POST['pass']."')";
$query = "INSERT INTO mytable_two
(fname, lname)
VALUES
('".$_POST['fname']."', '".$_POST['lname']."')";
mysql_query($query);
}else{
?>
<div class="content">
<form method="post">
<div><strong>First Name:</strong><span class="errortext">*</span></div>
<div><input id="first-name" name="fname" type="text" /></div>
<div><strong>Last Name:</strong><span class="errortext">*</span></div>
<div><input id="last-name" name="lname" type="text" /></div>
<div><strong>User:</strong><span class="errortext">*</span></div>
<div><input id="user-login" name="user" type="text" /></div>
<div><strong>Password:</strong><span class="errortext">*</span></div>
<div><input id="user-pass" name="pass" type="text" /></div>
<div><input id="submit-button" value="submit" type="submit" />
</div>
</form>
<?php }?>
Run Code Online (Sandbox Code Playgroud)
更新:
RRikesh建议我将mysql_*更改为WPDB代码.所以我尝试将其更改为wpdb,我还需要将其与其他代码集成.那么你可以帮我解决这个更新的代码吗?
<?php
if(isset($_POST['submit'])){
$firstname = $_POST['fname'];
$lastname = $_POST['lname'];
$username = $_POST['user'];
$password = $_POST['pass'];
$wpdb->query(
$wpdb->prepare(
"INSERT INTO mytable_one
(user, pass) VALUES (%s, %s)",
$username,
wp_hash_password($password)
)
);
$wpdb->query(
$wpdb->prepare(
"INSERT INTO mytable_two
(fname, lname) VALUES (%s, %s)",
$firstname,
$lastname,
)
);
}else{
?>
<div class="content">
<form method="post">
<div><strong>First Name:</strong><span class="errortext">*</span></div>
<div><input id="first-name" name="fname" type="text" /></div>
<div><strong>Last Name:</strong><span class="errortext">*</span></div>
<div><input id="last-name" name="lname" type="text" /></div>
<div><strong>Username:</strong><span class="errortext">*</span></div>
<div><input id="user-login" name="user" type="text" /></div>
<div>Password:</div>
<div><input id="user-pass" name="pass" type="text" /></div>
<div><input id="submit-button" value="submit" name="submit" type="submit" /></div>
</form>
<?php }?>
Run Code Online (Sandbox Code Playgroud)
UPDATE2
我无法让WPDB方法工作.但是,使用我的otd方法,我能够拥有密码.这是工作代码:
<?php
if(isset($_POST['submit'])){
$password = $_POST['user_pass'];
$hash = wp_hash_password('$password');
$query = "INSERT INTO wp_users
(fname, lname, user, pass) VALUES ('".$_POST['fname']."', '".$_POST['lname']."', '".$_POST['user']."', '".$hash."')";
mysql_query($query);
}else{
?>
Run Code Online (Sandbox Code Playgroud)
也许我应该打开一个关于WPDB的新问题,因为这个问题是关于哈希密码的问题,这个问题已经解决了.
使用wp_hash_password()散列密码.
不要使用mysql_*PHP 5.5.0中不推荐使用的函数,并在PHP 7.0.0中删除它们.
请改用WPDB类.
$wpdb->query(
$wpdb->prepare(
"
INSERT INTO mytable_one
( fname, lname, user, pass )
VALUES ( %s, %s, %s, %s )
",
$firstname,
$lastname,
$username,
wp_hash_password( $password )
)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15408 次 |
| 最近记录: |