?php
我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、烏蘭察布ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的烏蘭察布網(wǎng)站制作公司
if(!empty($_POST["t1"]))
{
$array = $_POST["t1"];
$str =implode(',',$array);
echo $str."br"; //輸出 籃球,足球,乒乓球,排球 //$str 存入數(shù)據(jù)庫
$arr=explode(',',$str);//從數(shù)據(jù)庫取出數(shù)據(jù)時(shí)用。
print_r($arr);//輸出 Array ( [0] = 籃球 [1] = 足球 [2] = 乒乓球 [3] = 排球 ) //數(shù)據(jù)庫輸出用explode變回?cái)?shù)組array
$serialize=serialize($array);
echo "br".$serialize."br"; //輸出 a:4:{i:0;s:4:"籃球";i:1;s:4:"足球";i:2;s:6:"乒乓球";i:3;s:4:"排球";} 存入數(shù)據(jù)后也是這樣子。
$unserialize = unserialize($serialize);
print_r($unserialize); //輸出 Array ( [0] = 籃球 [1] = 足球 [2] = 乒乓球 [3] = 排球 ) 變回array
}
?
form method=post action="" name="form1"
input type="checkbox" name="t1[]" value="籃球"籃球br
input type="checkbox" name="t1[]" value="足球"足球br
input type="checkbox" name="t1[]" value="乒乓球"乒乓球br
input type="checkbox" name="t1[]" value="排球"排球br
input type="submit"
/form
題主你可以使用 md5 或者 sha1 進(jìn)行初步處理,但為了更加安全,請(qǐng)你同時(shí)加上兩個(gè) salt,一個(gè)靜態(tài) salt,一個(gè)動(dòng)態(tài)的 salt。以 md5 為例:\x0d\x0a假設(shè)通過 POST 傳來的密碼為 $_POST['password'],在存入 DB 前先進(jìn)行如下的操作:\x0d\x0a$password = hash('md5', $_POST['password'].$staticSalt.$dynamicSalt);\x0d\x0a\x0d\x0a為了保證動(dòng)態(tài) salt 的唯一性,可以這樣操作:\x0d\x0a$dynamicSalt = hash('md5', microtime());\x0d\x0a\x0d\x0a對(duì)于動(dòng)態(tài)的 salt 可以與生成的密碼一起保存在 DB 中,而靜態(tài) salt 則可以直接放在類文件中(例如定義為一個(gè)靜態(tài)屬性即可)。\x0d\x0a首先謝謝題主采納了我的答案,但是我之前的回答并不是最佳答案,之所以有此加密的想法源于自己所讀的源碼可能比較老,所以并沒使用上較新版本的加密方法,例如 bcrypt等。\x0d\x0a此外,第二點(diǎn),感謝評(píng)論中幾位前輩的提點(diǎn),已經(jīng)明白設(shè)置靜態(tài) salt 的意義并不大,生成一個(gè)較長的動(dòng)態(tài) salt 已然可以解決問題。\x0d\x0a\x0d\x0aLZ應(yīng)該采用加鹽HASH。\x0d\x0a如何“腌制”密碼呢?\x0d\x0a=_,=\x0d\x0a正確的格式應(yīng)該是,用戶password+動(dòng)態(tài)的salt\x0d\x0a動(dòng)態(tài)的salt不能像2L所說的,使用microtime,因?yàn)闀r(shí)間在某些情況下不夠隨機(jī),而且是可能被猜解的。\x0d\x0a這里推薦一個(gè)我用的加鹽HASH\x0d\x0a$salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM));\x0d\x0a$password=sha1($register_password.$salt);\x0d\x0a\x0d\x0a解釋:\x0d\x0a首先使用mcrypt,產(chǎn)生電腦隨機(jī)生成的,專門用戶加密的隨機(jī)數(shù)函數(shù)。\x0d\x0a第二步,把得到的隨機(jī)數(shù)通過base64加密,使其變長并且不利于猜解。\x0d\x0a第三步,把得出的鹽拼接到密碼的后面,再對(duì)其使用sha1進(jìn)行哈希\x0d\x0a再把password存入到用戶的數(shù)據(jù)庫。\x0d\x0aPS:為何不用靜態(tài)的salt?沒有必要,使用一個(gè)動(dòng)態(tài)隨機(jī)足夠長的鹽足矣。\x0d\x0a為何不用MD5?因?yàn)殚L度不夠。\x0d\x0a為何沒有使用多次HASH?因?yàn)檫@樣反而容易發(fā)生碰撞。\x0d\x0aHASH好之后怎么使用“腌制”好的密碼?\x0d\x0a用戶注冊-提交密碼-產(chǎn)生salt-腌制好的密碼存入數(shù)據(jù)庫-salt存入數(shù)據(jù)庫。\x0d\x0a用戶登錄-提交密碼-調(diào)用salt接到提交密碼的后面-進(jìn)行HASH-調(diào)用之前注冊腌制好的密碼-對(duì)比HASH值是否和這個(gè)密碼相同
本文實(shí)例講述了PHP實(shí)現(xiàn)的pdo連接數(shù)據(jù)庫并插入數(shù)據(jù)功能。分享給大家供大家參考,具體如下:
創(chuàng)建配置文件
pdo_config.php
?php
$db_Type
=
"mysql";//數(shù)據(jù)庫類型
$host
=
"localhost";//主機(jī)名
$dbName
=
"test";//數(shù)據(jù)庫名
$userName
=
"root";//用戶名
$password
=
"root";//密碼
$dsn
=
"{$db_Type}:host={$host};dbname={$dbName}";
?
pdo插入數(shù)據(jù)庫
pdo_insert.php
?php
header('Content-type:text/html;
charset=utf-8');
require
'pdo_config.php';
try{
$pdo
=
new
PDO
($dsn,$userName,$password);//創(chuàng)建一個(gè)連接對(duì)象
$pdo-exec('set
names
utf8');//設(shè)置編碼
$sql
=
"INSERT
student
(name,email)
VALUES
('李四','123@qq.com')";
$pdo-exec($sql);
}catch
(PDOException
$e){
die('操作失敗'.$e-getMessage());
}
//關(guān)閉連接
$pdo
=
null;
?
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基于pdo操作數(shù)據(jù)庫技巧總結(jié)》、《php+mysqli數(shù)據(jù)庫程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:關(guān)于php連接mssql:pdo
odbc
sql
serverPHP5中使用PDO連接數(shù)據(jù)庫的方法PHP中PDO連接數(shù)據(jù)庫中各種DNS設(shè)置方法小結(jié)ThinkPHP框架基于PDO方式連接數(shù)據(jù)庫操作示例PHP使用ODBC連接數(shù)據(jù)庫的方法tp5(thinkPHP5)框架連接數(shù)據(jù)庫的方法示例PHP7使用ODBC連接SQL
Server2008
R2數(shù)據(jù)庫示例【基于thinkPHP5.1框架】tp5(thinkPHP5)操作mongoDB數(shù)據(jù)庫的方法thinkPHP5實(shí)現(xiàn)數(shù)據(jù)庫添加內(nèi)容的方法tp5(thinkPHP5)框架數(shù)據(jù)庫Db增刪改查常見操作總結(jié)PHP利用pdo_odbc實(shí)現(xiàn)連接數(shù)據(jù)庫示例【基于ThinkPHP5.1搭建的項(xiàng)目】
?php
//?以?MySQL?為例:
mysql_connect('127.0.0.1',?'root',?'root',?3306);??//?連接數(shù)據(jù)庫
mysql_select_db('test');???????????????????????????//?選擇數(shù)據(jù)庫
mysql_query('set?names?utf8');?????????????????????//?執(zhí)行SQL
//?插入數(shù)據(jù)語句
$sql?=?"INSERT?INTO?table?(username,?password)?VALUES?('Jack@163.com',?'123456')";
$r?=?mysql_query($sql);
if?(mysql_affected_rows())?{
echo?'新增成功';
}?else?{
echo?mysql_error();
}
thinkphp3.2和phpexcel導(dǎo)入最基本用法
先整個(gè)最基礎(chǔ)的代碼,理解了這個(gè),后面的就非常簡單了
$file_name=?'./Upload/excel/123456.xls';
import("Org.Util.PHPExcel");
import("Org.Util.PHPExcel.IOFactory");
$objReader?=?\PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel?=?$objReader-load($file_name,$encode='utf-8');
$sheet?=?$objPHPExcel-getSheet(0);
$highestRow?=?$sheet-getHighestRow();?//?取得總行數(shù)
$highestColumn?=?$sheet-getHighestColumn();?//?取得總列數(shù)
$s?=?$objPHPExcel-getActiveSheet()-getCell("A2")-getValue();
表格內(nèi)容:
再給大家整個(gè)一點(diǎn)難度的,先說下思路。
1.上傳excel文件,得到它的地址
2.寫個(gè)處理exl的function,即可
實(shí)例代碼演示:
public?function?upload(){
$files?=?$_FILES['exl'];
//?exl格式,否則重新上傳
if($files['type']?!='application/vnd.ms-excel'){
$this-error('不是Excel文件,請(qǐng)重新上傳');????
}
//?上傳
$upload?=?new?\Think\Upload();//?實(shí)例化上傳類
$upload-maxSize???=?????3145728?;//?設(shè)置附件上傳大小
$upload-exts??????=?????array('xls');//?設(shè)置附件上傳類型
$upload-rootPath??=?????'./Upload/';?//?設(shè)置附件上傳根目錄
$upload-savePath??=?????'excel/';?//?設(shè)置附件上傳(子)目錄
//$upload-subName???=?????array('date',?'Ym');
$upload-subName???=?????'';
//?上傳文件??
$info???=???$upload-upload();
$file_name?=??$upload-rootPath.$info['exl']['savepath'].$info['exl']['savename'];
$exl?=?$this-import_exl($file_name);
//?去掉第exl表格中第一行
unset($exl[0]);
//?清理空數(shù)組
foreach($exl?as?$k=$v){
if(empty($v)){
unset($exl[$k]);
}????
};
//?重新排序
sort($exl);
$count?=?count($exl);
//?檢測表格導(dǎo)入成功后,是否有數(shù)據(jù)生成
if($count1){
$this-error('未檢測到有效數(shù)據(jù)');????
}
//?開始組合數(shù)據(jù)
foreach($exl?as?$k=$v){
$goods[$k]['goods_sn']?=?$v;
//?查詢數(shù)據(jù)庫
$where['goods_sn']?=?array('like','%'.$v.'%');
$res?=?M('goods')-where($where)-find();
$goods[$k]['goods_name']?=?$res['goods_name'];
$goods[$k]['goods_thumb']?=?$res['goods_thumb'];
if($res){
//?是否匹配成功??
$goods[$k]['is_match']????=?'1';
$f?+=?1;
}else{
//?匹配失敗
$goods[$k]['is_match']????=?'0';
$w?+=?1;
}
}
//?實(shí)例化數(shù)據(jù)
$this-assign('goods',$goods);
//print_r($f);
//?統(tǒng)計(jì)結(jié)果
$total['count']?=?$count;
$total['success']?=?$f;
$total['error']?=?$w;
$this-assign('total',$total);
//?刪除Excel文件
unlink($file_name);
$this-display('info');
}
/*?處理上傳exl數(shù)據(jù)
*?$file_name??文件路徑
*/
public?function?import_exl($file_name){
//$file_name=?'./Upload/excel/123456.xls';
import("Org.Util.PHPExcel");???//?這里不能漏掉
import("Org.Util.PHPExcel.IOFactory");
$objReader?=?\PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel?=?$objReader-load($file_name,$encode='utf-8');
$sheet?=?$objPHPExcel-getSheet(0);
$highestRow?=?$sheet-getHighestRow();?//?取得總行數(shù)
$highestColumn?=?$sheet-getHighestColumn();?//?取得總列數(shù)
for($i=1;$i$highestRow+1;$i++){
$data[]?=?$objPHPExcel-getActiveSheet()-getCell('A'.$i)-getValue();????
}
return?$data;????
}
有問題一定要及時(shí)弄清楚
PHP有自帶的高性能函數(shù) var_export
conn.php
?php
$dbconfig = array (
'host'='127.0.0.1',
'name'='root',
'password'='123456',
?
b.php
?php
// 讀取配置
include 'conn.php';
echo $dbconfig['host'];
// 修改配置
$dbconfig['host'] = 'xxx.xxx.xxx.xxx';
file_put_contents('conn.php', "?php\n$dbconfig = " . var_export($dbconfig) . "\n?");
// 再讀取配置
include 'conn.php';
echo $dbconfig['host'];
?
參考連接:
網(wǎng)站欄目:php存入數(shù)據(jù)實(shí)例,php存儲(chǔ)數(shù)據(jù)
URL鏈接:http://m.kartarina.com/article2/hddsic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站設(shè)計(jì)、定制網(wǎng)站、動(dòng)態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)