0

重複の可能性:
参照 - この記号は PHP で何を意味しますか?

PHP-Nemid のテスト スクリプトを実行しようとして失敗しました。私はコードを処理しようとしていますが、ファイル「nemid.tpl.php」を使用するレンダリング関数に到達すると、少し迷ってしまいます。スクリプトを実行すると、テンプレート ファイルが文字どおり画面に書き込まれます。つまり、PHP が関連するテンプレート変数を入力するのではなく、文字どおりの PHP コードを書き込むだけです。つまり<?= $some_var_value、レンダリングされたページのソース コードと同じように表示されます。

私が理解していないもう 1 つのことは<?=、テンプレート ファイルの の意味です。これは、私がよく知っている PHP 構造ではありません。<?= $some_var最初は に変更する必要があると思い<? print $some_varましたが、この場合でも、リテラル PHP コードがページに出力されます。

ここで何が起こっているのかについて誰かが私に洞察を提供してくれたらありがたいです。

テンプレートファイル(nemid.tpl.php)

<html>
<body>
        <form id="signedForm" name="signedForm" method="post" action="<?= $_SERVER['PHP_SELF'] ?>">
                <div id="applet">
<!-- div ID used for overlay / modal-box -->
                    <applet name="DANID_DIGITAL_SIGNATUR" tabindex="1" archive="<?= $ServerUrlPrefix ?>/bootapplet/1234567" code="dk.pbs.applet.bootstrap.BootApplet" width="200" height="250" mayscript="mayscript" style="visibility: visible; ">
                        <param name="ServerUrlPrefix" value="<?= $ServerUrlPrefix ?>"> 
                        <param name="ZIP_BASE_URL" value="<?= $ZIP_BASE_URL ?>">
                        <param name="ZIP_FILE_ALIAS" value="<?= $ZIP_FILE_ALIAS ?>">
                        <param name="log_level" value="<?= $log_level ?>"> 
                        <param name="paramcert" value="<?= $paramcert ?>">
                        <param name="signproperties" value="<?= $signproperties ?>"> 
                        <param name="paramsdigest" value="<?= $paramsdigest ?>"> 
                        <param name="signeddigest" value="<?= $signeddigest ?>"> 
                        <param name="MAYSCRIPT" value="<?= $MAYSCRIPT ?>"> 
                    </applet>
                </div>
            <input type="hidden" name="signature">
            <input type="hidden" name="result"> 
        </form>
<script type="text/javascript">
    function onLogonOk(signature) {
        document.signedForm.signature.value=signature;
        document.signedForm.result.value='ok';
        document.signedForm.submit();
    }
    function onLogonCancel() {
        document.signedForm.result.value='cancel';
        document.signedForm.submit();
    }
    function onLogonError(emsg) {
        document.signedForm.result.value=emsg;
        document.signedForm.submit();
    }
</script> 
</body>
</html>

レンダリング機能

以下の関数で $vars の内容をテストしたところ、テンプレートに必要な抽出された変数が存在することが確認できました。

function render($template, $vars = array())
{
    extract($vars);
    ob_start();
    include('../templates/' . $template . '.tpl.php');
    $content = ob_get_contents();
    ob_end_clean();
    return $content;
}

SharePoint サイトで匿名アクセス オプションが無効になっているのはなぜですか?

ここに記載されている手順に従って、windows7 で SharePoint 2010 をセットアップしました。

デフォルト サイト (80 ポート) への匿名アクセスを許可しようとしています。ここに続きます

ステップ 8 に進むと、サイトの匿名アクセス オプションが無効になっていることがわかりました。管理者でログインしました。いつものように、管理者には許可されているはずです。なぜこれが起こっているのですか?

また、Central 管理者を匿名アクセスにすることはできますか?

4

3 に答える 3

4

<?=echo の短い開始タグです。

<?='Hello world'?>

出力しますHello world

解析していない理由に答えるために、ファイル名は何ですか? PHP がインストールされ、Apache/Nginx/その他のサーバーと連携するように構成されていますか?

注意すべきもう1つのことは、あなたが持っているテンプレートが利用していることですPHP_SELF

PHP_SELF実際には多くの脆弱性を開くため、使用することはお勧めしません。別の方法を使用できます:

basename(__FILE__);
于 2012-12-31T08:00:42.443 に答える
1
  <?=

はphpの省略形です

  <?php echo 
于 2012-12-31T08:01:48.453 に答える
0
<?=

テンプレート作成者はほとんどのファイルに HTML を使用し、必要に応じて PHP で変数を出力するだけなので、省略形として使用されます。

私のサーバーはそれをオンにしていますが、古いバージョンではオフにするか使用しないことができます。

于 2012-12-31T08:05:56.357 に答える