PHP表单验证重播问题

时间:2011-11-19 05:25:18

标签: php forms validation post

考虑以下包含textfield和submit按钮的表单:

<form method="POST" action="<?php isValid();?>" class="urln">
    <input name="url" type="text" autocomplete="off" class="urlField"/>
    <input name="ybutton" type="submit" value="Add!" class="logButon" action="<?php isValid();?>"/>
</form>

isValid()的定义如下:

function isValid()
{
    $string = $_POST['url'];
    $youtubeURL = parse_url($string);
    if($youtubeURL["host"]=="www.youtube.com")
        echo 'videoAdmin.php';
    else
        echo '';
}

问题是,在第二次提交表单时提交了youtube网址的成功提交,而不是在第一次提交之后。想法是在填写表格后提交正确的URL(可能是一些AJAX?)。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您可以轻松地将POST数据保存在$_SESSION超全局。

答案 1 :(得分:1)

据我所知,action属性旨在包含一个用于发送HTTP请求的URL。您设置的东西在第二次提交时起作用,因为当您第一次加载它时,它没有要检查的POST,因此它打印为空白。第二次,回应xxx.php的事情。 PHP由服务器读取,除非您重新加载页面更改参数(在帖子中,在会话中或其他内容中),否则它不会执行任何操作。

要执行您需要的操作,您必须在普通的javascript函数中进行检查并在单击公共按钮或<a>元素时更新操作属性(如果需要)(设置{{1 })。