簡體   English   中英

發送標題位置后html渲染是否首先在頂部重定向?

[英]Does html render after sending a header location redirect first at the top?

用戶成功購買了訂閱后,我會加載一個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();
?>

沒有。

重定向響應的正文僅在未默默遵循重定向的情況下使用。

我不知道任何不默默跟隨重定向的常見網絡瀏覽器。 我認為可以將lynx配置為其他方式。


die()的一般做法是在有條件地重定向並且想要避免進行額外處理或包括不適合重定向消息的任何HTML的情況下。

盡管這篇文章很老,但我認為這可能會有所幫助。 以下工作正常,因為html仍會呈現

<?php
header("Refresh: 0.5; url=http://example.com");
?>
<!DOCTYPE html>
<html>

you tracking code here in body

為了重定向,在添加標題部分之前,必須包括另一部分ob_start(); ,它啟用了對象緩沖,因此直到頁面完全加載后才發送標題。 完成:編輯:我現在意識到這不是您想要實現的。 我不相信可以用純PHP完成

<?
ob_start();
?>

<!-- Event snippet for Example Purchase conversion page -->
<script>
  gtag('event', 'conversion', {
  'send_to': 'AW-************/**************',
  'transaction_id': ''
  });
</script>
<?php
header("Location: /account/subscription/");
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM