簡體   English   中英

jQuery表單。 為什么要使用它?

[英]jQuery form. Why to use it?

我想問一個問題,為什么讓腳本打印表格比純HTML更好還是更好? 有什么區別? 當我輸入:

<form><input type="button" value="button" /></form>

要么

<script type="text/javascript">
     $form = $("<form></form>");
     $form.append('<input type="button" value="button" />');
     $('body').append($form);
</script>

如果用戶禁用瀏覽器中的javascript怎么辦?

為了安全起見,普通的html和php是否足夠,還是我應該使用javascript構建並驗證注冊表格?

我將從你的第一個問題開始。
最好以HTML格式制作表單,因為如果禁用javascript,則客戶將在使用應用程序時遇到問題。

Secons問題:
最好使用PHP驗證,因為javascript可能會被具有基本黑客技能的人所欺騙。 例如,禁用JavaScript后,您的驗證腳本將無法使用。

無需使用Javascript生成它,您要做的就是使其變得更加難以維護。 當您需要更改html格式時,處理Javascript字符串文字確實很煩人

我曾經完全跳過表單標簽,它們很丑陋,您只能執行一個操作,而不能嵌套它們。 取而代之的是,我在onclick處理程序中使用ajax發布,並在必要的成功處理程序中重新加載網頁:

var data = {formvar1:3, formvar2: "foo"};
$.post('/foo/bar.php', data, function(webpage)
{
  location.reload();
});

或者,如果ajax處理程序返回json:

var data = {formvar1:3, formvar2: "foo"};
$.post('/foo/bar.php', data, function(result)
{
  if (result.success)
  {
    alert("nice work!");
    location.reload();
  }
  else
  {
    alert(result.message);
  }
}, 'json');

哦,我的回答來得有點晚,所以您可以自由地忽略它。 我從不關心禁用JavaScript的人,因為我認為這是一個神話:)

(值得一提的是,這些東西需要包括jQuery)

因此,就像我說的那樣,這是防止漫游器向您發送垃圾郵件的一種方法。 它將停止大多數機器人。 實施此功能后,我再也不會遇到機器人問題了

的MySQL

CREATE TABLE IF NOT EXISTS `key_validation` (
  `key` varchar(64) NOT NULL,
  `date` varchar(32) NOT NULL,
  UNIQUE KEY `key` (`key`),
  KEY `date` (`date`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

PHP REST Web服務(getKey.php)

<?php
//file that creates a connection to the database
require "db_connect.php";


if($_GET['mode'] == "get_key") {
  $key = md5(microtime().rand());

  mysql_query("INSERT INTO key_validation (`key`,`date`) VALUES ('$key','".time()."')");

  echo json_encode($key);
  exit();
}

?>

的JavaScript

function insertKeyIntoForm(form) {
    $.getJSON('getKey.php?mode=get_key', function(data) {
        $('<input>').attr({
            type: 'hidden',
            id: 'verify_key',
            name: 'verify_key',
            value: data
        }).appendTo(form);
    });
}
insertKeyIntoForm('#myFormId');

PHP File進程注冊

//TODO
//permanently block ip addresses that requests this service more than x number of times a minute

function func_query_first_cell($query) {
    if ($p_result = mysql_query($query)) {
        $result = mysql_fetch_row($p_result);

    }
    return $result[0];
}

      //to make sure is no spammer
  if(func_query_first_cell("SELECT `key` FROM key_validation WHERE `key`='$verify_key'") == "")
    exit();

  else
    db_query("DELETE FROM key_validation WHERE `key`='$verify_key'");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM