加载页面后禁用Javascript应在操作页面上检测到

时间:2017-06-05 19:01:54

标签: javascript php html

我想我已经搜索了标签,是的,我已经在使用它们了。

但是我的问题或想法是:

我有一个表单,包括搜索/插入数据到数据库(mysql)的输入(index.php) 正在search.php上执行表单操作 搜索框搜索所选表中的输入数据,如果找到,则在result.php中给出记录,否则它将数据插入表(sql)中,然后在result.php中显示

即使使用标签,我也在同一页面上使用javascript验证表单/输入 现在加载index.php页面后,如果有人禁用了javascript,它会显示重新加载页面的警报。如果有人重新加载页面,搜索框将隐藏。

但问题是,如果在加载页面后,如果有人禁用javascript并且没有重新加载页面,并使用javascript正则表达式搜索某些受限文本,那么该文本将进入mysql数据库并保存。 search.php执行其操作并将其重定向到result.php

我想在search.php中使用一些技巧来检查启用/禁用javascript的某些条件,然后执行剩余的操作。

是否有任何方式,如果操作应该是另一个页面,在该页面上是javascript被禁用然后它什么也没有显示,如果它被启用然后重定向到search.php

2 个答案:

答案 0 :(得分:0)

使用隐藏的输入字段并在表单提交时使用javascript设置其值。由于该值仅使用javascript设置,如果提交的表单对此字段的值为空,则可以断定javascript已被禁用。

使用jQuery:

在html中:

<form id="myformid" action="myactionurl.php" method="POST">
   <!-- form fields here -->
   <input type="hidden" id="time" name="time" value="">
</form>

在js:

$('#myformid').submit(function(ev) {
    $('#time').val($.now());
});

在php中:

if(!empty($_POST['time'])) {
    //code
} else {
    echo "Javascript must be enabled for this site to work.";
}

你不必使用时间,它可以是任何东西。

答案 1 :(得分:0)

JS级别的表单验证并不重要,您需要考虑的是PHP验证。请阅读以下热门答案:form validation with javascript vs php

并且: How can I prevent SQL injection in PHP?

如果您需要检查JS是否已启用,您只需为表单创建按钮(但不是type =“submit”,而只是按钮元素)。将事件添加到该按钮:

onclick="document.getElementById('FormId').submit();"

并且只有在启用JS时才会提交表单,因为按钮将使用JS进行提交