我正在一个drupal网站上工作,我允许用户在发布内容的同时登录.我已经成功地将电子邮件和密码字段添加到原始表单中,但我仍然不知道应该如何实际登录用户.(我的计划是在创建内容之前在验证步骤中执行此操作,以使登录用户所有者访问内容).
我可以在user.module API中找到三个以某种方式看起来正确的函数:
现在,我的问题是它是哪一个?我是否走在正确的轨道上?
我正在为我正在开发的网站创建一个登录脚本,并且正在使用PHP会话来验证用户身份.
我已将脚本设置为仅对cookie使用HTTP,并且仅使用cookie来存储会话ID.
基本上,我想知道两件事
1.我还有什么办法可以让我的登录更安全吗?
和
2. PHP手册说session_destroy()删除会话数据,但不会取消任何会话变量.如果是这种情况,它实际上是什么破坏,我应该在注销时手动取消设置会话变量吗?
谢谢你的帮助
编辑: 我使用免费托管,无法安装任何Apache插件或更改php.ini文件
编辑: 我已经读过使用SSL来阻止会话ID被盗,但我没有能力在服务器上安装OpenSSL,那么还有其他方法可以保护会话ID吗?
我有一个用户登录的简单脚本.我正在尝试使用会话,以便用户保持登录他浏览网站的任何页面.
我有这些脚本:
index.php - http://pastebin.com/yqLtqPRC
login.php - http://pastebin.com/KcQWjfw1
dbConfig.php - http://pastebin.com/GKyfaJJV
upload.php - http://pastebin.com/iMrz3WB8
functions.php - http://pastebin.com/x44KrmxK
如果用户登录或登录,"您现在已登录,则应显示$ user",但默认为"您尚未登录".在整个页面中显示.
每当我更改页面或尝试登录时,都不会显示任何错误消息.
最新版本的代码可以在这里找到: http ://www.mediafire.com/?7n6qo3p4gpkaao4
有人可以帮忙吗?
谢谢.
我对PHP中的会话ID到底是什么以及它们的作用感到困惑。我正在用用户信息,注册和登录来编码网站。在PHP的登录脚本教程中,许多人都包括session_start()。他们还检查当前会话ID是否与用户(登录时存储的)数据库中存储的会话ID匹配,如果不匹配,则注销用户(通过设置标头重定向到登录页面)。
会话ID的功能/用途到底是什么?以及如何在不创建重定向循环的情况下将它们合并到我的登录脚本中?
谢谢你的帮助。
我正在尝试将PHP中的登录脚本拼凑成一个学习项目.
这是用户注册时我的数据库写入的代码.这两个值都写入数据库.
$this->salt = md5(uniqid());
$this->password = md5($password.$salt);
Run Code Online (Sandbox Code Playgroud)
登录后,将触发以下函数.
function challengeLogin($submittedPassword, $publicSalt, $storedPassword){
if(md5($submittedPassword.$publicSalt) == $actualPassword){
return 0;
}else{
return 1;
};
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,在单步执行代码时,这两个值从未达到过.有人可以帮我理解为什么吗?
有很多类似的问题,但我没有看到:
我正在使用用户的电子邮件用户名 - 因为它们是独一无二且令人难忘的(未显示).
并且send_a_new_random_password用于"检索".
但是,这将允许不满的前任一次又一次地更改用户密码:(
为了解决这个问题(这里来了)我希望在用户记录中有2个"正确"密码
- PASSWORD和newPASSWORD(两者都用PHPass 0.3进行散列)
在下一次成功登录(检查两者)时,我将使用过的一个保存为PASSWORD,并转储newPASSWORD - 这样使click_this_obscure_URL_to_enable进程无法执行:)
我忽略了什么吗?
我正在尝试建立一个简单的用户登录系统.但是,我拥有会话和工作的所有东西,但用户登录不使用数据库.我可以输入任何用户名和密码并登录.
这是我的登录页面:
<?php
session_start();
$db_host = "localhost"; // Place the database host here
$db_username = "data_user"; // Place the username for the MySQL database here
$db_pass = "password"; // Place the password for the MySQL database here
$db_name = "database_name"; // Place the name for the MySQL database here
if (isset($_POST['username']))
{
// MySQL Connection
$db_link = mysql_connect("$db_host","$db_username","$db_pass") or die ("could not connect to mysql. Make sure you have correctly inputed your host, username, and password.");
mysql_select_db("$db_name") or die ("no …Run Code Online (Sandbox Code Playgroud) 我在SQL Azure数据库中有一个名为'cust_view'的视图.
我的目标是为我的应用程序的最终用户提供对应用程序数据库中某些数据的只读访问权限,这样他们就可以通过直接连接到SQL Server Management Studio中的应用程序数据库或其他一些商业智能来从他们的侧面运行他们的即席查询工具.
问题在下面给出的T-SQL脚本中,是否有一些语句不必满足这个目标?
--connect to master database from SSMS.
CREATE LOGIN [readonly] WITH PASSWORD=N'61*4#@amz'
GO
--connect to user database
CREATE USER [readonly] FOR LOGIN [readonly]
GO
EXEC sp_addrolemember 'db_datareader', 'readonly'
GO
CREATE VIEW cust_view
AS
SELECT * FROM Calls;//add whatever other join you would like to expose more data from related tables
GO
GRANT SELECT ON cust_view TO [readonly]
GO
Run Code Online (Sandbox Code Playgroud)