冗余一份專做查詢。
但,一般情況下使用sphinx或者es,博客的話sphinx吧
web-msg-sender是什么?
你看一下根目錄下的.gitignore
文件里面是不是把那些你想上傳的文件和目錄給忽略了
你先去看看oauth2.0把,給app使用的話,如果你的app必須登錄,就直接使用password模式,如果還有部分公開api,還需要使用ClientCredential模式或者你自己加密公開接口
有可能是 fpm 與 cli 用的不是同一個配置
php中變量是分配在執(zhí)行棧的尾部,執(zhí)行棧zend_execute_data,實際是一塊堆內(nèi)存,是個變長結(jié)構(gòu)體,由zval來存儲變量的值,變量名是存儲在symbol_table中,在unset時,并沒有進行出棧操作,而是將變量名稱從全局符號表(函數(shù)中則為函數(shù)執(zhí)行棧的符號表)中刪除,并且將存儲其值的zval置為IS_UNDEF,函數(shù)中的臨時變量的內(nèi)存會在函數(shù)執(zhí)行結(jié)束時進行釋放,全局變量則在整個程序執(zhí)行結(jié)束后進行釋放
說下個人目前在用的分布
Controller:接受Web請求,分發(fā)調(diào)用不同的邏輯或服務完成一項事情,返回數(shù)據(jù)
service:做些服務Api接口相關(guān)的代碼
dao:和數(shù)據(jù)庫打交道(對表進行增刪改查)
logic:自己的業(yè)務邏輯相關(guān)
現(xiàn)在有個PC注冊賬號的功能
1:初始階段,controller收到請求,直接在controler里面寫數(shù)據(jù)庫連接,進行增刪改查,沒毛病,可以運行。
2:慢慢發(fā)展,功能多了,Controller多起來了,contoller到處都是sql和數(shù)據(jù)庫打交道的代碼,雖然不影響運行,但是有時候發(fā)現(xiàn),如果我要修改一個數(shù)據(jù)表的字段或其他東西,得到好幾個Controller里面去找相同的一個代碼并修改,太麻煩了,干脆都放到一個里面,全部對增刪改查從同一個地方多好,這時候出現(xiàn)了dao層。
3:繼續(xù)發(fā)展,進軍移動端,有了手機注冊的功能,簡單,寫唄,寫著寫著發(fā)現(xiàn),我去,怎么和PC注冊功能這么像?都要校驗用戶信息->判斷數(shù)據(jù)庫有無重復->插入數(shù)據(jù)庫(重復的業(yè)務功能在幾個控制器都要被重復使用),有了第二步的經(jīng)驗,把這些相同的業(yè)務操作抽離放到一起唄,出現(xiàn)了logic層(logic層負責做些處理并調(diào)用dao層完成數(shù)據(jù)的入庫等和數(shù)據(jù)庫打交道的事情),RegisterLogic,規(guī)定所有的注冊功能都走這一個邏輯了,維護更加方便了,以后即使增加一百種注冊方式,只要 new RegisterLogic()->register();就行了。
4:繼續(xù)發(fā)展下去,公司有聲有色的,老板說,網(wǎng)站太無聊了,加點天氣預報,隨機推送笑話的附屬功能吧,這行功能不屬于自己的系統(tǒng)的業(yè)務邏輯,更具第二步和第三步的經(jīng)驗,應該單獨放一個地方,沒準以后其他的地方會用到,這時候service層就出現(xiàn)了。
$item[$valueParam]是int,$val是string,而你使用2個等於符號( == )會忽略類型檢查,同時進行類型轉(zhuǎn)換,string會轉(zhuǎn)換成數(shù)值'0' ,所以就返回true。
使用 === 或 !== 則不會進行類型轉(zhuǎn)換。
從log中 , 你用的可能是predis擴展 .
剩余我只能靠猜測 , 根據(jù)log看 , 應該是你的php在連接redis的時候出問題了 .
所以 , 我大概提幾個點 , 你檢查下 , 或許有幫助 .
檢查redis服務狀態(tài) , 是否啟動
檢查redis的host地址 和 監(jiān)聽的port , 是不是如圖中所示
最后 , 如果1和2都沒問題 , 檢查一下防火墻配置 , 除此之外 , 如果你用的云服務器 , 檢查一下云服務廠商的Web控制臺提供的安全策略組中該port的開放權(quán)限 .
問題1,沒有保存密碼,驗證密碼的時候又重新生成了新密碼,所以永遠都是密碼錯誤
問題2,$data='{password:"' . $password. '"}';
和 echo json_encode($data);
重復,json_encode
就是生成json的
問題3,ajax使用dataType: "json"
時,jquery會自動解析json字符串,不需要再一次data = eval("("+msg+")");
問題4,獲取密碼的點擊事件中,還沒有輸入密碼呢,干嘛還要提交密碼 data: {password: password}, //提交到password.php的數(shù)據(jù)
<?php
session_start();
function getRandPass()
{
$chars = ("0123456789abcdefghijklmnopqrstuvwxyz");
$min = 6;//最小字數(shù)
$max = 9;//最大字數(shù)
$len = mt_rand($min,$max);//隨機長度
$password = '';
$a_len = strlen($chars);
for($i = 0;$i < $len;$i++)
{
$password .= $chars[mt_rand(0,$a_len - 1)];//隨機取出一個字符
}
return $password;
}
if(isset($_POST['password']))
{
if($_SESSION['password'] == $_POST['password'])//驗證密碼
{
$data['code'] = 1;
}
else
{
$data['code'] = 0;
}
}
else
{
$password = getRandPass();
$_SESSION['password'] = $password;//保存密碼,以便下次驗證密碼
$data['password'] = $password;
}
echo json_encode($data);//輸出json數(shù)據(jù)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
<body>
<input type="text" id="password">
<button id="sub">
獲取密碼
</button>
<button id="gopass">
驗證密碼
</button>
<input type="text" id="text">
<span id="texts">
</span><!-- 用以顯示返回來的數(shù)據(jù),只刷新這部分地方 -->
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$('#gopass').click(function()
{
var password = $('#password').val();
if(password == '')
{
$('#texts').html('密碼不能為空!');
return false;
}
$.ajax(
{
url: 'password.php',
type: 'POST',
dataType: 'json',
data:
{
password: password
},
beforeSend: function()
{
$('#texts').html('驗證中!');//用于調(diào)試驗證過程
},
success: function(data)
{
if(data.code == 1)
{
//驗證密碼
$('#texts').html('驗證成功' );
}else
{
$('#texts').html('密碼錯誤!');
}
}
});
});
$('#sub').click(function()
{
var password = $('#password').val();
$.ajax(
{
type: "get",
url: "password.php",//提交到password.php的數(shù)據(jù)
dataType: "json", //回調(diào)函數(shù)接收數(shù)據(jù)的數(shù)據(jù)格式
success: function(data)
{
$('#text').empty(); //清空Text里面的所有內(nèi)容
$('#text').val(data.password); //密碼在#text中輸出
$('#texts').html('獲取成功!');
console.log(data); //控制臺輸出調(diào)試結(jié)果
},
error:function(msg)
{
console.log(msg);//控制臺輸出錯誤調(diào)試結(jié)果
}
});
});
</script>
</body>
</html>
單鏈表P 知道P的位置,你就把P位置中的value取出來,那里面有下一個節(jié)點的指針 p+1 嘛,然后你把這個節(jié)點刪掉, 然后取P+1的value嘛,一個一個刪就好咯
沒有??吹亩嗔?,望名猜意。
將變量用 json_encode后輸出
類似 var days=<?=json_encode($days)?>;
怎么傳的呢,如果你構(gòu)造出了formdata,不管有沒有指定,默認就是multipart/form-data
1個用戶表:User(id, name, ...)
1個地區(qū)表:Area(id, pid, name, ...) # 市的pid為null
1個權(quán)限表:Auth(uid, aid, ...)
有兩個地方要修改.
前端頁面
把上傳控件修改成文本框. 類似這樣
<input type="file" name="file" />
<!-- 以上修改成以下 -->
<span>XLS 文件名(不帶擴展名)</span>
<input type="text" name="xlsfilename" />
這樣你可以在網(wǎng)頁上輸入待導入的文件名, 而不是上傳本地文件了.
后臺代碼(你貼出來的 php 代碼)
把這部分
$file = upload_file($_FILES['file'], 'excel');
if(is_error($file)) {
imessage(error(-1, $file['message']), '', 'ajax');
}
修改成類似這樣的
$base_name = $_POST["xlsfilename"];
// 必須檢查文件名, 防止惡意輸入
// 合理的文件名只含 a-z, A-Z, 0-9, 及 "-" 和 "_", 最多 30 個字符.
if (!preg_match("/^[a-zA-Z0-9_-]{1,30}$/g", $base_name)) {
die("invalid file name");
return;
}
// 到 "/wwwroot/" 目錄下找指定的 xls 文件
$file = fopen("/wwwroot/" . base_name . ".xls","r");
千辛萬苦這個詞用的好!
淚~
可以嘗試修改charset試試
前端也可以用replace對字符串替換
$_POST["key"]
的寫法是錯誤的
正確的是isset($_POST["key"]) ? htmlspecialchars($_POST["key"]) : null;
其他的,不想說什么了
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務機構(gòu),發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。