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 中执行此重定向,我会像下载页面一样执行此操作。

'您的下载将立即开始。如果您的下载未开始,请单击此处。

'您的状态已更新,您将立即被重定向。点击这里回家。

Javascriptwindow.location并且setTimeout()会满足您的要求。

setTimeout('redirect',15000);

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

如果你想使用硬消息框,那么你应该使用confirm()foryes/noalert()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 回答