验证寄存器窗体客户端与javascript和服务器端与PHP

时间:2011-03-24 19:19:49

标签: php javascript validation client

我是PHP和Web的新手。我有一个任务,通过PHP验证javascript和服务器在客户端的注册表单。我不明白这意味着什么。

我制作了一个注册表单,并使用javascript验证了所有字段

<form name="register" onSubmit="return validateForm()"> 
//...code display form here...
<input type="submit" name="Submit" value="Submit">
</form>

<script language="javascript">
//...validate function here...
function validateForm() {
//...
}
</script>

我把上面的代码放在register.php中。现在我如何在PHP服务器端进行验证?我需要创建一个新的php文件并使用post方法将数据从这个register.php传递给新的?并且在验证之后我将数据发回到注册时出错,如果有的话

我知道如何在PHP中验证表单,但我不知道如何将经过javascript验证的客户端表单连接到php验证服务器表单。

此外,如果出现问题,需要重新加载页面并向用户显示错误,必须保留所有输入的数据。

这也是我不知道怎么做的。你能告诉我怎么做,或者一些非常简单的代码片段吗?非常感谢帮助。提前谢谢。

3 个答案:

答案 0 :(得分:0)

我相信你可以简单地输入数据。显然这只是伪代码:

validateForm() {

    if (typeof formData === 'duck')
        // do logic here
}

答案 1 :(得分:0)

我最初的想法是从表单中删除onSubmit方法并调用method =“POST”或method =“GET”。然后我会为每个表单字段使用onBlur,它将调用javascript函数来验证该特定字段。最后,设置action ='validate.php'或其他包含PHP验证代码的文件名。成功后重定向到您想去的地方。失败后,刷新页面并将$ _POST或$ _GET变量暂时设置为等于$ _SESSION变量。

答案 2 :(得分:0)

一体化文件形式处理程序看起来像这样:

myfile.php:

<?php

$errors = array()
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['name']) && !empty($_POST['name'])) {
       $name = $_POST['name'];
    } else {
       $errors[] = "Please provide your name";
    }
}
?>

<html>

<head>
     <title>Name Form</title>
</head>

<body>
<?php if (count($errors) > 0) { ?>
<ul>
   <li><?php echo implode("</li>\n\t", $errors); ?></li>
</ul>
<?php } else { ?>
<p>Pleased to meet you, <?php echo htmlspecialchars($name) ?></p>
<? } ?>

<form method="POST" action="">
<p>Please enter your name: <input type="text" size="20" name="name" value="<?php echo htmlspecialchars($name) ?>" /></p>

<input type="submit" value="Submit" />

</form>

当然,这违反了设计Web应用程序的各种“最佳实践”,但它确实展示了在服务器端呈现表单和进行数据验证的每个阶段。