我有一个php登录,用户输入用户名/密码,它会根据登录信息检查mysql数据库.如果经过身份验证,则会通过php创建会话,用户现在可以使用php会话访问系统.我的问题是,一旦他们通过php/session进行身份验证,那么授权用户查看他们是否具有使用socket.io访问nodejs服务器的正确登录权限的过程是什么?我不希望这个人有权访问nodejs/socket.io函数/服务器,除非他们通过php登录验证.
开始尝试构建类,我开始将用户注册/登录转换为单个类.想要在走得太远之前停下来寻求反馈.
class UserService
{
private $_email;
private $_password;
public function login($email, $password)
{
$this->_email = mysql_real_escape_string($email);
$this->_password = mysql_real_escape_string($password);
$user_id = $this->_checkCredentials();
if($user_id){
$_SESSION['user_id'] = $user_id;
return $user_id;
}
return false;
}
protected function _checkCredentials()
{
$query = "SELECT *
FROM users
WHERE email = '$this->_email'";
$result = mysql_query($query);
if(!empty($result)){
$user = mysql_fetch_assoc($result);
$submitted_pass = sha1($user['salt'] . $this->_password);
if($submitted_pass == $user['password']){
return $user['id'];
}
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我与课程有关的一个问题是:我应该像这样构建它:
$User = new UserService();
$User->login($_POST['email'], $_POST['password']);
Run Code Online (Sandbox Code Playgroud)
login方法自动调用_checkCredentials方法的位置.或者它应该像:
$User = new …Run Code Online (Sandbox Code Playgroud) 当用户使用电子邮件地址注册时(即不提供现有的OpenID),Stackoverflow是否会创建新的OpenID?你是怎样做的?你在C#中有代码示例吗?Java的?蟒蛇?
我目前正在寻找一个PHP的用户管理系统,可以很容易地集成和构建.我已经google了它,我已经有两三个已经在列表中试用,但是我再次希望根据使用情况和解决方案的经验获得个人推荐的好处.
所以如果你知道过去曾经为你工作的任何东西,我真的很感激,如果你能推荐的话.
谢谢!
我之前发过一个类似的问题,但从来没有真正得到过帮助我的答案,所以我想再试一次.作为免责声明,我知道这里的许多信息并不遵循完美的编码习惯,但它仅用于练习目的.我已经尝试了一百万件事,似乎没有什么工作,因为我不确定应该去哪里!我迫切需要一些(任何!)帮助,所以如果你能提供任何东西,请提前感谢!
我正在尝试创建一个简单的表单/页面,它使用一些基本的cookie和会话内容来生成一些用户特定的数据.我一直在努力,直到遇到一些我无法弄清楚的问题.在我的第一页上一切都很好,除了我只想要用户正在使用的浏览器的名称.(例如,我只想要简单的标题:Firefox而不是浏览器的整个长版本.)我已经看到这样做了所以我认为这是可能的,我只是不知道该怎么做!
我真正的问题出现在这里,因为我不确定如何将IP地址,浏览器信息和当前日期/时间(我希望在第2页上显示)存储为会话变量.尝试了一些我找到的东西,但我不认为我做得对.
我还无休止地尝试将用户名和密码存储为两个单独的cookie,每个...建议?最后,我需要做什么才能使用输出缓冲来获得位置标头(用于调用form_data.php)?
(不确定这会有用,考虑到我可能做错了什么!LOL)这是我的代码的完全精简版本.试图发布我最干净的版本,即使它没有太多的信息,所以你可以很容易地看到我想要做的事情.
主文件代码:
<?php
header('Location: form_data.php');
setcookie('username', $_POST['username']);
setcookie('password', $_POST['password']);
//I know this isn't working.
//honestly I just left this in here as to show where I had been
//trying to save the cookie data. Pretty obvious how bad my
//trial and error with this went!
}
?>
<?php
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
echo " By the way, your IP address is: </b>".$_SESSION['ip']."<br />";
echo " You already know this, but the browser you are currently using
to …Run Code Online (Sandbox Code Playgroud) 我没有运行关键任务网站,所以我不是在寻找工业强度解决方案.但是,我想防止基本攻击,例如有人嘲笑硬盘上的虚假页面并试图获得未经授权的访问.是否有任何标准技术可确保仅从合法用途接受表单提交?
我需要验证密码.我目前使用:
preg_match("/^[a-z0-9_-]*$/i", $pass).
我想补充一下这个长度.我的mysql表设置如下:userpassword varchar (40) NOT NULL,.所以在6到40个字符之间.我想允许所有没有危险的字符放入我的数据库中.