Tag: PHP

iOS使用NSJSONSerialization在POST请求中发送JSON数据

我知道还有类似的问题,因为我已经阅读,虽然他们大多数都仍然有问题。 我试图发送JSON数据到我的服务器,但我不认为正在接收JSON数据。 我只是不知道我错过了什么。 以下是我的代码… 将数据发送到服务器的方法。 – (void)saveTrackToCloud { NSData *jsonData = [self.track jsonTrackDataForUploadingToCloud]; // Method shown below. NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"%@", jsonString); // To verify the jsonString. NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:http://www.myDomain.com/myscript.php] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60]; [postRequest setHTTPMethod:@"POST"]; [postRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [postRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [postRequest setValue:[NSString stringWithFormat:@"%d", [jsonData length]] forHTTPHeaderField:@"Content-Length"]; [postRequest setHTTPBody:jsonData]; […]

无法将图像上传到服务器ios

您好,我正尝试从我的IOS设备上传图片到服务器。 这里是我的代码上传图像 – (IBAction)btnUpload:(id)sender { if (self.imageViewGallery.image == nil) { UIAlertView *ErrorAlert = [[UIAlertView alloc] initWithTitle:@"Wait" message:@"Please Select An Image To Upload." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [ErrorAlert show]; NSLog(@"error"); } else{ NSData *imageData = UIImageJPEGRepresentation(self.imageViewGallery.image, 90); NSString *urlString = @"http://localhost/ColorPicker/api.upload.php"; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:[NSURL URLWithString:urlString]]; [request setHTTPMethod:@"POST"]; NSString *boundary = @"—————————14737809831466499882746641449"; […]

通过cURL / PHP发送的设备上未收到Firebase通知

我有一个iOS应用程序,它是在应用程序商店生活。 我可以将推送通知发送到安装了该应用程序的iOS设备,但只有当我从Firebase控制台发送推送通知时。 当我尝试通过cURL请求发送推送通知时,来自服务器的响应表明我已成功,但是设备上未收到消息。 我已经尝试了多播和单个收件人有效载荷。 我必须错过更基本的东西,但我看不到它。 这是我的PHP代码: <?php // API access key from Google API's Console define( 'API_ACCESS_KEY', 'AI*****4LPGkx8xtDG2tBl*****7KWJfmp1szcA' ); $registrationIds = array( $_GET['id'] ); // prep the bundle $msg = array ( 'message' => 'here is a message. message', 'title' => 'This is a title. title' ); $fields = array ( 'to' => "cUxd-iTVVWo:APA*****kQTuqJ5RREKhhlJjm27NCuVfUn5APg3lBFqh-YWjgx*****iOpAQeLB14CzM2YTwIJo_75jzCmbFLKj0_zpKSHvAEbmJz*****BBezGJIng-N4H-cAD6ahY7mQNYZtEJLAIE", 'data' […]

为什么NSURLSession uploadTaskWithRequest:fromData:无法上传到PHP服务器?

PHP代码工作正常。 我从同一台服务器上的HTML表单上传文件。 上传的文件从40K到2.0M不等。 file upload在运行PHP 5.3的服务器上激活 我发现这样的许多职位(没有答案): https : //stackoverflow.com/questions/19710388/using-nsurlsession-to-upload-an-image 。 这一个使用uploadTaskWithRequest:fromFile:而不是fromData: NSURLSession确保上传工作 这是NSURLSessionDataTask而不是uploadTaskWithRequest: 没有数据接收与NSURLSession 和一些似乎说uploadTaskWithRequest:fromData的post:根本不工作: NSURLSession:上传资产与背景传输 asynchronous上传与NSURLSession将无法正常工作,但同步NSURLConnection并将图像从iOS上传到PHP 我做了这样的应用程序,它返回的HTTP代码,我得到的代码200.服务器error_logfile upload后没有任何东西。 一切似乎工作正常,但无论发生什么,该文件不写入服务器。 任何想法还有什么我可以尝试找出什么是错的? 这里是php代码: <?php $file=''; $uploaddir=''; //////////////// echo 'file count=', count($_FILES),"\n"; var_dump($_FILES); echo "\n"; //////////////// if(isset($_FILES['userfile']['name'])){ $uploaddir = './photos/'; //Uploading to same directory as PHP file $file = basename($_FILES['userfile']['name']); echo "file is set"; $uploadFile = […]

从iOS使用POST将数组传递给PHP

所以我已经浏览了无数个类似的问题,但是没有一个能够回答我所寻找的问题,或者是以完整的方式回答问题,所以希望你们能够帮助我。 我需要通过使用POST将一系列的restaurantID从iOS传递到PHP文件,否则这将很好地工作。 我知道ASIHTTPRequest,但是我正在寻找内置的东西,而且已经被开发者放弃了。 最后,我不想通过URL传递他们,因为我不知道会有多less条目。 所以这是我到目前为止。 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:theURL]]; [request setHTTPMethod:@"POST"]; NSMutableDictionary *jsonDict = [[NSMutableDictionary alloc] init]; [jsonDict setValue:restaurants forKey:@"restIDs"]; NSLog(@"JSON Dict: %@",jsonDict);//Checking my array here NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:kNilOptions error:nil]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"JSON String: %@",jsonString); //Checking my jsonString here… [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [request setValue:@"application/json" […]

通过imagepicker上传图像到服务器不起作用(需要解决scheme)

作为从这个问题的后续上传图像到服务器不起作用 (你可以find我的PHP文件)我意识到为什么它不工作。 但我不知道解决scheme。 正如你可以在代码中看到的(几行),我把我的图像给php文件,但它不认识它作为一个图像。 所以我希望有人可以帮助它,并知道(可能是明显的)解决scheme: – (IBAction)changepic:(id)sender{ picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentModalViewController:picker animated:YES]; } – (void)imagePickerController:(UIImagePickerController *) Picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ double compressionRatio=1; NSData *imageData=UIImageJPEGRepresentation([info objectForKey:UIImagePickerControllerOriginalImage],compressionRatio); while ([imageData length]>50000) { compressionRatio=compressionRatio*0.50; imageData=UIImageJPEGRepresentation([info objectForKey:UIImagePickerControllerOriginalImage],compressionRatio); } UIImage *yourUIImage; yourUIImage = [info objectForKey:UIImagePickerControllerOriginalImage]; imageData = [NSKeyedArchiver archivedDataWithRootObject:yourUIImage]; [[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"bild"]; […]

PHP服务器和iOS上的AES Rijndael生成有时不同的密码

我使用Jim Dovey的NSData + AESCrypt类和Michael Sedlaczek的NSString + AESCrypt(2011-02-22)。 而在PHP上,我有一个简单的脚本: <?php $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $key = '01234567890123456789012345678901'; $plaintext = "myworda"; $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plaintext, MCRYPT_MODE_ECB); $base64encoded_ciphertext = base64_encode($ciphertext); echo "ciphertext: ".$base64encoded_ciphertext."<br/>"; ?> 在ObjC: NSString *key = @"01234567890123456789012345678901"; NSString *plaintext = [@"+l56Ia4yyK19D2x2+oCXuw==" AES256DecryptWithKey: key]; NSLog(@"plaintext: %@", plaintext); 我在PHP中更改variables$ plaintext,运行脚本并将输出密码复制并粘贴到Objective-c以解密。 和: “myword”给我“+ l56Ia4yyK19D2x2 […]

