PHP获得当前登录用户ID,详细代码写法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP获得当前登录用户ID,详细代码写法相关的知识,希望对你有一定的参考价值。

如题,小弟正在做一个小微博项目,在当前用户登录后,跳转到个人首页,在当前页可以获取到该登录用户的所有信息,我用SESSION只能获取到用户名,其他信息都不能获取。
通过此页面可以跳转到修改头像页面,但一直是update user set face='1' where id= 0,始终不能获取当前登录用户ID,请前辈指点一下我该如何做,谢谢。

/*
获取用户信息,首先是根据条件来查找用户
$_SERVER["user_id"]  登陆保存user_id保存到session
$_SERVER["user"]    登陆保存用户到session
*/
"select * from user where id='".$_SERVER["user_id"]."' and user ='".$_SERVER["user"]."'"  ; 
/*
更新用户信息首先是要查找出这个用户信息
查找的时候必须传递id参数过去,否则无法找到对应的用户
*/
"select * from user where id='".$_GET["user_id"]."'" ;  // 可以不用根据id来做判断,但是判断的内容必须是唯一的
/*
最后修改完信息后通过表单提交的内容也要带能唯一识别用户的参数,(例如:id)
*/
"update user set face='".$_POST["user_icon"]."' where id='".$_POST["user_id"]."'"

都是手写的,用的好记得采纳哦,还有不懂的可以继续追问。

追问

亲。登录是怎么将id保存到session啊?我可以将用户名和密码存进session,但其他信息都不行。
在登录处理页面,我是这样存ID的:
¥_SESSION['id']=$_POST['id'];
但是错误的,但正确的将id存SESSION应该怎么写呢

追答

这样写当然错啊,这个id是数据库里面的,你把你登陆程序代码页贴上来吧

追问

这是登录页的代码:

这是登录处理页的代码:

 

麻烦亲指点一下哈,感激不尽。

追答

if($row=mysql_num_rows($res)>0)

$_SESSION["id"]=$row["id"]; //后面的id是从数据库那边获取的


你在你原来的基础上加上if里面的session 然后再试试

追问

这样是能够登录成功,但在跳转到个人中心后还是无法获取这个登录用户保存在数据库里面的id , 请问我可以用session将本次登录用户的性别,邮箱,生日,家乡等信息保存吗? 如果可行又该怎么做呢? 可行的话就可在需要显示的地方调用这个session值就行了

追答

你不用那么麻烦的,只要保持用户id和用户名就可以了,不用全部用session,后台那边查询的话根据这2个条件就能查出来

参考技术A

参考技术B 你的用户ID是怎么实现的,数据库里有没有存储用户的ID,如果存了,就在登录成功的地方把当前用户的ID保存到session里面,只能取到用户名那是因为其他信息你没存到session里吧。追问

在登录处理页面,我是这样写的:
$_SESSION['id']=$_POST['id'];
应该是错误的,但正确的将id存SESSION应该怎么写呢

追答

不是这样的,你的用户ID应该是和用户名一样存在数据库里面吧,在数据库里面取出来的时候放进SESSION里
if(mysql_num_rows($res)>0)


$result = mysql_fetch_assoc($res);
$_SESSION['id']=$_POST['id'];
//后面是用户名和密码

追问

这样可以登录。但也无法在个人信息页面获取到当前用户的各种信息啊,比如该用户登录后我会在成功后的页面显示他的头像,性别,邮箱等资料,该怎样做呢?

参考技术C 登录时保存SESSION时为什么不保存id?追问

就是不知道该怎么保存他在数据库的id . 我想在该用户登录成功后在页面上直接显示他的各种信息,如头像,性别,邮箱等,这该怎么做呢?

参考技术D 用session保存啊。。

使用php创建应用程序ID后如何从facebook获取用户详细信息

【中文标题】使用php创建应用程序ID后如何从facebook获取用户详细信息【英文标题】:How to get user details from facebook after creating app id using php 【发布时间】:2016-05-19 07:13:20 【问题描述】:

我需要在我的网站上包含 facebook 登录以进行注册。我创建了一个 facebook 应用程序并登录。我只从 facebook 获取 prfile 名称和用户 ID。如何从 facebook 获取电子邮件和其他用户信息?

这些是我从 facebook 获得的记录:

数组([名称] => facebook 用户 [id] => 92141138733449309036)

<?php
    require 'src/facebook.php';
    $db = file_get_contents('../../../Bin/Configuration.php');
    $exp_db = array();
    $exp_db = explode('\'',$db);
    // print_r($exp_db);
    // exit;

    $hostname = $exp_db[1];
    $username = $exp_db[3];
    $password = $exp_db[5];
    $database = $exp_db[7];

    $connect = mysql_connect($hostname,$username,$password) or die(mysql_error());
    mysql_select_db($database,$connect) or die(mysql_error());


    $facebook = new Facebook(array(
      // 'appId'  => $recordFB['fb_application_id'],
      // 'secret' => $recordFB['fb_application_secret'],
      'appId'  => '1699756843642082',
      'secret' => 'a8aab00a1e1a5bdcdd9d4665c0972637',

      'cookie' => true,
    ));

    // Get User ID
    $user = $facebook->getUser();

    // We may or may not have this data based on whether the user is logged in.
    //
    // If we have a $user id here, it means we know the user is logged into
    // Facebook, but we don't know if the access token is valid. An access
    // token is invalid if the user logged out of Facebook.

    if ($user) 
      try 
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');
       catch (FacebookApiException $e) 
        error_log($e);
        $user = null;
      
    
    else
    
      echo "You are NOT Logged in";
    

    if (!$user_profile) 
      $loginUrl=$facebook->getLoginUrl(array('canvas'=>1,
                                             'fbconnect' => 0,
                                    'req_perms'=> 'email,user_birthday ,publish_stream',
                                          'next' => CANVAS_PAGE,
                                          'cancel_url' => CANVAS_PAGE));
      echo '<fb:redirect url="' . $loginUrl . '" />';
      # code...
    else
    
      echo "you can use this app";
    

    $email=$user_profile['email'];
?>

我无法从 facebook 获得其他详细信息。请告诉我从 facebook 访问用户详细信息的可能解决方案...提前谢谢您。

【问题讨论】:

how to get facebook profile details usring script的可能重复 【参考方案1】:

在更新日志中搜索“声明性字段”:https://developers.facebook.com/docs/apps/changelog#v2_4

不指定要获取的字段,只会获取ID和名称。

【讨论】:

以上是关于PHP获得当前登录用户ID,详细代码写法的主要内容,如果未能解决你的问题,请参考以下文章

在HumHub中使用第三方应用程序获取用户详细信息

如何将 PHP 用户详细信息(会话)解析到 Node.js 服务器?

如何获得提示,要求用户在登录时输入其帐户详细信息?

从 Grafana 仪表板获取当前用户详细信息

Linux基础笔记

PHP+MySQL制作简单的用户注册登录界面(注释超详细~附源代码)