2010-01-06 12 views
1

我在我的PHP頁面上有一個表單,它執行一些ajax驗證(這是工作)。這裏有一個片段(直播形式有比這更多的字段)爲什麼表單變量在這個php代碼中不可用?

<form name="form" onSubmit="return validate_form();" action="submitform.php" method="post"> 
     <table border="0" cellpadding="5" bgcolor="#000000"> 
     <tr> 
      <td width="175"> 
       <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Requested Vendor TAG:</b> </font></div> 
      </td> 
      <td> 
       <input type="text" name="VendorTAG" onblur="checktag();" maxlength="8"> <div id="vendtag"></div> 
      </td> 
     </tr> 
     <tr> 
      <td width="175"> 
       <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Contact Name: </b> </font></div> 
      </td> 
      <td> 
       <input type="text" name="ContactName" maxlength="50"> 
      </td> 
     </tr> 

當我點擊提交按鈕,它加載此代碼:

<php ? 
if(trim($VendorTAG) == '') 
    { 
     die('Vendor TAG cannot be blank'); 
    } 
    else if(trim($ContactName) == '') 
    { 
     die('Contact Name cannot be blank'); 
    } 
?> 

(再次,還有更多的同樣的,但這說明了這一點)

這一切都工作得很好,直到最後更新從我的主機有時在聖誕節,當形式停止工作克 - 但我真的很難找出原因..

服務器現在運行PHP 5.2.11 - 我在做一些根本上錯誤/愚蠢在這裏?

+0

我們需要一些'PHP'代碼..除非你問關於HTML/AJAX。 – 2010-01-06 04:49:24

+0

PHP代碼丟失。 PHP升級?它從什麼升級而來?你之前是否依賴register_globals? – fennec 2010-01-06 04:49:58

+0

是的,抱歉 - 代碼在編輯頁面上,但未正確格式化顯示。應該在那裏... – TheoJones 2010-01-06 04:50:12

回答

5

在PHP 5.2中,他們擺脫了register_globals。這是一個安全噩夢,不應該使用。

改爲使用$_POST訪問表單元素。

你可以找到更多關於register_globals這裏:http://us.php.net/manual/en/security.globals.php

+0

認爲它可能是這樣的東西,但無法找到正確的谷歌foo解鎖魔法;) – TheoJones 2010-01-06 04:53:51

+0

這個答案把我推到了6,666聲望.... muhuhahahaha! – 2010-01-06 04:56:57

2

POST變量都是這樣訪問:$_POST["varname"],而不是像這樣:$varname。或者,您也可以通過$_REQUEST訪問它們,但最終取決於您。

相關問題