0

人々は私のサイトを問題なく見ることができますが、Google は 500 エラーを受け取ります。すべてのエラー報告を有効にしたところ、次のようになりました。予期しない '{'、',' または ';' 6行目。

何度も見直しましたが、間違いが見つかりません。誰かが助けてくれることを願っています。$(\'#js_terms_of_use\').click(function() である 5 行目を取り、両方の \' を削除すると、6 行目のエラーは消えますが、それらをエスケープしたので、問題が何であるかがわかりませんコードは次のとおりです。

echo '
<script type=\"text/javascript\">
$Behavior.termsAndPrivacy = function()
{
    $(\'#js_terms_of_use\').click(function()
    {
        '; ?>

        tb_show('<?php echo extras::getPhrase('user.terms_of_use', array('extras_squote' => true)); ?>', $.ajaxBox('page.view', 'height=410&width=600&title=terms')); 
        <?php echo '
        return false;
    });

    $(\'#js_privacy_policy\').click(function()
    {
        '; ?>

        tb_show('<?php echo extras::getPhrase('user.privacy_policy', array('extras_squote' => true)); ?>', $.ajaxBox('page.view', 'height=410&width=600&title=policy')); 
        <?php echo '
        return false;
    });
}
</script>
';
4

2 に答える 2

3

デフォルトでは、タグの外側<?php ?>はすべてエコーされます。これを有利に利用してください。複数行の単一引用符で囲まれた文字列は悪い考えです。コードをクリーンアップする試みは次のとおりです。

<?php 
$TOU  = extras::getPhrase('user.terms_of_use', array('extras_squote' => true));
$priv = extras::getPhrase('user.privacy_policy', array('extras_squote' => true));
?>
<script type="text/javascript">
$Behavior.termsAndPrivacy = function()
{
    $('#js_terms_of_use').click(function()
    {
        tb_show('<?php echo $TOU ?>', $.ajaxBox('page.view', 'height=410&width=600&title=terms')); 
        return false;
    });

    $('#js_privacy_policy').click(function()
    {
        tb_show('<?php echo $priv ?>', $.ajaxBox('page.view', 'height=410&width=600&title=policy')); 
        return false;
    });
}
</script>
于 2012-09-05T01:33:24.983 に答える
1

PHP で 1 つの echo から複数の行を出力する必要がある場合は、heredoc 構文を使用します (利用可能な場合は newdoc 構文を使用します)。再確認するには、php.netでそれらを確認してください。

于 2012-09-05T01:37:01.223 に答える