Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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
将NSString传递给PHP POST变量_Php_Objective C_Post_Nsstring_Asiformdatarequest - Fatal编程技术网

将NSString传递给PHP POST变量

将NSString传递给PHP POST变量,php,objective-c,post,nsstring,asiformdatarequest,Php,Objective C,Post,Nsstring,Asiformdatarequest,如果我的站点上有一个php文件,我如何将NSString传递给POST变量(带有objective-c),以便将其返回到页面上?我是php新手,如果这是显而易见的,那么很抱歉 使用ASIFormDataRequest: NSURL *myURl = [[NSURL alloc] initWithString:@"http://www.mysite/something.php"]; ASIFormDataRequest *request = [ASIFormDataRequest request

如果我的站点上有一个php文件,我如何将
NSString
传递给
POST
变量(带有objective-c),以便将其返回到页面上?我是php新手,如果这是显而易见的,那么很抱歉

使用
ASIFormDataRequest

NSURL *myURl = [[NSURL alloc] initWithString:@"http://www.mysite/something.php"];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:myURl];

[request setDelegate:self];
[request setUsername:@"username"];
[request setPassword:@"password"];
[request setPostValue:@"This is a string" forKey:@"phpVar"];

[request startAsynchronous];
委托方法调用:

-(void)requestFailed:(ASIHTTPRequest *)request
{
    NSError *error = [request error];
    NSLog(@"Failed %@ with code %d and with userInfo %@",[error domain],[error code],[error userInfo]);
}

-(void)requestFinished:(ASIHTTPRequest *)request
{
    NSLog(@"Finished : %@",[request responseString]);

}
这里有几个问题:

  • 即使输入了错误的凭据,
    requestFinished
    也只会被调用 编辑——刚刚修复(1),创建了一个受密码保护的目录,并将php文件粘贴在其中

  • “This is a string”不会在php文件中传递给phpVar,也不会显示在页面上
  • 以下是我用php编写的内容:

    <?php
    
    $blah = $_POST['phpVar'];
    
    echo $blah;
    
    ?> 
    
    
    

    感谢您的帮助。

    此过程可能会在几个不同的地方出现故障

  • 由于您正试图在ASIFormDataRequest实例中设置一个文本,我们可能可以安全地假设它实际上包含该值
  • 下一个要验证的项目是,POST实际上正在访问PHP页面(但不一定传递正确的值)。有几种方法可以实现这一点,但最简单的方法可能是查看web服务器的访问日志。如何实现这一点取决于服务器(即Apache、IIS等)
  • 如果脚本确实命中了页面,那么最后一步应该是验证传递了什么(如果有的话)请求参数。我建议您使用如下函数调用来回传所有请求值,而不是将单值形式$\u POST转储出去:
  • 
    

    这应该详细地打印出$\u-GET、$\u-POST和$\u-COOKIE中的所有内容,这非常方便,以防您期望的值不是通过POST发送的。如果该值存在,则访问该值或修改发送请求的方式以使其按预期交付应该是微不足道的。

    此过程可能会在几个不同的地方发生故障

  • 由于您正试图在ASIFormDataRequest实例中设置一个文本,我们可能可以安全地假设它实际上包含该值
  • 下一个要验证的项目是,POST实际上正在访问PHP页面(但不一定传递正确的值)。有几种方法可以实现这一点,但最简单的方法可能是查看web服务器的访问日志。如何实现这一点取决于服务器(即Apache、IIS等)
  • 如果脚本确实命中了页面,那么最后一步应该是验证传递了什么(如果有的话)请求参数。我建议您使用如下函数调用来回传所有请求值,而不是将单值形式$\u POST转储出去:
  • 
    

    这应该详细地打印出$\u-GET、$\u-POST和$\u-COOKIE中的所有内容,这非常方便,以防您期望的值不是通过POST发送的。如果该值存在,则访问该值或修改发送请求的方式以使其按预期交付应该是很简单的。

    一次调试一步。首先从PHP返回一个伪字符串开始,比如“Hello world”。当然我已经这样做了。在页面上回显任何字符串都可以。专业提示:NSString只是字符串的包装器。只需将字符串编码为ASCII字节(或任何形式),然后将这些字节传递到post变量中。您的php脚本在服务器上有多大?如果问题太大,请将其添加到pastebin.com或其他地方。为此,myfile.php需要修改自身(或将
    $\u POST['phpVar']
    的值写入配置文件,下次调用页面时将读取该文件)。在脚本末尾,您需要输出一些html,如
    echo“…”;echo$_POST['phpVar'];回声“。一次调试一步。首先从PHP返回一个伪字符串开始,比如“Hello world”。当然我已经这样做了。在页面上回显任何字符串都可以。专业提示:NSString只是字符串的包装器。只需将字符串编码为ASCII字节(或任何形式),然后将这些字节传递到post变量中。您的php脚本在服务器上有多大?如果问题太大,请将其添加到pastebin.com或其他地方。为此,myfile.php需要修改自身(或将
    $\u POST['phpVar']
    的值写入配置文件,下次调用页面时将读取该文件)。在脚本末尾,您需要输出一些html,如
    echo“…”;echo$_POST['phpVar'];回声“
    <?php
    var_dump($_REQUEST);
    ?>