我如何获得弹出消息并重定向到PHP中的URL?

时间:2013-05-09 21:45:23

标签: php facebook facebook-php-sdk facebook-apps

我看过但没有答案似乎符合我的需要。一旦用户完成一系列表单,我只需要一条消息来表示感谢,确认更新并重定向到主页面。

代码:

<?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/");


?>

单击按钮时,会发布更新,但没有消息框或重定向,我做错了什么?

1 个答案:

答案 0 :(得分: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()使用yes/no或仅使用alert()。或者,您可以使用jQuery弹出窗口。

var dialogResult =  confirm("Press Ok to confirm submission");
if (dialogResult == true){
   // post status
} 
else{
   // be sad and do nothing
}