2012-01-11 13 views
0

私は、アップロードするか入力するかを入力するためのphpを使用して画像コンテストを開催しています。また、1人のfacebookユーザーだけが1つの画像を最大でイベントにアップロードすることができます。再投稿を防ぐためにユーザーのfacebook IDを検証する方法

フェイスブックIDをMySQLデータで検証するにはどうすればできますか?(fbIDに従って)一度送信した同じユーザーは再びコンテストの入力ボタンをクリックできず、クリックするとmsgボックスが表示されます「あなたはすでに一度提出しました」と言っていますか?

皆さんからのご提案をお願い致します。ありがとうと私を助けてあなたのすべての時間を感謝します。

答えて

3

あなたのデータベースに写真の投稿と一緒にFacebookのユーザーIDを保存するだけです。

写真のデータが入っているテーブルがあるとします。 FacebookユーザーIDも保存する新しいフィールドを作成します。その後、ユーザーがあなたのアプリなどを訪れたときに、そのIDが既にデータベースに入っているかどうかを確認します。もしそうなら、それらにアップロードフォームを与えてはいけないが、エラーメッセージ。そうでない場合は、アップロードを許可します。

編集:チェックアウトFacebook's SDK。 FacebookのIDを含むアプリのページを閲覧しているユーザーの詳細を取得するための例があります。それをあなたのスクリプトで使うことができます。

<?php 

require 'facebook.php'; 

$facebook = new Facebook(array(
    'appId' => 'YOUR_APP_ID', 
    'secret' => 'YOUR_APP_SECRET', 
)); 

$user = $facebook->getUser(); 

if ($user) { 
    try { 
     $user_profile = $facebook->api('/me'); 
    } 
    catch (FacebookApiException $e) { 
     error_log($e); 
     $user = null; 
    } 
} 

if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} 
else { 
    $loginUrl = $facebook->getLoginUrl(); 
    echo "<script>top.location.href='$loginUrl';</script>"; 
    exit; 
} 

// if we're here, the user has successfully authenticated 
// you now have access to their profile in $user_profile 

$userId = intval($user_profile['id']); 

// logic goes here to query database and check if $userId 
// has already been used to submit a photo or not 
+0

こんにちはmartin、yeap私は "facebookID"と呼ばれるfacebookユーザーIDを格納するフィールドをmySQLに持っています。私はどのように私はそれをチェックするつもりの流れを理解していますが、問題は、私は本当に良いコーダーではないと私はよくうまく動作していないことが判明したすべてのif文をので、私には、どのように私はそれを行うことができましたので、もし私がこのような仕事に再び遭遇すれば、将来もそれを参照することができますか?返事をしてくれてありがとう、申し訳ありません。 – SupaFlybaba

+0

単なるメモ:値を含む隠しfbIDフィールド= <?php echo $ me ['id']?>は、私が秘密裏にfbIDを取得する方法です。もう一度、ありがとうございました – SupaFlybaba

+0

フォームを送信するときに他の人を偽装するためにWebインスペクタを使用するだけで、IDをページにドロップする必要はありません。 –

-1

ユーザーを認証し、FB Cookieを取得する必要があります。

ドキュメントon the FB developer siteを参照してください。

IDを取得したら、そのIDをデータベースから取り出して、ユーザーが送信したかどうかを確認することができます。

関連する問題