代码之家  ›  专栏  ›  技术社区  ›  Matej Merc

回声显示$content

  •  4
  • Matej Merc  · 技术社区  · 11 年前

    我的问题的简短示例:

    $myname = "Blah Blah";
    
    $content = "<table><tr><td>".$myname."</td></tr></table>";
    
    <?php
    echo "<table><tr><td>".$myname."</td></tr></table><form name='makepdf' action='make_pdf.php?content=$content' method='POST'><button class='cupid-green' name='submitpdf'>Prenos PDF</button></form>";
    ?>
    

    稍后我将在make_pdf.php文件中捕获$content。。。

    但问题是,我在显示echo的地方得到了$content的双重显示。但如果我更改action='make_pdf.php?content=test'它工作正常。我还在make_pdf.php中捕获$content。

    我试图做到:

    <input type='hidden' name='content' value='$content'>
    

    我得到了类似或更糟糕的结果,因为我没有捕捉到$content=$_get['content'];在make_pdf.php中

    有什么解决办法吗?

    3 回复  |  直到 11 年前
        1
  •  2
  •   Jeremy    11 年前

    使用PHP编码 htmlspecialchars 功能:

    value="<?php echo htmlspecialchars($content); ?>"
    
        2
  •  1
  •   Phil    11 年前

    尽量避免 echo -使用PHP中的静态HTML,这会使事情变得复杂。

    您需要对标记进行编码,以便在 value 属性使用 htmlspecialchars() 例如

    ?>
    
    <input type="hidden" name="content" value="<?= htmlspecialchars($content) ?>">
    
    <?php
    
        3
  •  0
  •   Phil    11 年前

    在PHP中

    <?php echo "<input type='hidden' name='content' value='" . $content . "'>";
    

    ?>

    HTML格式

    <input type="hidden" name="content" value="<?php echo htmlspecialchars($content); ?>">