我在PHP中创建表单以重置用户密码.当用户发送重置请求时,它会发送链接到Mail以重置密码.在链接是domain.com/index.php?link=reset-password&code=1_Xzpq+/F64xwZ/oQ/U4TkTQ==
1 = User_id
Xzpq .. =用户密码哈希(盐渍)
我需要将变量上的UserID和PasswordHash爆炸
我的代码:
function isValidPasswordResetToken($string) {
global $sqlConnect;
//$string_exp = explode('_', $string);
list($user_id, $password) = explode('_', $string);
//$user_id = $string_exp[0];
//$password = $string_exp[1];
if (empty($user_id) or !is_numeric($user_id) or $user_id < 1) {
return false;
}
if (empty($password)) {
return false;
}
$query = mysqli_query($sqlConnect, " SELECT COUNT(`user_id`) FROM " . USERS . " WHERE `user_id` = {$user_id} AND `password` = '{$password}' AND `active` = '1' ");
return (Sql_Result($query, 0) == 1) ? true …Run Code Online (Sandbox Code Playgroud) 我们的 Symfony 3.4 应用程序上有 memcache:
cache:
app: cache.adapter.memcached
default_memcached_provider: "%app.memcached.dsn%"
Run Code Online (Sandbox Code Playgroud)
然而,我们被要求使用多个缓存服务器,因此仅传递一个 DSN 是不够的。
在这里(https://symfony.com/blog/new-in-symfony-3-3-memcached-cache-adapter),我看到你可以用这样的代码创建它:
$client = MemcachedAdapter::createConnection(array(
// format => memcached://[user:pass@][ip|host|socket[:port]][?weight=int]
// 'weight' ranges from 0 to 100 and it's used to prioritize servers
'memcached://my.server.com:11211'
'memcached://rmf:abcdef@localhost'
'memcached://127.0.0.1?weight=50'
'memcached://username:the-password@/var/run/memcached.sock'
'memcached:///var/run/memcached.sock?weight=20'
));
Run Code Online (Sandbox Code Playgroud)
但是,这不是自动连接的。
我相信我们需要创建一个提供程序类,或者以某种方式让它addServer($dsn)在实例化后进行调用。我还在随机帖子中看到以下内容:
memcache:
class: Memcached
calls:
- [ addServer, [ %app.memcached.dsn.1% ]]
- [ addServer, [ %app.memcached.dsn.2% ]]
Run Code Online (Sandbox Code Playgroud)
然而它并没有真正帮助或者我错过了一些东西。
有人可以帮忙吗?我如何创建这个提供者类?