【问题标题】:PHP session on android applicationandroid应用程序上的PHP会话
【发布时间】:2014-05-12 04:41:03
【问题描述】:

我正在为我的 android 应用程序创建一个 php Rest API。我想获取登录用户的所有信息(使用他的电子邮件和密码登录)。为此,我使用$_SESSION['email'],但是当我使用我的应用程序尝试此操作时,没有用。你能解释一下如何在 android 应用程序中使用 php 会话吗?非常感谢

function getLoggedUserInfo() {

    $sql = "SELECT  `id`,`name`, `gender` FROM users WHERE email=:email";

    try {

    $paramemail = $_SESSION['email'];

    $dbCon = getConnection();
        $stmt = $dbCon->prepare($sql);  
        $stmt->bindParam("email", $paramemail);
        $stmt->execute();
        $user = $stmt->fetchObject();  
        $dbCon = null;
        echo json_encode($user); 


    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
}

【问题讨论】:

    标签: php android session login


    【解决方案1】:

    你能解释一下如何在android应用程序中使用php会话吗?

    不能

    会话保留在PHP 服务器上,您无法共享它们。这实际上是安全漏洞。


    将电子邮件添加到您的声明中:

     $sql = "SELECT  `id`,`name`, `gender`, `email` FROM users WHERE email=:email";
    

    【讨论】:

    • 感谢您的回复。你能告诉我如何存储登录的用户电子邮件并检索它,以便进行 sql requet。
    • @user3626329 看我的回答。
    【解决方案2】:

    执行以下操作:

    1. 将 Json 传递给您的 Android 应用(从服务器进行身份验证时)

    2. 在 android 应用程序上使用该 JSON 并保存一些确定身份验证用户的数据。您可以通过创建 sqlite 或使用共享偏好来做到这一点。

    3. 现在,只要您想执行真实的任务,就可以通过 POST 将身份验证状态连同您的数据一起发送到服务器。
    4. 在服务器上检查 POST 数据以进行身份​​验证,如果身份验证执行您的任务。

    我希望这会有所帮助。如需更好的可视化,请参阅this

    还有一个提示:

    现在您可以使用 $_POST['email'] 而不是 $_SESSION['email'](这是从 android 应用程序发送的),您可以发送一些身份验证参数作为 POST,然后检查身份验证然后执行操作,

    if($_POST['authenticate'] == 1){
      $email = $_POST['email'];
      // Perform your function implementation
    }
    
    ****  REMEMBER: All those POSTs are send from android app.
    

    【讨论】:

    猜你喜欢
    • 2014-10-09
    • 2011-08-22
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 2017-12-19
    • 2019-01-21
    • 1970-01-01
    相关资源
    最近更新 更多