PHP 将 HTML 标签写入文件并显示
Posted
技术标签:
【中文标题】PHP 将 HTML 标签写入文件并显示【英文标题】:PHP Write HTML tags into file and display it 【发布时间】:2021-04-19 18:48:18 【问题描述】:我想在 php 中创建一个简单的注释系统,我的问题是当用户键入“,并发布它,它应该显示为
我的 PHP 代码:
我想在 PHP 中创建一个简单的注释系统,我的问题是当用户键入“,并发布它,它应该显示为
我的 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 );
?>
【问题讨论】:
你看过php.net/htmlspecialchars吗? 那你为什么一次写 1 个字节的文件? @CarlosM.Hernández 谢谢,它很有用,但有什么办法甚至可以检查用户在 textarea 中输入的内容,以及它是否包含 '>' 或 ' 你可以做一个替换,你应该在对 POST 数据做任何事情之前验证所有用户输入,所以在使用 $_POST['txtMsg'] 之前,检查特殊字符并替换它们。跨度> 【参考方案1】:我想知道为什么你一次写一个字节的文件,一定有一些非常狡猾的示例代码在某个地方。
如果您使用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 <stdio.h><br><em>Sent: 2021 January 14, 18:01:54</em>
PHP手册
htmlspecialchars()
如果你需要它 PHP手册htmlspecialchars_decode()
【讨论】:
【参考方案2】:请研究 htmlspecialchars 的用法。 htmlspecialchars() 函数将一些预定义的字符转换为 HTML 实体。
注意:要将特殊的 HTML 实体转换回字符,请使用 htmlspecialchars_decode() 函数。
【讨论】:
以上是关于PHP 将 HTML 标签写入文件并显示的主要内容,如果未能解决你的问题,请参考以下文章