Apple推送通知 – PHP – SSL代码1失败

在过去的几天中,当我们使用套接字连接到生产服务器上的APN服务器时,我们遇到了一些奇怪的PHP行为。 在大多数情况下,有效载荷被推送,没有任何错误,客户端收到通知。 但是,在某些情况下,我们开始收到PHP错误(即使我们收到错误,有时会通知被推送)。 当我们开始看到这个错误时,它会持续几个小时然后消失,PHP继续工作,就像什么也没有发生。 另一个奇怪的是,从shell运行相同的PHP代码不会产生任何错误。 从networking(nginx / php-fpm)运行它… PHP在shell和web上运行具有相同的configuration,并共享相同的php.ini。 唯一的区别是web运行在php-fpm上。 另外,在我们的登台服务器上运行相同的代码+证书没有任何错误。 生产服务器是登台服务器的副本,因此每个configuration都是相同的。 我们能够find一些可能导致此错误的答案,包括来自stackoverflow.com的答案,但我们无法find解决scheme或解决它。 通知到苹果服务器是一个接一个发送,而不是一个捆绑。 但是我们并没有build立太多的联系(也许每天有一千个)。 没有队列系统。 所以,总之 我们有时会在发送通知时收到PHP错误,但并非总是如此。 通过相同的PHP从shell发送通知不会产生任何错误 从登台服务器发送通知不会产生任何错误 我们尝试了这些 重新创build证书和密钥 重新创buildPEM文件 将ssl://更改为sslv3:// 使用stream_socket_client 使用fsockopen 更改/删除证书密码 错误是: 2012/08/28 12:18:09 [error] 4282#0: *225858 FastCGI sent in stderr: "PHP message: PHP Warning: fwrite() [<a href='function.fwrite'>function.fwrite</a>]: SSL operation failed with code 1. OpenSSL Error messages: error:1409F07F:SSL routines:func(159):reason(127) […]

