Строковая переменная, полученная через php _ $ post из html-формы, похоже, стирается - PullRequest
0 голосов
/ 16 января 2012

Я отправляю строку через форму 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. "'");

Однако я не уверен, почему, и я не могу просто избавиться от линии.

Ответы [ 2 ]

0 голосов
/ 16 января 2012

Как показывает форматирование SO, это выглядит неправильно

name=".$_Post["message"];
  name=".$string1;

Я не совсем уверен, что вы пытаетесь сделать.Судя по всему, я удивляюсь, что он даже работает с ошибками.

0 голосов
/ 16 января 2012

Вы должны включить уведомления php и прочитать журнал ошибок, но я сильно подозреваю, что эта строка замешана:

$og_url = $og_url.test;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...