以下代碼涉及使用由php表單事件觸發的腳本對Facebook應用程序用戶進行身份驗證。我通過一個HTML表單張貼字符串下面的代碼:PHP會話將保留文本,但不保留髮布的變量值
<html>
<body>
<form name="form" enctype="multipart/form-data" action="test.php" method="post">
<input name="message" type="text" value=""><br/><br/>
<input type="submit" value="Upload"/><br/>
</form>
</body>
</html>
爲test.php的代碼是:
<?php session_start(); ?>
<html>
<head xmlns:worldcentric="https://apps.facebook.com/testapp/ns#">
<title>Test App</title>
</head>
<body>
<?php
$app_id = "191622610935428";
$my_url = "http://www.thepropagator.com/facebook/testapp/test1.php";
$string1 = (string)$_POST["message"];
$_SESSION['str'] = $string1;
// $string2 = "teststring";
// $_SESSION['str'] = $string2;
$code = $_REQUEST["code"];
if(empty($code)) {
$dialog_url = "https://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url) . "&scope=email,publish_actions";
echo("<script>top.location.href='" . $dialog_url . "'</script>");
}
$string3 = $_SESSION['str'];
echo $string3;
?>
</body>
</html>
對於我試圖在
存儲信息上面的代碼$_SESSION['str']
沒有被保存。然而,當我更換線
$string1 = (string)$_POST["message"];
$_SESSION['str'] = $string1;
隨着註釋掉行:
$string2 = "teststring";
$_SESSION['str'] = $string2;
文本「的TestString」並得到傳承下去。正如你所看到的,我嘗試將$ _POST [「message」]轉換爲一個字符串,但它不能以任何方式工作。有任何想法嗎?
[執行top.location.href後丟失php發佈的字符串變量信息](http://stackoverflow.com/questions/8875154/losing-php-posted-string-variable-information-after-executing- top-location-href) – 2012-01-16 05:00:58
這是一個來自同一個項目的更嚴格的問題,因此也有相似之處。 – 2012-01-16 06:12:47