2012-01-12 13 views
1

Facebookのアプリケーションで働く、Herokuで設定し、gitを使ってコードをダウンロードし、Apache Webサーバーにxamppを使用します。 :80が取られたので、別のポートでlistenするようにxamppを設定しなければならなかったので、httpd.confをListen 8080に変更して仮想ホストを追加したので、Herokuのfacebookアプリケーションが必要とするようにfacebook環境変数を設定することができました。 Apacheをエラーなく走らせるために、httpd-ssl.confのSSL用ポートを変更しなければならないというWebサイトが見つかりました。これを別のウェブサイトの推奨に基づいて4430に変更しました。 Apache/xamppは正常に起動しますが、私が行ったときにFacebook Herokuコードからエラーメッセージが出ます(apps.facebook.com/myapp経由で、またはlocalhost:8080で直接エラーが起こるかどうかは同じです)注意:未定義のインデックス:HTTP_X_FORWARDED_PROTOのC: Users me project index.php 4行目

Notice: Undefined index: HTTP_X_FORWARDED_PROTO in C:\Users\me\project\index.php on line 4 

Notice: Undefined index: HTTP_X_FORWARDED_PROTO in C:\Users\me\project\AppInfo.php on line 36 

Notice: Undefined index: HTTP_X_FORWARDED_PROTO in C:\Users\me\project\AppInfo.php on line 36 

Notice: Undefined index: access_token in C:\Users\me\project\FBUtils.php on line 108 
彼らのプラットフォーム上でのFacebookアプリケーションを設定するとき、このコードは、Herokuの/ GitHubのから提供されたことを

<?php 

// Enforce https on production 
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == "http" && $_SERVER['REMOTE_ADDR'] != '127.0.0.1' && $_SE RVER['REMOTE_ADDR'] != 'localhost') { 

    header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); 

    exit(); 

} 

注:問題が始まる最初のファイルの

トップライン。リストに載っているもの以外にはかなりのバグがあるようです。

+0

を(別のスレッドからの回答を参照)に見えますcURL機能がインストールされていないようです。 php_info()ファイルを実行し、cURL関数の記述がないか調べます。リンク:http://stackoverflow.com/questions/8874425/500-error-developing-heroku-php-facebook-app-locally –

答えて

3

このエラーは、キーHTTP_X_FORWARDED_PROTOが$ _SERVER配列に存在しないことを示しています。 あなたがそのようなエラーをエスケープしたい場合には、そのようなキーが配列の例に存在するかどうかを確認する必要があります。

if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == "http" && ...) 

またはこのようなgetenvメソッドを使用します。

if (getenv('HTTP_X_FORWARDED_PROTO') == "http" && getenv('REMOTE_ADDR') != '127.0.0.1' && getenv('REMOTE_ADDR') != 'localhost') 
+0

良いアイデアですが、私のコードを見れば、すべてのインデックスが単一またはHTTP_X_FORWARDED_PROTOを含む二重引用符。 –

+0

ありがとうございます。イネットセットは良い考えですが、Heroku/GitHubのこのプログラムではエラーが多すぎるようです。私はFacebookのアプリケーションのための別のコードベースを使用すると思います。ありがとうございました! –

+0

誰でもこのコードを使用している場合、元のコードは次のとおりです:https://github.com/heroku/facebook-template-php(2012年1月11日に引っ張られました)ここにいくつかの助けがあります:http://mantisforge.org/dev/gitstats /commit-detail.php?commit=e918599783875090a446c3fe8aeebec8d0f1f817 これをすべての未定義のインデックスに対して行い、それでもすべての "無効な資格"で終わる!ですから、私が推薦するのは、次のようなコードベースのためのものです:http://phpmaster.com/integrating-with-facebook/またはhttp://thinkdiff.net/facebook/graph-api-iframe-base-facebook-アプリケーション開発-php-sdk-3-0 / –