Tag: PHP

Swift / PHP如何使用Alamofire在UITableView中显示mysql数据(json)

我想创建一个只返回一个单元格的TableView。 在此单元格中包含三个标签:id,username和category。 这将导致用户看到他的基本详细信息。 当我运行APP时,我的UITableView仍然没有显示任何结果(空白)。 请任何人都可以查看我的代码以使其有效吗? 我无法看到我错在哪里,因为我在Xcode中没有任何错误 TableView控制器 import UIKit import Alamofire class MyProfile: UITableViewController { var users = [MyProfileBasicData]() override func viewDidLoad() { super.viewDidLoad() } override func viewDidAppear(animated: Bool) { super.viewDidAppear(true) getData() } func getData() { let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() var username = prefs.valueForKey(“USERNAME”) as NSString Alamofire.request(.GET, “http://mysite/app/data/jsonuser.php”, parameters: [“username”: username]).responseJSON() { (_, _, data, […]

如何在Objective C中实现laravel函数Crypt :: encrypt()?

我需要实现Crypt :: ecrypt(’123456’); 从laravel到Objective C iOS 。 所以首先我将用于加密的laravel方法扩展为纯php: public function enc($text,$key) { $key = (string)base64_decode($key); $iv = random_bytes(16); $value = \openssl_encrypt(serialize($text), ‘AES-256-CBC’, $key, 0, $iv); $bIv = base64_encode($iv); $mac = hash_hmac(‘sha256’, $bIv.$value, $key); $c_arr = [‘iv’=>$bIv,’value’=>$value,’mac’=>$mac]; $json = json_encode($c_arr); $crypted = base64_encode($json); return $crypted; } https://github.com/reza-khalafi/LaravelCrypt/blob/master/laravelEncrypt.php 然后逐步将此代码的每一行转换为目标c。 看我的目标c代码: #import #import // First convert Base64 strings […]

如何处理不同设备的会话?

我正处于构建php / mysql后端的初始阶段,该后端向网站和iphone / android / etc设备公开REST接口。 我不太确定处理使用同一帐户的多个设备的会话的“标准”或“最佳做法”是什么。 以下是我目前关于这将如何工作的想法: 我现在会用MySQL来存储会话,会话表如下: id,session_id(hash),user_id(int),created(timestamp),expire(timestamp),device(enum) 当用户通过iOS应用程序或Android应用程序登录时,我会在成功的json中返回会话令牌,以供将来的api调用使用。 与进行api通话的网站相同。 出于安全考虑,如果用户重新登录,我应该重新生成并覆盖会话令牌,但仅针对该设备的session_id。 我还有一个过期列,它告诉我会话的到期时间,这样如果我愿意,我可以创建一个可以在两周内过期的会话,并定期由CRON作业清除。 这对我来说似乎是一种合理的方法,但如果用户使用iphone和ipad,或者使用同一帐户的多个Android设备,则会出现问题。 任何时候用户登录一个会导致另一个注销。 我注意到即使我从另一台iPhone登录,instagram也没有使会话无效。 但是,我不认为我可以复制该行为,除非用户重新登录时不会覆盖会话令牌,或者每当用户从iphone登录时继续将会话行添加到会话表中? 跨不同设备处理会话的标准方法是什么?

PHP AES解密工作加密不

所以,我有4个工作中的3个,从这个链接 iOS加密解密我能够解密从iOS加密的数据我在PHP端加密时遇到了麻烦。 当我做回声加密代码。 PHP打印类似F>HFl8aR是什么意思? SALTKEY =’a16byteslongkey!’; 解密代码: 工作 $result = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, (SALTKEY . str_repeat(chr(0x00), 16)), base64_decode($text), ‘ecb’); $pad_char = ord(substr($result, -1)); return substr($result, 0, strlen($result) – $pad_char); 加密代码: 不工作 $result = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, (SALTKEY . str_repeat(chr(0x00), 16)), base64_encode($text), ‘ecb’); $pad_char = ord(substr($result, -1)); return substr($result, 0, strlen($result) – $pad_char); iOS上的结果 :Text =“Hello” 加密=“7opqbb7sEVNoXplyQv / X8g ==” […]

安全地发送PHP从iOS获取信息

所以情况就是这样,我有一个iOS应用程序,其中有一部分用户将信息输入特定标签,然后我根据用户给定的信息创建一个URL请求,并将其发送到我的PHP后端。 URL遵循以下结构: http://www.somewebsite.com/send.php?title=hello&name=john&contact=email 现在上面的问题是任何有权访问URL的人都可以轻易地用垃圾邮件轰炸数据库,提交的内容太多等等。感觉非常不安全。 我应该如何使这个过程尽可能安全? 我目前对PHP的知识水平是能够通过简单地使用“完成工作”的方法(无论它们有多安全)来完成任务,但现在我开始达到我需要保持安全的程度,安全等等。 非常感谢有用的建议/见解。 谢谢!

从iOS到php服务器的POST数据总是为NULL – iOS 10,Swift 3,php

我正在实现一个FCM应用服务器,并希望将设备注册令牌ID存储到我自己的数据库中(用PHP编写的服务器)。 我意识到设备ID令牌中的数据总是为空 ,有人能指出正确的方式将令牌存储到数据库中吗? 真的很感激也许有人可以指导我这个问题,谢谢! 请参考下面的代码/截图: – AppDelegate.swift func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { var token = “” for i in 0..<deviceToken.count { token += String(format: "%02.2hhx", arguments: [deviceToken[i]]) } print("Registration succeeded!") print("Token: ", token) Callquery(token) } AppDelegate.swift(向服务器端脚本发送POST请求的Callquery方法) func Callquery(_ token: String) { // append parameter to oneDictionary let tokenString = [“token”: token] as […]

某些设备未收到Apple推送通知

我正在使用Apples iOS增强通知格式批量发送推送通知,并使用本文中描述的PHP解决方案: https : //stackoverflow.com/a/10059000/300129 此时的经验是,当我发送推送通知时,某些设备正在接收消息,而某些设备则没有。 结果不一致。 有时设备X会收到通知,有时设备X不会收到通知。 我正在记录所有内容,但我没有得到任何错误响应。 对正在发生的事情的任何想法都会非常有帮助。

HTTP身份validation的类型以及如何设计安全数据库?

几个月前,我在一个iOS(iphone)应用程序上工作,该应用程序允许用户创建某些类型的事件并将它们作为XML / JSON文件发布到Web服务器。 然后通过他们的设备,他们能够查看来自不同用户的事件等。 构建整个事物的想法非常基本。 当应用程序第一次启动时,应用程序连接到URL并询问用户ID(这对每个用户都是唯一的)。 然后,每次用户想要发布内容时,我们都使用HTTP基本身份validation,并将用户ID和XML文件作为标头发送,其中包含有关所创建事件的所有信息。 我从来没有在服务器端工作过,所以我不知道整个系统有多安全。 几天前我开始研究我的应用程序,这是同样的想法,所以我首先开始在服务器端(php)工作。 在我开始之前,我想看看我之前的项目是多么安全,我很震惊,没有任何安全措施。 只需使用一个简单的Web调试器(嗅探器),我就可以看到我的应用程序连接到哪里询问用户ID,每个xml文件的forms如何发送到数据库以及服务器如何应答。 因此,如果有人想要用一百万个用户ID或一百万个事件来淹没数据库,那么创建一个php脚本就可以非常容易。 在这种情况下,我们使用HTTP基本认证。 我现在的问题是,我应该使用什么样的身份validation,以便在服务器和用户(XML)之间交换什么样的文件是不可见的,我如何设计注册机制,以便有人不能创建一百万个ID用一个简单的脚本。 我不想构建一个超级安全的应用程序,但至少有一些基本类型的安全性。 因为我是php的新手,你可以给我一些链接来检查我应该使用哪些安全机制,甚至更好的一些教程。 此外,如果你在使用什么样的安全性之前开发了类似的东西,你会建议什么?

设备上未接收推送通知

我正在通过PHP脚本使用推送通知。 代码似乎工作正常,它不会给我任何错误。 但通知不会在我的设备上收到我。 这是我的代码: $passphrase = ‘123’; $ctx = stream_context_create(); stream_context_set_option($ctx, ‘ssl’, ‘local_cert’, ‘cert.pem’); stream_context_set_option($ctx, ‘ssl’, ‘passphrase’, $passphrase); $fp = stream_socket_client( ‘ssl://gateway.sandbox.push.apple.com:2195’, $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); // Create the payload body $body[‘aps’] = array( ‘alert’ => $message, ‘sound’ => ‘default’ ); // Encode the payload as JSON $payload = json_encode($body); // Build the binary […]

文件上传反应原生到PHP服务器

我在react-native-ios中实现文件上传,这是我在react-native js上的代码: const formData = new FormData(); formData.append(‘photo’, { uri: image.sourceURL, name: image.filename, type: ‘image/jpeg’ }); // here is my formdata console :{uri: “file:///Users/…/DCIM/100APPLE/IMG_0002.JPG”, name: “IMG_0002.JPG”, type: “image/jpeg”} fetch(‘services.php?action=MultiplefileUpload’,{ method: ‘POST’, headers: { ‘Content-Type’: ‘multipart/form-data’, ‘Accept’: ‘application/json’ }, body: formData }).then((response) => response.json()) .then((responseJson) => { console.log(responseJson); }) .catch((error) => { console.error(error); }); 在php页面上我写道: return […]