2017-06-05 57 views
-1

我想我已经搜索过关于标签的信息,并且我已经在使用它们了。加载页面后禁用Javascript应该在操作页面上检测到

但在这里,我的问题或想法是:

我有包括输入搜索/插入数据到数据库(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中

+0

设置使用上提交JS一个隐藏的输入值,使您的表格将被提交。如果没有设置,你会知道js没有运行。 – inarilo

+0

@inarilo我很抱歉,我无法得到它,你可以给一个完整的隐藏输入代码 –

+0

我的意思是''。设置点击提交时的值。 – inarilo

回答

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."; 
} 

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

+0

我不应该给任何值输入? –

+0

当点击提交按钮时,你会给出一个值。 – inarilo

+0

我做了一个更改,而不是将提交事件处理程序附加到按钮,我已将它附加到表单。 – inarilo

0

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

这: How can I prevent SQL injection in PHP?

如果需要检查,如果JS启用,你可以简单地按钮,您的形式(而不是type =“提交”,而只是一个按钮元素)。事件添加到该按钮:

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

且仅当JS作为按钮会用JS提交

+0

我很抱歉,但这只是一个比较验证的任何形式之间的JavaScript和PHP,并建议是为JavaScript。它没有提供我需要的任何解决方案。顺便说一句,感谢您分享这样一个有用的文章 –

+0

@AtifSheikh看看我编辑的额外信息。我不知道这是你在找什么,但希望它可以帮助 – NoOorZ24

+0

这将失败,如果有例如一个文本字段,用户按下输入。 – inarilo