如何防止基于PHP值提交表单?

时间:2011-08-10 19:03:23

标签: php ajax

我正在使用Ajax来测试注册表单上的用户名是否太短。

现在它只是这样做:

if (str.length<6)
  { 
  document.getElementById("txtHint").innerHTML="Too short";
  return;
  } 

如何在上面添加不允许用户提交的操作?

<form action="/insert/insert-user.php" method="post">
    <input type="text" name="user"  onkeyup="showHint(this.value)"/>

3 个答案:

答案 0 :(得分:1)

在CheckUserName函数中,添加您的ajax代码并返回true或false。如果它是假的,它将不会提交。

  <form action="/insert/insert-user.php" onsubmit="CheckUserName()" method="post">

答案 1 :(得分:0)

给你的错误div一个类让我们说“错误”,并在提交表单时调用另一个函数,在其中你检查if错误类是否有JQuery的文本。如果该类具有文本,则返回false并且您的表单将不会被提交

答案 2 :(得分:0)

您可以尝试在表单中添加表单名称和onsubmit事件。

<form name="formName"action="/insert/insert-user.php" method="post" onsubmit="validate()">

function validate() {
    if (document.formName.user.value.length < 7) {
        // Display your message in your division 
         return false;
    }
}

您还必须重复检查PHP,因为用户可能已禁用Javascript并且为了安全措施:

if ($_POST['your_submit_button']) {
    if (strlen($_POST['user']) < 7) {
        $submit = false;
        die ("<div style='color: red;'>Too short</div>"); 
    }
}