我在一个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提交中进行的数据清理。如果我的仅目标是打印完成表格的纸质副本,我可以忽略消毒吗?
答案 0 :(得分:0)
是的,您可以忽略它。就像没有动作集的静态html表单一样。常规提交不会触发任何事件(但已注册的js事件)。
如果php脚本创建了表单,请接受输入(例如$ _GET),应正确地对它们进行转义,以避免跨站脚本(XSS)
答案 1 :(得分:0)
您可以忽略数据清理。但是按照您的编写方式,我认为代码甚至还会显示输入字段。我建议您将表单提交到PHP文件,并使用PHP显示数据(即使不提交到数据库)。这将阻止显示输入字段。