PHP出了点问题

时间:2017-04-23 22:32:09

标签: php html

我正在尝试为我的网站制作类似论坛的部分。这不是张贴,我不知道为什么。这是我的PHP html

    <?php
if ($_POST) {
    $title = $_POST['title'];
    $name = $_POST['name'];
    $content = $_POST['commentContent'];
    $handle = fopen("comments.html", "a");
    fwrite($handle, "<h2 class='Roboto-Slab'>$title</h2>", "<br>", "<h3 
    class='Roboto-Slab'>By $name</h3>", "<p class='Roboto-Slab'>$content</p>");
    fclose($handle);


    }

?>
    <form action="" method="POST">
    <textarea class="comment-boxmain" rows="20" cols="40" name="commentContent" 
    placeholder="Start Typing...."></textarea><br>
    <input class="comment-boxname" placeholder="Title" type="text" 
    name="title">
    <input class="comment-boxname" placeholder="Your Name" type="text" 
    name="name">
    <input class="comment-btn" type="submit" value="post"><br>
    </form>
    <?php include "comments.html"; ?>

如果有帮助,请查看cvmblog.com/forum.php上的答案。

1 个答案:

答案 0 :(得分:0)

字符串连接用点(。)完成,而不是逗号(,)。

替换:

fwrite($handle, "<h2 class='Roboto-Slab'>$title</h2>", "<br>", "<h3 
class='Roboto-Slab'>By $name</h3>", "<p class='Roboto-Slab'>$content</p>");

使用:

fwrite($handle, "<h2 class='Roboto-Slab'>$title</h2>". "<br>". "<h3 
class='Roboto-Slab'>By $name</h3>". "<p class='Roboto-Slab'>$content</p>");

它会起作用。但是,这种连接是没用的。你可以做到:

fwrite($handle, "<h2 class='Roboto-Slab'>$title</h2><br><h3 class='Roboto-Slab'>By $name</h3><p class='Roboto-Slab'>$content</p>");

同时检查comments.html文件是否包含CHMOD 777.此外,在php.ini文件上启用error_reporting,因为在这种情况下抛出的PHP错误可能会引导您轻松访问错误行。

以下是针对存储的XSS(允许人们在您的网页上插入HTML和Javascript代码的漏洞)以及RCE(远程代码执行)保护的代码实现:

&#13;
&#13;
 <?php
if ($_SERVER['REQUEST_METHOD']=='POST') {
    $title = strip_tags($_POST['title']);
    $name = strip_tags($_POST['name']);
    $content = nl2br(htmlspecialchars($_POST['commentContent']));
    $handle = fopen("comments.html", "a");
    fwrite($handle, "<h2 class='Roboto-Slab'>$title</h2><br><h3 
    class='Roboto-Slab'>By $name</h3><p class='Roboto-Slab'>$content</p>");
    fclose($handle);


    }

?>
    <form action="" method="POST">
    <textarea class="comment-boxmain" rows="20" cols="40" name="commentContent" 
    placeholder="Start Typing...."></textarea><br>
    <input class="comment-boxname" placeholder="Title" type="text" 
    name="title">
    <input class="comment-boxname" placeholder="Your Name" type="text" 
    name="name">
    <input class="comment-btn" type="submit" value="post"><br>
    </form>
    <?php echo file_get_contents("comments.html"); ?>
&#13;
&#13;
&#13;

另外,做一些关于数据库引擎的搜索(如果你还想使用文件,请看一下平面文件数据库的实现,因为它被称为)。