php会话变量在title中得到响应,但在og-meta中没有.时间问题


php session variables being echoed in title but not in og meta. Timing issue?

UPDATE:页面加载后,我在源代码中看到了我试图在下面写的所有数据。当我说它不起作用时,我指的是Facebook共享者没有正确地拾取og标签。

所以我有一个页面,上面有很多使用会话变量进行查询的内容。一切都很好。当我回显它们时,会话变量都会填充到我需要它们的地方。示例:

<title><? echo $_SESSION["clientName"] ?></title>

问题是当我开始将它们写入og元数据时。

<meta property="og:description" content="<? echo $_SESSION["clientName"]; ?>"/>

这让我把数据写入标签。我在源代码中看到了它,但当共享程序被激活时,Facebook认为它什么都不是。现在,如果我使用任何类型的会话定义一个不来自查询的本地php变量,那么它对共享程序来说都很好。

$clientName="University of Alaska";    
<meta property="og:description" content="<? echo $clientName; ?>"/>

这让我很困惑!它是否没有及时设置,因为它试图首先填充?我的一个收录页正在做一些繁重的工作。在加载所有内容之前,会话是否未完全设置?

完整代码

<?
session_start(); 
include '../includes/connection.php';
include '../includes/getMajorExtra.php';
include '../includes/getHiddenList.php';
include '../includes/getMajorList.php';
?>
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<META http-equiv="Content-type" content="IE=edge,chrome=1; charset=iso-8859-1">
<? 
$query = "SELECT clientID,active,customer FROM client WHERE     subdomain='".$_SESSION["clientURL"]."'";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
 $activeClient=$row["active"];
 $clientName=$row["customer"];
 $clientID=$row["clientID"];
}
mysql_free_result($result);
echo "<meta property='"og:title'" content='"".$clientName."'">";  
?>
<meta property="og:image" content="http://themajorkey.com/images/MK_logo.png"/>
<meta property="og:description" content="<? echo $_SESSION["clientName"]; ?>"/>
<title><? echo $_SESSION["clientName"]; ?></title>

如何设置$_SESSION["clientName"]?Facebook抓取你的链接并缓存你链接的元数据。我猜facebook无法设置您的会话数据$_session["客户端名称"]。您是否根据用户登录或用户操作选择的内容设置会话数据?如果是这样的话,脸书将无法为你设置。

您可以在生成共享链接时尝试此操作:

你的clientName共享链接可以是这个

http://yoursite.com/?clientName=<?php echo $_SESSION['clientName'];?>

在你的网站上你可以做:

<meta property="og:description" content="<?php echo $_GET["clientName"]; ?>"/>

根据需要在$_GET["clientName"]上添加验证。

相关文章: