我有一个php文件,我在用户成功购买订阅后加载,以使用adwords转换跟踪跟踪购买转化。在需要将用户重定向到下一个适当的页面/account/subscription/
最初,我将header("Location: /account/subscription/");
放在产生headers already sent
错误的转化跟踪代码下方。所以现在我将它放在跟踪代码上方。
因为我知道在我的想法中在标题重定向之后发送die()
的好习惯是将它放在跟踪代码下面,这样它就不会在页面加载html之前终止页面。
即使header
重定向位于页面顶部,其下方的HTML也会在重定向之前呈现吗?
<?
header("Location: /account/subscription/");
?>
<!-- Event snippet for Example Purchase conversion page -->
<script>
gtag('event', 'conversion', {
'send_to': 'AW-************/**************',
'transaction_id': ''
});
</script>
<?
die();
?>
答案 0 :(得分:1)
没有
只有在没有静默跟踪重定向的情况下才会使用重定向响应的正文。
我不知道任何常见的网络浏览器,它不会默默地遵循重定向。我认为lynx可以配置为其他方式。
die()
的一般做法是针对您有条件地重定向并希望避免进行其他处理或包含任何不适合重定向消息的HTML的情况。
答案 1 :(得分:0)
尽管这篇文章很老,但我认为这可能会有所帮助。以下工作正常,因为html仍会呈现
<?php
header("Refresh: 0.5; url=http://example.com");
?>
<!DOCTYPE html>
<html>
you tracking code here in body
答案 2 :(得分:-2)
为了重定向,在添加标题部分之前,必须包含另一个部分<?
ob_start();
?>
<!-- Event snippet for Example Purchase conversion page -->
<script>
gtag('event', 'conversion', {
'send_to': 'AW-************/**************',
'transaction_id': ''
});
</script>
<?php
header("Location: /account/subscription/");
?>
,它启用了对象缓冲,因此在页面完全加载之前它不会发送标题。去完成:
编辑:我现在意识到这不是你想要实现的目标。我不相信它可以在纯PHP中完成
element.scrollTop