使用include语句传递$ _POST数据

时间:2016-02-03 06:36:52

标签: php

这是在我的api中名为“handlejoin”的函数中使用的语句,它允许我的应用程序中的用户加入聊天。

$stmt = $this->pdo->prepare('INSERT INTO active_users (user_Id, device_token, nickname, secret_code, ip_address) VALUES (?, ?, ?, ?, ?)');
$stmt->execute(array($userId, $token, $name, $code, $_SERVER['REMOTE_ADDR']));

我想将$token值传递给新文件。我想使用像这样的include语句来做到这一点。

<?php
include: 'api.php'
echo "$token";
?>

唯一的问题是handleJoin语句在一个文件(api.php)中,它有很多代码,而我还不确定如何理解$token变量的当前变量范围足够成功将其值传递给新文件。有关变量定义等的include语句似乎有很多细微差别。有人可以帮我解析完整的api / php文件,以了解如何成功地将$token变量的内容传递给另一个文件吗? / p>

来源:http://php.net/manual/en/function.include.php

以下是整个文件:https://github.com/tonycrencren/api-file/blob/master/api.php

handleJoin语句在第192行

修改:更多信息

我的应用使用推送通知。我想要传递的$ token变量存储设备令牌。我可以像这样在NSLog中回显设备令牌。

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{ 
NSString* newToken = [deviceToken description];
newToken = [newToken stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
newToken = [newToken stringByReplacingOccurrencesOfString:@" " withString:@""];

NSLog(@"My token is: %@", newToken);

}

NSLog中的输出

enter image description here

调用join函数时,设备令牌也会发布到数据库。请注意,它是相同的设备令牌。

enter image description here

testfile.php

<?php

//tells you whats going on in the browser at at what line if there needs to be an improvement to the structure of the function

error_reporting(E_ALL);
ini_set("display_errors", 1);


function token()
 {
include 'file://localhost/Users/user/Desktop/PushChatServer/api/api.php';

echo "A $token";

return $token;

}

token();  
echo "$token"; 


?>

问题:如何使用include语句创建一个新文件并使用api.php成功回显新文件中的$token变量?我想在我的Web浏览器中打开新文件时能够看到设备令牌字符串。现在它是一个空白的网页。我得到预感,新文件根本没有得到变量。

我也预感到,即使它获得$token值,我也必须同时运行该应用程序,以便调用该方法并同时保持刷新新网页以查看令牌值。正确的吗?

1 个答案:

答案 0 :(得分:1)

由于包含文件的执行就像它是调用者文件的一部分一样,只需在api.php文件中创建一个全局变量并使其设置为sute,例如,在api.php中调用token()函数。

api.php

//declare global $token variable
$token='';

//function that generates the token
function generate_token() {
...
}

//use one of the following methods
//code to execute the generate_token() function if generate_token() returns the token
$token=generate_token();

//code to execute the generate_token() function if generate_token() sets the global $token within the function's body
//put a declaration within generate_token() in order to set $token global variable from the function: global $token;
generate_token();

您可以将testfile.php与上面的代码一起使用。

但是,我不会这样做。我将在api.php中创建generate_token()函数,该函数返回令牌。在测试php中,你包括api.php并调用函数:

api2.php:

//function that generates the token
function generate_token() {
...
return ...; //returns the token
}
//end api2.php

test.php的:

include api2.php;
echo generate_token();