我如何只允许从我的iOS应用程序访问我的MySQL数据库? (使用webapp作为数据库的网关)

我的iOS应用程序需要连接到一个MySQL服务器。 为了做到这一点,我想创build一个Web应用程序,作为客户端应用程序和服务器端数据库之间的中间人。 我的担心是有人可以简单地找出我的应用程序使用的URL并传递他们自己的URL参数 – 而且由于Web应用程序不知道是否从我的iOS应用程序发送了合法的数据,而只是从正确input正确制作的URL任何网页浏览器,系统都会受到攻击。 比方说,我有一个PHPfunction,标记为“已validation”(在我给他们发送电子邮件validation码后)的用户。 这是非常标准的东西,但是阻止某人从Web浏览器发出同样的请求呢? 当然,应用程序用来进行数据库查询的用户将拥有有限的权限,因此数据库的其余部分不会有风险。 但是,即使用户从应用程序外部激活其帐户也是灾难性的。 我想到的select是使用https,以便即使用户计算出URL,他们也不会知道密码,并且由于它从头到尾都是encryption的,所以不能嗅探它。 不幸的是,对于一个贫穷的大学生来说,https可能是昂贵的,所以如果存在的话,我想要一个替代品。

如何通过点击电子邮件中发送的超链接将用户redirect到移动应用程序或网站? 是否需要在服务器端使用PHP进行处理?

我有一个网站已经开发使用PHPFox ,它工作正常。 现在,iOS开发团队已经在iOS中创build了一个与网站function相同的移动应用程序。 用户可以使用他/她可以在网站上完成的所有操作。 换句话说,我们可以说这个应用程序是现有网站的副本。 应用程序开发的唯一限制是stream程和function应该与网站相同。 应用程序和现有正在运行的网站之间不应有任何function差异。 对于这个应用程序,他们正在使用与网站的PHPFox代码库相同的function。 我通过使用Slim框架开发的REST API来使iOS团队可以使用这些function。 在这些API中,我接受来自应用程序的JSON格式的请求,将其解码,通过传递所需的请求参数从PHPFox代码库调用所需的函数,从函数获取响应,将其转换为JSON格式并将其发回到移动应用程序。 现在,我们来关注一下我面临的问题。 在这两种场景(网站和应用程序)中,对于某些function,如新用户帐户激活链接,重新发送帐户激活链接,重置现有用户密码(如果他/她忘记密码等),则向相关用户发送电子邮件。 这封电子邮件包含相关超链接。 当用户点击发送到电子邮件的超链接时,它总是redirect到网站上的相应网页。 当特定用户点击收到的邮件中的超链接时,它只会被redirect到网站 。 它不会redirect到应用程序。 我的要求是,如果用户已经打开邮件到已安装/运行移动应用程序的设备上,并单击邮件中的超链接,他/她应该redirect到移动应用程序的特定页面而不是网站。 假设用户在计算机,笔记本电脑或未安装应用程序的设备上打开邮件,他/她应该redirect到该网站。 我应该如何做到这一点? 还有一点需要注意的是,要发送到邮件的链接的redirectpath( href属性的值)仅生成到网站的PHPFox代码中。 所以,如果我需要改变逻辑来实现这个新function,我应该怎么做,而不必改变应用程序和网站上的系统stream? 或者我应该为它写一个新的函数,以便不改变PHPFox的现有代码? 我研究了这个问题的解决scheme。 我来了解Bitly ,可以做这个工作,但不知道如何。 这个要求是由iOS团队在我们(PHP团队)基于他们在互联网上find的这个超链接文章提出的。 请参阅这也。 所以,我直截了当的问题是,因为这篇文章是关于iOS编码的,并且与服务器端编码(即PHP)没有任何关系,我必须在服务器端使用PHP来实现这个function。