Я отправляю строку через форму HTML со следующим кодом:
<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 следующий:
<html>
<head xmlns:testapp="https://apps.facebook.com/testapp/ns#">
<title>Test App</title>
</head>
<body>
<?php
echo "1".$_POST["message"];
$string1 = $_POST["message"];
echo "2".$string1;
$app_id = "191622610935428";
$app_secret = "a9cdd876cdaf17b6454639b19d91f157";
$my_url = "http://www.thepropagator.com/facebook/worldcentric";
$og_url = "http://thepropagator.com/facebook/worldcentric/issue.php?name=".$string1;
$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>");
}
$token_url="https://graph.facebook.com/oauth/access_token?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
$access_token = file_get_contents($token_url);
// remove the @expires
$params = null;
parse_str($access_token, $params);
$access_token_updated = $params['access_token'];
$post_data = "issue=" . $og_url . "&access_token=" . $access_token_updated;
echo "post_data: " . $post_data . "<br/>";
// setup the POST
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://graph.facebook.com/me/testapp:raise?issue');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
// execute the POST
$result = curl_exec ($ch);
if(curl_error($ch))
{
echo 'error:' . curl_error($ch) . "<br/>";
}
curl_close ($ch);
echo "return code= " . $result . "<br/>";
?>
<br>
</br>
</body>
</html>
Когда я нажимаю кнопку отправки формы, эхо, которое я делаю в первом блоке кода, показывает отправленные строки, как и ожидалось, но в какой-то момент они исчезают, а переменная $ og_url теряет объединенную строку. $ String1. Кажется, что в какой-то момент эта переменная стирается, кто-нибудь может объяснить, почему это происходит?
Единственная строка, которая генерирует ошибку PHP:
$ access_token = file_get_contents ($ token_url);
И я почти уверен, что единственная причина ошибки в том, что в строке $ og_url нет ничего после «name =».
Кажется, моя проблема вызвана строкой кода.
echo ("top.location.href = '". $ dialog_url. "'");
Однако я не уверен, почему, и я не могу просто избавиться от линии.