Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在iPhone应用程序中执行注销?_Php_Iphone_Objective C_Login_Logout - Fatal编程技术网

Php 如何在iPhone应用程序中执行注销?

Php 如何在iPhone应用程序中执行注销?,php,iphone,objective-c,login,logout,Php,Iphone,Objective C,Login,Logout,我对PHP一无所知,但在我的应用程序中,我需要实现用户登录和注销。我发现了这一点,并成功地实现了登录,但如何注销?我只是在谷歌上找不到任何关于它的信息,特别是关于iPhone的信息。PHP教程主要解释了很多关于会话的理论,以及一些不适用于我的特定事件的东西。我很想花时间学习这个理论,但我必须先学习PHP基础知识,这不是我目前需要的 我所需要的只是理解实现注销的正确方法 如果有人能简单地向我解释一下iPhone应用程序和php脚本在登录和注销时的标准交互机制,我会非常高兴 这更重要。您能给我提供几

我对PHP一无所知,但在我的应用程序中,我需要实现用户登录和注销。我发现了这一点,并成功地实现了登录,但如何注销?我只是在谷歌上找不到任何关于它的信息,特别是关于iPhone的信息。PHP教程主要解释了很多关于会话的理论,以及一些不适用于我的特定事件的东西。我很想花时间学习这个理论,但我必须先学习PHP基础知识,这不是我目前需要的

我所需要的只是理解实现注销的正确方法

  • 如果有人能简单地向我解释一下iPhone应用程序和php脚本在登录和注销时的标准交互机制,我会非常高兴
  • 这更重要。您能给我提供几行php和objective-С代码,显示如何实现注销吗
    在我们的应用程序中,我们使用以下模式:

    登录我将跳过(您已完成)

    当用户注销时,我们的应用程序调用一个URL,这被认为是注销。例如:

    很抱歉不方便,但我不是iOS开发者,所以我不知道应用程序是如何调用的,但我想你们应该知道,若登录完成的话

    在脚本logout.php中:

    <?php
        if (!isset($_SESSION))
        {
            exit(json_encode(array('code' => 0, 'message' => 'Logout successful')));
        }
        esle
        {
            $user = $_SESSION['user_id']; // suppose you have stored into $_SESSION['user_id'] logged in user;
            // Do some stuff while logout, maybe some DB interactions.
            if ($shit_happens)
            {
                exit(json_encode(array('code' => 1, 'message' => 'Shit happens')));
            }
            unset($_SESSION['user_id']); // or session_destroy(), if you want completly remove all information about user.
            exit(json_encode(array('code' => 0, 'message' => 'Logout successful')));
        }
    
    并根据从JSON响应中检索到的代码决定用户是否注销。如果他是,下次调用任何依赖于$_SESSION['user_id')的PHP脚本时,都会失败,这可能意味着用户已注销


    我想就这些。

    你到底需要什么?按超时注销还是按用户注销活动?若按活动-不认为这是一个问题,只需调用URL,若用户注销,则调用URL会成功,若不成功,则调用URL会出错。在PHP端,只需通过SESSION\u close()取消设置$\u SESSION,如果您正在使用sessions,如果使用cookie,则只需通过setcookie()终止cookie。如果超时-设置cron作业,只需说出您需要什么,如果您需要,我将解释详细信息。这首先取决于您如何实现登录。我想是基于会话的吧?然后,您只需扔掉客户端上的cookie并销毁服务器上的会话。每个函数调用一次。快速提示,在php中使用
    mysql\u real\u escape\u string
    来停止sql注入(糟糕!),例如
    u=mysql\u real\u escape\u string($\u GET['username')
    $pw=mysql\u real\u escape\u字符串($\u GET['password'])抱歉,不是session\u close()-session\u destroy()devdRew我需要按用户活动注销。请您详细解释一下“如果用户注销,只需调用URL,这将是成功的,或者错误的,如果不是”,我不明白为什么要费心点击注销?真的没有必要这么做。只需在设备上清除您需要清除的任何内容,例如存储的数据、存储的用户名和密码等。如果您使用PHP会话,则会话存储在服务器端,因此,尽管您清除了设备上的所有内容,服务器仍会记得您。但您不能依赖设备在注销时击中您。如果用户删除了应用程序怎么办?或者,如果他们恢复他们的设备呢?会话也有超时,所以如果您没有点击“注销”,会话将在预定义的时间内自动取消。那为什么要注销呢?我想这完全取决于你想做什么。一般来说,在我看来,iOS应用程序不需要点击注销API。这是一个相当奇怪的用户体验,以及必须有互联网接入注销,并必须等待,而HTTP命中。
    
    {"code":0,"message":"Your detailed message"}