Php 优雅的编码,如何处理隐藏/不可见的HTML代码?

Php 优雅的编码,如何处理隐藏/不可见的HTML代码?,php,html,readability,Php,Html,Readability,我正在开发一个问答网站。除了每个答案外,还有一个“选择最佳答案”按钮,询问者可以看到该按钮,但其他观众不可以看到该按钮。网页的其他部分几乎相同。那么我如何编写这个网页呢?我是否应该每次检查查看者身份,以确定按钮是否应可见。如果一个问题有很多答案,那么除了询问者之外,还有很多按钮隐藏在观众面前。这种编码会浪费很多额外的带宽吗?我认为这种编码有点可疑。有更好的方法吗 “添加注释”按钮也存在同样的问题。右下方有一个“添加注释”按钮和一个隐藏的,如果有20个答案,则会有20个隐藏的,隐藏的代码会大大增加

我正在开发一个问答网站。除了每个答案外,还有一个“选择最佳答案”按钮,询问者可以看到该按钮,但其他观众不可以看到该按钮。网页的其他部分几乎相同。那么我如何编写这个网页呢?我是否应该每次检查查看者身份,以确定按钮是否应可见。如果一个问题有很多答案,那么除了询问者之外,还有很多按钮隐藏在观众面前。这种编码会浪费很多额外的带宽吗?我认为这种编码有点可疑。有更好的方法吗

“添加注释”按钮也存在同样的问题。右下方有一个“添加注释”按钮和一个隐藏的
,如果有20个答案,则会有20个隐藏的
,隐藏的代码会大大增加HTML文件的大小。有一种优雅的方式吗

至于“添加评论”按钮,任何登录用户都可以添加评论,因此没有身份区分。那么如何处理这个问题呢

我是否应该每次检查查看者身份,以确定按钮是否应可见


是的,检查后不显示按钮。此外,你还应该在按下按钮后检查,并在处理该动作时检查是否不是询问者发起的,因为这很容易被滥用

这种类型的内容不会浪费带宽。是的,如果当前正在查看页面的用户可以使用这些控件,则只应在页面上包含这些控件,因此请务必检查您的登录用户(如果他们已登录)以及他们与正在查看的项目的关系

这可以简单到:

if ($current_user_id == $question_asker_id) {
  // show 'accept as best answer' form
}
在允许对任何内容进行任何更改之前,请确保检查服务器端的表单数据。

您不应该隐藏HTML,您不应该包含HTML。例如,在服务器上,您正在执行以下操作:

if ($loggedIn && $user == 'asker') {  // pseudocode
    echo acceptButton();  // outputs the HTML for the button
}

非asker用户甚至不会收到浏览器中accept按钮的HTML。

如果您担心20个小表单占用大量空间(提示,他们不会,大多数服务器压缩其输出,因此额外的表单几乎被压缩掉),只需使用简单的链接即可

对于隐藏,只需使用if测试,您应该检查用户的身份即可。这个if语句(即使运行了20次)的开销几乎为零

“过早优化是万恶之源”-学会这一点,生活在这一点上

实现这一点的“优雅”方法是(伪代码):


您这样做是为了好玩,还是与堆栈交换有很大不同?您打算如何实现这一点?这些表格都到哪里去了?你有数据库来备份这个吗?你用的是什么语言?但是隐藏的“添加注释”输入框呢?如果它是所有用户都可以访问的东西,那么就包含它。因为我几乎不记得PHP(尽量避免),我不知道他的输出的细节,我很懒:P
foreach($answers as $answer)
{
    // Print answer here
    if($current_user == $question_asker)
    {
        echo "button form here";
    }
    echo "comment form here";
}