如果仅打印,我是否需要清理表格?

时间:2019-07-16 15:56:37

标签: php html

我在一个PHP页面中有一个简单的HTML表单。没有数据库,3个链接,没有提交到其他页面。我使用“打印表单”按钮代替“提交”按钮:

public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
    if (turnContext.Activity.Type == ActivityTypes.Message)
    {
        turnContext.Activity.RemoveRecipientMention();

        query = turnContext.Activity.Text;

        if (turnContext.Activity.ChannelId == "msteams")
        {
            // I WANT TO ADD CODE HERE TO REMOVE THE @MENTIONS FROM QUESTION, BEFORE CALLING THE QNA Service.
            // incoming query ->  turnContext.Activity.Text value "<at> chat bot name </a> what is sharepoint? "
            // modified query -> turnContext.Activity.Text value "what is sharepoint? "       
        }
        var qnaResponse = await _services.QnAServices[QnAMakerKey].GetAnswersAsync(turnContext);

        if (qnaResponse[0].Score < .70)
        {
            await turnContext.SendActivityAsync("I'm having some trouble understanding what you mean. Could you please rephrase your question?", cancellationToken: cancellationToken);
        }
        else
        {
            await turnContext.SendActivityAsync(qnaResponse[0].Answer, cancellationToken: cancellationToken);
        }

    }
}  

使用jQuery侦听器,该侦听器在触发时会调用“ window.print()”:

<input class="printBtn" type="button" id="printBtn" value="Print Form">

这可以正常工作,并且通过不在提交时进行发布来避免浏览器刷新问题。但这也避免了通常在POST提交中进行的数据清理。如果我的目标是打印完成表格的纸质副本,我可以忽略消毒吗?

2 个答案:

答案 0 :(得分:0)

是的,您可以忽略它。就像没有动作集的静态html表单一样。常规提交不会触发任何事件(但已注册的js事件)。

如果php脚本创建了表单,请接受输入(例如$ _GET),应正确地对它们进行转义,以避免跨站脚本(XSS)

答案 1 :(得分:0)

您可以忽略数据清理。但是按照您的编写方式,我认为代码甚至还会显示输入字段。我建议您将表单提交到PHP文件,并使用PHP显示数据(即使不提交到数据库)。这将阻止显示输入字段。