2017-06-05 59 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