PHP魔术引号添加斜线模板文件?(PHP Magic Quotes adding slashes t

2019-10-16 13:57发布

我有我用我的网站像下面一个默认的网站模板:

<!-- 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 。 我只是想知道如果我例如它移动到上了魔术引号的服务器我的脚本(S)将正常工作。

我需要做什么做停止魔术引号添加斜线到signup.tpl? 我知道我可以只是把魔术引号关闭,但就像我的情况下,说我改变了服务器,上有神奇的报价并没有让关闭魔术引号。

(忽略的形式,它不只是用作样品,以显示一个问题注册表单)。

Answer 1:

有两个魔术引号设置。 从手册:

; 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

魔术引号 - runtiume是不一样的东西魔术GPC报价 - 魔术引号运行时发生的所有输入在运行时,不只是GET / POST / COOKIE全局。 你需要在你的脚本开始禁用此设置:

set_magic_quotes_runtime(false); # pre 5.3
ini_set('magic_quotes_runtime', 0); # 5.3 onwards


文章来源: PHP Magic Quotes adding slashes to template file?