我看过但没有答案似乎符合我的需要。一旦用户完成一系列表单,我只需要一条消息来表示感谢,确认更新并重定向到主页面。
代码:
<?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/");
?>
单击按钮时,会发布更新,但没有消息框或重定向,我做错了什么?
答案 0 :(得分:1)
在致电header()
之前,您应该确保没有发送任何内容。如果在调用此代码或任何HTML之前有任何空格,则header()
将无效。
如果您的环境符合header_register_callback
的要求,那么我建议您尝试一下。
此外,在您使用header('Location');
后,您应该调用exit or die
函数以防止发送任何其他内容。
如果您要在javascript中进行此重定向,我会像下载页面那样进行。
'您的下载将暂时开始。如果您的下载没有开始,请点击此处。'
'您的状态已更新,您将被暂时重定向。点击这里回家。
Javascript的window.location
和setTimeout()
符合您的要求。
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
}