0

以下のようなサイトに使用するデフォルトのサイト テンプレートがあります。

<!-- Meta start -->
<title></title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<!-- Meta end -->

<?php
    require_once($sidebar_inc);
?>

<?php
    // main.inc.php
    require_once($main_inc);
?>

<!-- CONTENT START -->
<?php
    // signup.tpl template location
    $tpl = 'inc/tpl/signup.tpl';
    // check if files exists and is readable
    if(file_exists($tpl) && is_readable($tpl)) {
        echo file_get_contents($tpl);
    } else {
        echo 'Template not found';
    }
?>

<!-- CONTENT FINISH -->

<?php
    // footer.inc.php
    require_once($footer_inc);
?>

今私の問題は、魔法の引用符がオンになっている場合signup.tplに含まれている場合に、すべてのフォームデータに追加されることです。file_get_contents"\

signup.tplテンプレートはこちら

<h1>Sign up</h1>

<p>Welcome to SITE_NAME. To get started, you’ll need an account.</p>

<form action="signup.php" method="post">
    <div class="form_settings">
        <p><span>Name</span><input class="contact" type="text" name="your_name" value="" /></p>
        <p><span>Email Address</span><input class="contact" type="text" name="your_email" value="" /></p>
        <p><span>Message</span><textarea class="contact textarea" rows="8" cols="50" name="your_enquiry"></textarea></p>
        <p style="padding-top: 15px"><span>&nbsp;</span><input class="submit" type="submit" name="contact_submitted" value="submit" /></p>
    </div>
</form>

基本的に魔法の引用符signup.tplが含まれていると、このように表示されます。

ここに画像の説明を入力

ただし、魔法の引用符をオフにすると、スラッシュが追加されないため、次のようになります。

ここに画像の説明を入力

これで、魔法の引用符をオンにするべきではないことがわかりましたが、魔法の引用符がオンになっている場合はすべてからスラッシュを削除する機能がある$_GET, $_POST, $_COOKIE, $_SESSIONため、魔法の引用符がオンになっていてもスクリプトが機能します。問題は、魔法の引用符がオンになっていると、にスラッシュが追加されないという問題を解決する方法がわからないことsignup.tplです。たとえば、魔法の引用符がオンになっているサーバーにスクリプトを移動した場合に、スクリプトが機能することを確認したいだけです。

signup.tpl にスラッシュを追加するマジック クォートを停止するにはどうすればよいですか? 魔法の引用符をオフにできることはわかっていますが、魔法の引用符がオンになっていて魔法の引用符をオフにすることを許可していないサーバーを変更した場合に備えて言ったように。

(フォームは無視してください。問題を示すためのサンプルとして使用されているサインアップ フォームではありません)。

4

1 に答える 1

2

2 つのマジック クォート設定があります。マニュアルから:

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

Magic-quotes-runtiume は、魔法の GPC クォーティングと同じではありません。magic-quotes-runtime は、GET/POST/COOKIE グローバルだけでなく、実行時にすべての入力に対して発生します。スクリプトの開始時にこの設定を無効にする必要があります。

set_magic_quotes_runtime(false); # pre 5.3
ini_set('magic_quotes_runtime', 0); # 5.3 onwards
于 2012-04-09T23:16:18.420 に答える