即使在放入ob_start()之后,头函数也不起作用;

时间:2012-06-11 09:14:52

标签: php function header

  

可能重复:
  Headers already sent by PHP

我的php文件中有以下代码。我想使用标题函数从此页面重定向,这在下面的代码中是明确的。我确保没有echo命令也放置了ob_start();在文件的开头但我收到以下错误:

警告:无法修改标头信息 - 已在/ hermes / bosweb / web054 /中发送的标头(输出从/hermes/bosweb/web054/b548/ipg.psdingcampsduscom/facebook_registration_plugin/store_user_data.php:1开始)第171行的b548 / ipg.psdingcampsduscom / facebook_registration_plugin / store_user_data.php

这是代码:

<?php ob_start();
            define('FACEBOOK_APP_ID', 'xxxxxxxx');
            define('FACEBOOK_SECRET', 'xxxxxxxxxx');
            // No need to change function body
            function parse_signed_request($signed_request, $secret) {
                list($encoded_sig, $payload) = explode('.', $signed_request, 2);
                // decode the data
                $sig = base64_url_decode($encoded_sig);
                $data = json_decode(base64_url_decode($payload), true);
                if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
                    error_log('Unknown algorithm. Expected HMAC-SHA256');
                    return null;
                }
                // check sig
                $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
                if ($sig !== $expected_sig) {
                    error_log('Bad Signed JSON signature!');
                    return null;
                }
                return $data;
            }
            function base64_url_decode($input) {
                return base64_decode(strtr($input, '-_', '+/'));
            }
            if ($_REQUEST) {
                $response = parse_signed_request($_REQUEST['signed_request'],
                                FACEBOOK_SECRET);
header("location: fbwe/step2.php?name=".$name."&email=".$email."&gender=".$gender."&arts=".$cb1."&act=".$cb2."&cooking=".$cb3."&dance=".$cb4."&designing=".$cb5."&fashion=".$cb6."&interior=".$cb7."&modeling=".$cb8."&photography=".$cb9."&poetry=".$cb10."&programming=".$cb11."&reading=".$cb12."&sketching=".$cb13."&singing=".$cb14."&sports=".$cb15."&stunting=".$cb16."&videography=".$cb17."&other=".$cb18);

                // Connecting to Database

            } else {
                //echo '$_REQUEST is empty';
            }
            ?>

任何人都可以找出问题所在吗?

1 个答案:

答案 0 :(得分:0)

在使用标题功能之前,应该记住很少的事情。

  1. 标题函数之前应该没有echo或print语句。
  2. 页面顶部和底部不应有空格,即页面应以<?php开头,以?>结尾。在这些标签之后或之前必须没有空格。