❶ php 同時提交多條記錄
多個提交和一個提交的道理是相同的,只是一些細節上要注意。
提交一個你懂了,我還是提一下,表單是:
<form>
<input type=text name=name>
<input type=text name=sex>
<input type=text name=age>
<input type=text name=address>
</form>
PHP存資料庫的語句是:
$sql="insert into tab(...) values ($_POST[...])";//省略欄位和值
那麼多個提交的方法一,表單是:
<form>
<input type=text name=name1><input type=text name=sex1><input type=text name=age1><input type=text name=address1>
<input type=text name=name2><input type=text name=sex2><input type=text name=age2><input type=text name=address2>
</form>
PHP存資料庫語句是:
$sql="insert into tab(...) values ($_POST[...1])";//省略欄位和值
mysql_query($sql);
$sql="insert into tab(...) values ($_POST[...2])";//省略欄位和值
mysql_query($sql);
上面方法一寫的例子是兩條,多條的方法相同,技巧就是輸出表單使用JS的循環,存檔的PHP代碼也可以循環,並且能夠判斷為空的就不提交,比如表單20條,只填了5條,就只存5條到資料庫。
方法二是使用數組,表單:
<form>
<input type=text name=name><input type=text name=sex><input type=text name=age><input type=text name=address>
<input type=text name=name><input type=text name=sex><input type=text name=age><input type=text name=address>
<input type=text name=name><input type=text name=sex><input type=text name=age><input type=text name=address>
</form>
PHP代碼是:
for ($i=0;$i<count($_POST["name"]);$i++)
if ($_POST["name"][$i]!='')
{
$sql="insert into tab(...) values ($_POST[...][$i])";//省略欄位和值
mysql_query($sql);
}
這樣表單可以寫任意多行,PHP裡面是數組,能夠自動獲取有多少數據。
❷ 奼備竴孌祊hp涓婁紶浠繪剰鏂囦歡鐨勪唬鐮
PHP 鏂囦歡涓婁紶 鏄閫氳繃 PHP錛屽彲浠ユ妸鏂囦歡涓婁紶鍒版湇鍔″櫒銆
1棣栧厛鍒涘緩涓涓鏂囦歡涓婁紶琛ㄥ崟
鍏佽哥敤鎴蜂粠琛ㄥ崟涓婁紶鏂囦歡鏄闈炲父鏈夌敤鐨勩
璇風湅涓嬮潰榪欎釜渚涗笂浼犳枃浠剁殑 HTML 琛ㄥ崟錛
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
璇風暀鎰忓備笅鏈夊叧姝よ〃鍗曠殑淇℃伅錛
<form> 鏍囩劇殑 enctype 灞炴ц勫畾浜嗗湪鎻愪氦琛ㄥ崟鏃惰佷嬌鐢ㄥ摢縐嶅唴瀹圭被鍨嬨傚湪琛ㄥ崟闇瑕佷簩榪涘埗鏁版嵁鏃訛紝姣斿傛枃浠剁僵姣曞厗鍐呭癸紝璇蜂嬌鐢 "multipart/form-data"銆
<input> 鏍囩劇殑 type="file" 灞炴ц勫畾浜嗗簲璇ユ妸杈撳叆浣滀負鏂囦歡鏉ュ勭悊銆備婦渚嬫潵璇達紝褰撳湪嫻忚堝櫒涓棰勮堟椂錛屼細鐪嬪埌杈撳叆妗嗘梺杈規湁涓涓嫻忚堟寜閽銆
娉ㄩ噴錛氬厑璁哥敤鎴蜂笂浼犳枃浠舵槸涓涓宸ㄥぇ鐨勫畨鍏ㄩ庨櫓銆傝蜂粎浠呭厑璁稿彲淇$殑鐢ㄦ埛鎵ц屾枃浠朵笂浼犳搷浣溿
2錛氬壋寤轟笂浼犺剼鏈
"upload_file.php" 鏂囦歡鍚鏈変緵涓婁紶鏂囦歡鐨勪唬鐮侊細
<?php
if ($_FILES["file"]["error"鏁版棶] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>
閫氳繃浣跨敤 PHP 鐨勫叏灞鏁扮粍 $_FILES錛屼綘鍙浠ヤ粠瀹㈡埛璁$畻鏈哄悜榪滅▼鏈嶅姟鍣ㄤ笂浼犳枃浠躲
絎涓涓鍙傛暟鏄琛ㄥ崟鐨 input name錛岀浜屼釜涓嬫爣鍙浠ユ槸 "name", "type", "鐗╃焥ize", "tmp_name" 鎴 "error"銆傚氨鍍忚繖鏍鳳細
$_FILES["file"]["name"] - 琚涓婁紶鏂囦歡鐨勫悕縐
$_FILES["file"]["type"] - 琚涓婁紶鏂囦歡鐨勭被鍨
$_FILES["file"]["size"] - 琚涓婁紶鏂囦歡鐨勫ぇ灝忥紝浠ュ瓧鑺傝
$_FILES["file"]["tmp_name"] - 瀛樺偍鍦ㄦ湇鍔″櫒鐨勬枃浠剁殑涓存椂鍓鏈鐨勫悕縐
$_FILES["file"]["error"] - 鐢辨枃浠朵笂浼犲艱嚧鐨勯敊璇浠g爜
榪欐槸涓縐嶉潪甯哥畝鍗曟枃浠朵笂浼犳柟寮忋備笉闇瑕佽冭檻鏂囦歡鐨勪笂浼犳牸寮忋
❸ 求實現php文件上傳代碼
PHP上傳文件非常簡單,你需要一個上傳的HTML文件(<FORM>),一個保存文件的PHP文件(保存),一個查詢上傳文件清單的工具。
真正實現完整功能的上傳和管理需要使用資料庫,我的網站俱樂部裡面上傳文件一開放很快就傳了幾萬個文件。
最簡單的方法不用資料庫,可以用一個PHP文件實現,這個文件列出指定目錄下的所有文件,然後提供一個上傳的FORM,最後檢測是否提交了FORM數據,是就保存文件到指定位置。
PHP手冊第39章有關於處理這些問題的說明,我復制粘貼如下:
上一頁V.特點下一頁
--------------------------------------------------------------------------------
第39章文件上傳處理
目錄
POST方法上傳
錯誤信息說明
常見缺陷
上傳多個文件
對PUT方法的支持
POST方法上傳
本特性可以使用戶上傳文本和二進制文件。用PHP的認證和文件操作函數,可以完全控制允許哪些人上傳以及文件上傳後怎樣處理。
PHP能夠接受任何來自符合RFC-1867標準的瀏覽器(包括NetscapeNavigator3及更高版本,打了補丁的MicrosoftInternetExplorer3或者更高版本)上傳的文件。
相關的設置:請參閱php.ini的file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size以及max_input_time設置選項。
請注意PHP也支持PUT方法的文件上傳,NetscapeComposer和W3C的Amaya客戶端使用這種方法。請參閱對PUT方法的支持以獲取更多信息。
例39.1.文件上傳表單
可以如下建立一個特殊的表單來支持文件上傳:<!--Thedataencodingtype,enctype,MUSTbespecifiedasbelow-->
<formenctype="multipart/form-data"action="__URL__"method="POST">
<!--MAX_FILE_-->
<inputtype="hidden"name="MAX_FILE_SIZE"value="30000"/>
<!--$_FILESarray-->
Sendthisfile:<inputname="userfile"type="file"/>
<inputtype="submit"value="SendFile"/>
</form>
以上範例中的__URL__應該被換掉,指向一個真實的PHP文件。
MAX_FILE_SIZE隱藏欄位(單位為位元組)必須放在文件輸入欄位之前,其值為接收文件的最大尺寸。這是對瀏覽器的一個建議,PHP也會檢查此項。在瀏覽器端可以簡單繞過此設置,因此不要指望用此特性來阻擋大文件。實際上,PHP設置中的上傳文件最大值是不會失效的。但是最好還是在表單中加上此項目,因為它可以避免用戶在花時間等待上傳大文件之後才發現文件過大上傳失敗的麻煩。
注意:要確保文件上傳表單的屬性是enctype="multipart/form-data",否則文件上傳不了。
全局變數$_FILES自PHP4.1.0起存在(在更早的版本中用$HTTP_POST_FILES替代)。此數組包含有所有上傳的文件信息。
以上範例中$_FILES數組的內容如下所示。我們假設文件上傳欄位的名稱如上例所示,為userfile。名稱可隨意命名。
$_FILES['userfile']['name']
客戶端機器文件的原名稱。
$_FILES['userfile']['type']
文件的MIME類型,如果瀏覽器提供此信息的話。一個例子是「image/gif」。不過此MIME類型在PHP端並不檢查,因此不要想當然認為有這個值。
$_FILES['userfile']['size']
已上傳文件的大小,單位為位元組。
$_FILES['userfile']['tmp_name']
文件被上傳後在服務端儲存的臨時文件名。
$_FILES['userfile']['error']
和該文件上傳相關的錯誤代碼。此項目是在PHP4.2.0版本中增加的。
文件被上傳後,默認地會被儲存到服務端的默認臨時目錄中,除非php.ini中的upload_tmp_dir設置為其它的路徑。服務端的默認臨時目錄可以通過更改PHP運行環境的環境變數TMPDIR來重新設置,但是在PHP腳本內部通過運行putenv()函數來設置是不起作用的。該環境變數也可以用來確認其它的操作也是在上傳的文件上進行的。
例39.2.使文件上傳生效
請查閱函數is_uploaded_file()和move_uploaded_file()以獲取進一步的信息。以下範例處理由表單提供的文件上傳。
<?php
//InPHPversionsearlierthan4.1.0,$HTTP_POST_FILESshouldbeusedinstead
//of$_FILES.
$uploaddir='/var/www/uploads/';
$uploadfile=$uploaddir.basename($_FILES['userfile']['name']);
echo'<pre>';
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){
echo"Fileisvalid,andwassuccessfullyuploaded.\n";
}else{
echo"Possiblefileuploadattack!\n";
}
echo'Hereissomemoredebugginginfo:';
print_r($_FILES);
print"</pre>";
?>
接受上傳文件的PHP腳本為了決定接下來要對該文件進行哪些操作,應該實現任何邏輯上必要的檢查。例如可以用$_FILES['userfile']['size']變數來排除過大或過小的文件,也可以通過$_FILES['userfile']['type']變數來排除文件類型和某種標准不相符合的文件,但只把這個當作一系列檢查中的第一步,因為此值完全由客戶端控制而在PHP端並不檢查。自PHP4.2.0起,還可以通過$_FILES['userfile']['error']變數來根據不同的錯誤代碼來計劃下一步如何處理。不管怎樣,要麼將該文件從臨時目錄中刪除,要麼將其移動到其它的地方。
如果表單中沒有選擇上傳的文件,則PHP變數$_FILES['userfile']['size']的值將為0,$_FILES['userfile']['tmp_name']將為空。
如果該文件沒有被移動到其它地方也沒有被改名,則該文件將在表單請求結束時被刪除。
例39.3.上傳一組文件
PHP的HTML數組特性甚至支持文件類型。
<formaction=""method="post"enctype="multipart/form-data">
<p>Pictures:
<inputtype="file"name="pictures[]"/>
<inputtype="file"name="pictures[]"/>
<inputtype="file"name="pictures[]"/>
<inputtype="submit"value="Send"/>
</p>
</form>
<?php
foreach($_FILES["pictures"]["error"]as$key=>$error){
if($error==UPLOAD_ERR_OK){
$tmp_name=$_FILES["pictures"]["tmp_name"][$key];
$name=$_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name,"data/$name");
}
}
?>
--------------------------------------------------------------------------------
上一頁上一級下一頁
38.處理XForms起始頁錯誤信息說明
❹ php表單怎樣提交到當前頁面,並用$_POST獲取其值
<?php
$username=$_POST['username'];
?>
<form action="" ><input type="text" name="username"><input type="submit" name="submit" value="提交"></form>
form的action屬性留空的話就直接提交到當前頁面了 後台直接$_POST獲取前台傳過來的表單域啊
❺ php怎麼實現form提交表單並跳轉到action頁面
<formaction="a.php"method="post"name="theForm"onsubmit="returnvalidate();">
<tablewidth="90%"id="general-table">
<tr>
<tdclass="narrow-label">{$lang.title}</td>
<td><inputtype="text"name="title"size="40"maxlength="60"value="{$article.title|escape}"/>{$lang.require_field}</td>
</tr>
<inputtype="submit"value="提交"class="button"/>
</form>
上述代碼就可以做到執行了,既可以放在html裡面做提交,也可以直接放在PHP裡面做提交,當action沒有指向文件的時候,默認是提交到本頁面。