2011-11-19 63 views
0

请看下面的表格包含文本框和提交按钮:PHP表单验证重播问题

<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 ''; 
} 

的问题是,SUCESSFUL提交YouTube网址的发生在第二次提交表格而不是在第一次提交之后。这个想法是在填写表单之后提交正确的URL(也许是一些AJAX?)。任何帮助是极大的赞赏。

+0

没关系,我重读你的脚本,现在我看到它在做什么。 –

+0

我创建了这个文件,但它在验证后废除了$ _POST超级全局变量 – George

+1

,您可以将它们保存在'$ _SESSION'中。 –

回答

1

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

1

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

要做它看起来像你需要的,你必须做一个简单的JavaScript函数检查,并更新动作属性,当点击一个普通的按钮或<a>元素,如果你想(设置onclick=validate())。