2011-11-19 80 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())。