0

場所を除いて、他のすべては正常に機能します。実際の都市/州は出くわしません。代わりに、Array という単語が表示されます。データベースのフィールド タイプはテキストですが、mysql ですべてのフィールド タイプを試しました。HTML ファイルは、フィールド名に関しては JSON です。私はこれに非常に慣れていないので、助けていただければ幸いです。

これは私のphpファイルです:

    <? ob_start(); ?>
 <?php
            define('FACEBOOK_APP_ID', '');
            define('FACEBOOK_SECRET', '');

            // No need to change function body
            function parse_signed_request($signed_request, $secret) {
                list($encoded_sig, $payload) = explode('.', $signed_request, 2);

                // decode the data
                $sig = base64_url_decode($encoded_sig);
                $data = json_decode(base64_url_decode($payload), true);

                if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
                    error_log('Unknown algorithm. Expected HMAC-SHA256');
                    return null;
                }

                // check sig
                $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
                if ($sig !== $expected_sig) {
                    error_log('Bad Signed JSON signature!');
                    return null;
                }

                return $data;
            }

            function base64_url_decode($input) {
                return base64_decode(strtr($input, '-_', '+/'));
            }

            if ($_REQUEST) {
                $response = parse_signed_request($_REQUEST['signed_request'],
                                FACEBOOK_SECRET);
/*
                echo "<pre>";
                print_r($response);
                echo "</pre>"; // Uncomment this for printing the response Array
                */

                $name = $response["registration"]["name"];
                $email = $response["registration"]["email"];
                $gender = $response["registration"]["gender"];
                $prosecutor = $response["registration"]["prosecutor"];
                $location = $response["registration"]["location"];

                // Connecting to Database
                $con = mysql_connect("my_hosting_site","Database","password");
                if (!$response)
                  {
                  die('Could not connect: ' . mysql_error());
                  }

                mysql_select_db("Database", $con);

                mysql_query("INSERT INTO my_table (name, email, gender, prosecutor, location)
                VALUES ('$name', '$email', '$gender', '$prosecutor', '$location')");

                mysql_close($con);

            }
            $URL="https://www.facebook.com";

            header ("Location: $URL");
                    ?>
<? ob_flush(); ?>
4

1 に答える 1