本文實例講述了php實現跨域提交form表單的方法。分享給大家供大家參考,具體如下:
有時我們為了網站安全考慮,我們不允許直接跨域提交form表單數據,如果我們自己有這個需求呢?下面我們來介紹兩種跨域的方法解決直接跨域問題。
下面我們來看看兩種php跨域提交form的方法
一、通過php curl
function curlPost($url,$params) { $postData = ''; foreach($params as $k => $v) { $postData .= $k . '='.$v.'&'; } rtrim($postData, '&'); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch,CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_POST, count($postData)); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); $output=curl_exec($ch); curl_close($ch); return $output; } echo curlPost("http://test.com",array('name'=>"tank"));
以前很多人用curl來抓,郵箱的通訊錄,不過現在已經不可以了。哈哈。
二、利用jquery form,ajax提交
1. 下載jquery.form.js
2. js代碼
$('#testform').submit(function() { $(this).ajaxSubmit({ type: 'post', // 提交方式 get/post dataType:"json",//數據類型 url: 'your url', // 需要提交的 url success: function(data) { // data 保存提交後返回的數據,一般為 json 數據 // 此處可對 data 作相關處理 alert('提交成功!'); } $(this).resetForm(); // 提交後重置表單 }); return false; // 阻止表單自動提交事件 });
3. php代碼
header("Access-Control-Allow-Origin:*"); //跨域權限設置,允許所有 header("Access-Control-Allow-Origin:http://www.test.com"); //只允許test.com跨域提交數據
更多關於PHP相關內容感興趣的讀者可查看本站專題:《php程序設計安全教程》、《php安全過濾技巧總結》、《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《php操作office文檔技巧總結(包括word,excel,access,ppt)》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。