2011-06-07 76 views
1

我想写我的第一个PHP脚本(希望)。我想将用户输入从HTML页面中的表单发送到PHP脚本并在脚本中对其进行验证。那么,如果输入数据有任何问题,请返回第一页并突出显示错误的字段。否则转到另一个页面(类似成功)。如何使用POST不使用表单将变量从PHP脚本发送到另一个脚本?

如何在不使用表单的情况下将第二个脚本的反馈发送到第一页?例如,

+2

尝试使用[sessions](http://www.php.net/manual/en/book.session.php)。 – 2011-06-07 19:01:08

+0

你的意思是,如果输入不正确,你将如何重定向到输入表单? – 2011-06-07 19:01:39

+0

您可以在您的验证脚本中将错误变量(不是整个错误消息,只是一些代码)添加到原始URL并发送用户,然后使用GET获取错误消息。或者你可以在验证页面中将错误添加到json中,如果它不是空的,则将json发送到html页面。 – 2011-06-07 19:02:36

回答

2

只是让你表单POST给自己,然后在你的PHP检查值,如果它们是有效的,不会显示你的形式和做你的提交代码。如果它们无效,则显示带有值和错误显示的表单。

+0

...然后,只是评估验证脚本从另一个文件?这是个好主意!谢谢。 – 2011-06-07 19:11:23

2

重新加载第一页并在会话中发送反馈。如果session ['errors']存在,则回显它们。注意你必须在你的html页面中包含一些php标签。

3

总之,你有这样的事情:

<?php 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $errors = array(); 

    $name = $_POST['name']; 
    if ($name !== 'Fred') { 
     $errors[] = 'Please enter "Fred"'; 
    } 

    ... validate more fields ... 

    if (count($errors) == 0) { 
    ... form is ok ... 
    header('Location: everything_is_ok.php'); 
    exit(); 
    } 
} 

?> 

<form action="<?php echo $_SERVER['SCRIPT_NAME'] ?>" method="POST"> 
Enter 'Fred': <input type="text" name="name" value="<?php echo htmlspecialchars($name) ?>" /><br /> 
<input type="submit" /> 
</form> 

基本上是:有表单页面提交回发到自身。如果一切正常,请将用户重定向到另一个页面。否则,重新显示表单。

+0

与James P. Wright的答案相同......谢谢。 – 2011-06-07 19:12:48

+0

是的,但他实际上花时间显示代码。 :P – 2011-06-07 19:37:40

相关问题