PHP 将 HTML 标签写入文件并显示

PHP Write HTML tags into file and display it

我想在 PHP 中制作一个简单的评论系统,我的问题是当用户键入“<”时它会消失,因为它将它带到 HTML 代码并弄乱了我的代码。 所以我需要做的是,当用户在文本区域中键入: 和 post 时,它应该显示为 .

我的PHP代码:

我想在 PHP 中制作一个简单的评论系统,我的问题是当用户键入“<”时它会消失,因为它将它带到 HTML 代码并弄乱了我的代码。 所以我需要做的是,当用户在文本区域中键入: 和 post 时,它应该显示为 .

我的PHP代码:

<form method="post" name="formc" id="formc" >
    <textarea name="txtmsg" id="txtmsg" cols="25" rows="5" placeholder="Write something!" required="required"></textarea>
    <br>
    <input type="submit" value="Submit" name="submit" /> 
<?php
if ( isset( $_POST[ 'submit' ] ) ) {
    $com  = $_POST[ "txtmsg" ];
    $file = fopen( "inrg.txt", "a" );
    fwrite( $file, "<em>Anonymous:</em>" );
    for ( $i = 0; $i <= strlen( $com ) - 1; $i++ ) {
        fwrite( $file, $com[ $i ] );
        if ( $i % 37 == 0 && $i != 0 ) fwrite( $file);
    }          
    fwrite( $file, "<br>" );
    fwrite( $file, "<em>Sent: ".date('Y F j, H:i:s')."</em>");
    fclose( $file );

    echo '<script type="text/javascript">window.location ="";</script>'; // Add here
}
?>
    <br>
</form>
<?php
if (file_exists("inrg.txt")) {
    $file = fopen( "inrg.txt", "r" );
    echo fread( $file, filesize( "inrg.txt" ) );
    fclose( $file );
}
?>

请研究一下 htmlspecialchars 的用法。 htmlspecialchars() 函数将一些预定义字符转换为 HTML 个实体。

注意:要将特殊 HTML 实体转换回字符,请使用 htmlspecialchars_decode() 函数。

我想知道你为什么一次写入一个字节的文件,那里一定有一些非常狡猾的示例代码。 如果你使用 htmlspecialchars() 它会将特殊字符转换为 HTML 个实体

if ( isset( $_POST[ 'submit' ] ) ) {
    
    $file = fopen( "inrg.txt", "a" );
    fwrite( $file, "<em>Anonymous:</em>" );
    fwrite( $file, htmlspecialchars( $_POST['txtmsg'] ));
    fwrite( $file, "<br>" );
    fwrite( $file, "<em>Sent: ".date('Y F j, H:i:s')."</em>");
    fclose( $file );
}

文件中的结果

<em>Anonymous:</em>include &lt;stdio.h&gt;<br><em>Sent: 2021 January 14, 18:01:54</em>

PHP Manual htmlspecialchars()
And if you need it
PHP Manual htmlspecialchars_decode()