- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
问候,
我正在开发一个登录系统,但遇到了黑莓浏览器身份验证问题。 PHP 的 session_regenerate_id() 似乎有问题,有人可以建议替代方案吗?以下是身份验证和登录脚本:
更新看起来一般的 session 都不起作用。取出 session_regenerate_id() 只是为了看看它是否会起作用,它每次都会重定向我,就好像 $_SESSION['MD_SESS_ID']
是空白的一样。真的卡在这里,任何想法将不胜感激。设备上的 Cookie 已启用,使用的是 Blackberry Bold 9650。它适用于我的 iPod Touch 和我 PC 上的所有浏览器。
登录
<?php
session_start();
include $_SERVER['DOCUMENT_ROOT'] . '/includes/pdo_conn.inc.php';
//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return $str;
}
$username = clean($_POST['username']);
$password = clean($_POST['password']);
if ($username != "" && $password != "") {
$getUser = $db->prepare("SELECT id, username, password, salt FROM uc_dev WHERE username = ? LIMIT 1");
$getUser->execute(array($username));
$userDetails = $getUser->fetch();
$dbPW = $userDetails['password'];
$dbSalt = $userDetails['salt'];
$hashedPassword = hash('sha512', $dbSalt . $password);
if ($hashedPassword == $dbPW) {
//Login Successful
session_regenerate_id();
$_SESSION['MD_SESS_ID'] = $userDetails['id'];
header('Location: http://somewhere.com');
session_write_close();
} else {
header('Location: http://www.somewhere.com');
exit();
}
} else {
header('Location: http://somewhere.com');
exit();
}
?>
授权
<?php
//Start the session
session_start();
//Verify that MEMBER ID session is present
if(!isset($_SESSION['MD_SESS_ID']) || (trim($_SESSION['MD_SESS_ID']) == '')) {
$_SESSION = array();
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finally, destroy the session.
session_destroy();
header("Location: http://somewhere.com");
exit();
}
?>
最佳答案
前一段时间,我在做一些黑莓开发,发现浏览器无法处理同名的多个cookie。不确定他们是否已经解决了这个问题。
因此,如果您不止一次发送 Set-Cookie
header (使用 setcookie
、session_start
或 session_regenerate_id
),每次都使用相同的名称,这可能会导致您的问题。
您可能希望在对象或数组中跟踪需要输出的 cookie,并且仅在请求结束时才将它们发送到浏览器。这样,如果您需要在请求中间更改它们的值,您只需覆盖数组的值,而不是发送另一个 cookie header 。
This page也可能有帮助——从 PHP 的 session_regenerate_id
页面链接到它的人。
关于PHP session_regenerate_id 和黑莓浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4598690/
我有一个奇怪的问题,在我使用 重新生成 session ID 之后 session_regenerate_id(true); cookie 似乎失去了它的“Secure, HttpOnly”标志。 我
我有一个网页,我想在用户登录时重新生成 session ID。我遇到的问题是运行 session_regenerate_id(); 然后尝试附加 $_SESSION ['user'] = $row;
我正在为我的 session 使用数据库处理程序,它工作正常但现在我遇到了身份验证问题。 当用户使用用户名/密码登录时,我执行 session_regenerate_id,之后我尝试选择当前的 ses
问候, 我正在开发一个登录系统,但遇到了黑莓浏览器身份验证问题。 PHP 的 session_regenerate_id() 似乎有问题,有人可以建议替代方案吗?以下是身份验证和登录脚本: 更新看起来
我正在我的网站上创建一个登录功能,我正在考虑在每个页面上重新生成 session ID 以提高安全性。 我已经阅读了 PHP:s 关于 regenerate_id 的信息,但是 PHP 页面上的帖子与
为什么以及何时应该在 php 中使用 session_regenerate_id() 函数?使用 session_start() 后是否应该一直使用它?我听说我必须使用它来防止 session 固定,
我正在研究我的网站的安全性,我会理解为什么应该谨慎使用 session_regenerate_id。 在 php 手册文档( https://www.php.net/manual/fr/functio
我正在从受 session 保护的页面执行标准的 getJSON 查询: $.getJSON('queries.php',{q: 'updateEvent', param1: p1}, fun
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Close session and start a new one 我使用 wampserver2.1 ph
医生说 session_create_id() 用于为当前 session 创建新的 session ID。session_regenerate_id() 使用新生成的 session ID 更新当前
我想稍微保护一下我的应用程序,尤其是我想改进 session 的处理方式。所以,此刻我知道了几个事实: session_regenerate_id(false) 不破坏旧 session sessio
我有一个脚本,用于完成当前 session 并开始一个新 session 。我使用了一段代码,它在我的开发计算机上运行良好。然而,当我将其发布到生产服务器时, session ID 始终保持不变。 以
session_id($randomString) 和 session_regenerate_id() 之间有什么明显区别?两者似乎都改变了 session ID: session_regenerat
我开发了一个 API,最初只能通过浏览器使用,但从未发现问题,但我现在正尝试通过第三方 Android 库 (OkHttpClient) 连接到它,并且我已经测试了我所看到的使用 REST API 测
我正在尝试对我的 Controller (Yii 框架)进行单元测试。 /** * @dataProvider provider */ public function testActi
我对某些 session 功能和 Chrome 进行预取/呈现的方式有疑问。我正在尝试将一个论坛软件 (esoTalk) 与一个自定义的 laravel 4.3 应用程序连接起来。我有身份验证事件监听
好吧,我是 session 的新手,让我们想象一下我们有一个小的登录站点, 这是一个逻辑 登录 如果密码正确 = 使用 $_SESSION[isaloginuser] = 1 使用 if $_SESS
我有标准的身份验证情况...访客填写登录名+密码以形成表单,php 脚本在数据库中对其进行身份验证并重定向回某个页面。 在这个过程中,我们只是在重定向之前客户成功通过身份验证时添加 session_r
通过 session 登录代码时,我随机收到以下错误;警告:session_regenerate_id(): session 对象销毁失败..., 我在 Windows 8.1 Pro 64 位上使用
我正在制作一个消息系统,其中消息ID是session_id并且它位于session_regenerate id上。 它工作正常,但是当我更改模板时,它不断出现如下错误: " Warning: sess
我是一名优秀的程序员,十分优秀!