PHP回显谷歌登录按钮

时间:2015-01-06 15:37:45

标签: php google-oauth

当我使用official Google dev website中的此代码时,它将按以下方式呈现登录按钮:

<span id="signinButton">
  <span
    class="g-signin"
    data-callback="signinCallback"
    data-clientid="CLIENT_ID"
    data-cookiepolicy="single_host_origin"
    data-requestvisibleactions="http://schema.org/AddAction"
    data-scope="https://www.googleapis.com/auth/plus.login">
  </span>
</span>

但是当我尝试通过PHP创建此按钮时,使用简单的echo命令,它将不会显示任何内容。任何人都知道为什么以及我能做些什么呢?

这是PHP代码:

$html = '';

$html .= '<span id="signinButton">';
  $html .= '<span';
    $html .= 'class="g-signin"';
    $html .= 'data-callback="signinCallback"';
    $html .= 'data-clientid="XXXXX"';
    $html .= 'data-cookiepolicy="single_host_origin"';
    $html .= 'data-requestvisibleactions="http://schema.org/AddAction"';
    $html .= 'data-scope="https://www.googleapis.com/auth/plus.login">';
  $html .= '</span>';
$html .= '</span>';

echo $html;

这是PHP代码的输出:

<span id="signinButton"><spanclass="g-signin"data-callback="signinCallback"data-clientid="85266228175-pl3302nr5m1ephd64oggies00ec6u224.apps.googleusercontent.com"data-cookiepolicy="single_host_origin"data-requestvisibleactions="http://schema.org/AddAction"data-scope="https://www.googleapis.com/auth/plus.login"></span></span>

4 个答案:

答案 0 :(得分:1)

$html = '';

$html .= '<span id="signinButton">';
  $html .= '<span ';
    $html .= 'class="g-signin" ';
    $html .= 'data-callback="signinCallback" ';
    $html .= 'data-clientid="XXXXX" ';
    $html .= 'data-cookiepolicy="single_host_origin" ';
    $html .= 'data-requestvisibleactions="http://schema.org/AddAction" ';
    $html .= 'data-scope="https://www.googleapis.com/auth/plus.login">';
  $html .= '</span>';
$html .= '</span>';

echo $html;
好像你忘记了这些空间。以上应该有效。

答案 1 :(得分:1)

你把所有东西放在一条线上。您需要在每行中添加空格,如下所示:

$html .= ' class="g-signin"';

(参见“'”和“class”)

否则您的输出将是:

<span id="signinButton"><spanclass="g-signin"data-callback="....

答案 2 :(得分:1)

$html .= '<span';更改为$html .= '<span ';

$html .= 'class="g-signin"';$html .= ' class="g-signin"';

<spanclass

中的单词“span”和“class”之间缺少空格

但是,您应该为所有这些代码添加空格,因为其余代码已经聚集在一起,这使得在HTML源代码中读取起来更加困难。

$html = '';

$html .= '<span id="signinButton">';
  $html .= '<span ';
    $html .= 'class="g-signin"';
    $html .= ' data-callback="signinCallback"';
    $html .= ' data-clientid="XXXXX"';
    $html .= ' data-cookiepolicy="single_host_origin"';
    $html .= ' data-requestvisibleactions="http://schema.org/AddAction"';
    $html .= ' data-scope="https://www.googleapis.com/auth/plus.login">';
  $html .= '</span>';
$html .= '</span>';

echo $html;

答案 3 :(得分:1)

当您遇到PHP生成的问题时,应始终检查生成的HTML。在这种情况下,如果您检查了HTML,您可能已经注意到没有空格来分隔您的标记名和属性。

您可以根据需要在字符串中添加空格。例如,前几个实例......

...
$html .= '<span ';
$html .= 'class="g-signin" ';
...

你也可以考虑一种不同的方式,比如在这种情况下将这个HTML放在PHP标签之外。