如果我在我的 PHP API 脚本中设置 $_SESSION 变量,它们是不是由 AFNetworking 2 自动存储
Posted
技术标签:
【中文标题】如果我在我的 PHP API 脚本中设置 $_SESSION 变量,它们是不是由 AFNetworking 2 自动存储【英文标题】:If I set $_SESSION variables in my PHP API Script, are they automatically stored by AFNetworking 2如果我在我的 PHP API 脚本中设置 $_SESSION 变量,它们是否由 AFNetworking 2 自动存储 【发布时间】:2014-03-19 05:44:32 【问题描述】:我需要有关 AFNetworking 和为用户设置数据的帮助。我有一个用户将用来访问数据的 ios 应用程序。我已使用 AFNetworking 2.2 成功登录,但我想使用 php 登录脚本中的数据 $_SESSION 数据来填充其他视图的查询。
例如,如果 Joe Bloggs 登录到应用程序,我将 SQL 查询中的 $_SESSION 变量设置为:
$_SESSION['id'] = $row['id'];
$_SESSION['user'] = $row['username'];
$_SESSION['name'] = $row['name'];
我想做的是在我将数据返回到我的应用程序时存储这些变量,以便我可以使用这些值将其 POST 回另一个端点并从数据库中查询相关的用户数据。
根据我的阅读,AFNetworking 会自动保存 cookie,但是否也存储了 SESSION 数据?如果没有,我将如何存储这些值?或者,如果这些值无法存储,我可以使用 cookie 中的数据在返回下一个端点后检索 $_SESSION 变量中的值吗?
对不起,我有点迷路了。我希望这是有道理的。
<?php
session_start();
header('Content-type: application/json');
require_once('DbConnector.php');
$connector = new DbConnector();
$username=htmlspecialchars($_POST['username'],ENT_QUOTES);
$password=md5($_POST['password']);
$sql="SELECT id, username, password, name FROM users WHERE username='".$username."' AND enabled = '1'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
//if username exists
if(mysql_num_rows($result)>0)
//compare the password
if(strcmp($row['password'],$password)==0)
$_SESSION['id'] = $row['id'];
$_SESSION['user'] = $row['username'];
$_SESSION['name'] = $row['name'];
$userSession = json_encode ($_SESSION['name']['user']['id']);
echo '"success":1';
//echo '"custid":$custid, "username":"$username", "name":"$name"';
else
echo '"success":0,"error_message":"Username and/or password is invalid."';
else echo '"success":0,"error_message":"Username and/or password is invalid."';
?>
【问题讨论】:
旁注,$_SESSION
全部大写
是的,抱歉,这是一个错字,哈哈。它在脚本中全部大写
你的脚本顶部有session_start();
,在任何其他输出之前,是吗?
是的,我已编辑问题以显示整个 PHP 登录脚本
【参考方案1】:
好的,所以在尝试使其正常工作一周后,我发现我只需要设置 $_SESSION 变量,然后成功后,这些变量必须可以根据标题中设置的信息进行访问。
未来的查询可以用 $_SESSION 变量填充,因为您已经在您计划使用的所有 PHP 脚本中正确启动了会话。
我最初确实遇到了一些错误,因为我试图将 JSON 写入标头(检查我脚本中的 $userSession 变量),一旦我将有问题的行注释掉,效果很好!!
【讨论】:
以上是关于如果我在我的 PHP API 脚本中设置 $_SESSION 变量,它们是不是由 AFNetworking 2 自动存储的主要内容,如果未能解决你的问题,请参考以下文章
如何在 php 中的 Google Adwords API 中设置多个 ClientCustomerId?
Set-Cookie 未在我的浏览器中设置 cookie (React + Sanctum)