0

私は見回しましたが、私のニーズに合った答えはありません。ユーザーが一連のフォームを完了すると、感謝を伝え、更新を確認し、メイン ページにリダイレクトするメッセージが必要です。

コード:

<?php 


require './facebook.php';

$facebook = new Facebook(array(
  'appId'  => ' *************',
  'secret' => '********************',
  'cookie' => true, 
));

$status2 = $_POST['status2'];

$uid = $facebook->getUser();

$args = array(
    'message'   => $_POST['status2'],
    'link'      => 'http://apps.facebook.com/geordie-status/',
    'caption'   => 'Translate from English to Geordie'
);

if(isset($_POST['post']))


$post_id = $facebook->api("/$uid/feed", "post", $args);

    $msg = "Thanks for translating your status, it has now been posted to your wall.";

    header("Location: http://apps.facebook.com/geordie-status/");


?>

ボタンをクリックすると、更新が投稿されますが、メッセージ ボックスやリダイレクトはありません。何が間違っていますか?

4

1 に答える 1

1

への呼び出しの前に、何も送信していないことを確認する必要がありますheader()。このコードが呼び出される前に空白がある場合、または HTMLは機能しheader()ません。環境が要件を満たしている場合は、header_register_callbackそれも試してみることをお勧めします。

また、使用後は関数をheader('Location');呼び出して、exit or die他のものが送信されないようにする必要があります。

このリダイレクトを JavaScript で行う場合、ダウンロード ページのようにします。

「ダウンロードがすぐに開始されます。ダウンロードが始まらない場合は、ここをクリックしてください。

「ステータスが更新されました。すぐにリダイレクトされます。ホームに戻るにはここをクリックしてください。

Javascriptはあなたの要件window.locationsetTimeout()満たします。

setTimeout('redirect',15000);

function redirect(){
 window.location='http://apps.facebook.com/geordie-status/'
}

ハード メッセージ ボックスを使用する場合は、confirm()foryes/noまたはalert()for just the message を使用する必要があります。または、ポップアップに jQuery を使用できます。

var dialogResult =  confirm("Press Ok to confirm submission");
if (dialogResult == true){
   // post status
} 
else{
   // be sad and do nothing
}
于 2013-05-09T22:45:27.460 に答える