從log中 , 你用的可能是predis擴(kuò)展 .
剩余我只能靠猜測(cè) , 根據(jù)log看 , 應(yīng)該是你的php在連接redis的時(shí)候出問題了 .
所以 , 我大概提幾個(gè)點(diǎn) , 你檢查下 , 或許有幫助 .
檢查redis服務(wù)狀態(tài) , 是否啟動(dòng)
檢查redis的host地址 和 監(jiān)聽的port , 是不是如圖中所示
最后 , 如果1和2都沒問題 , 檢查一下防火墻配置 , 除此之外 , 如果你用的云服務(wù)器 , 檢查一下云服務(wù)廠商的Web控制臺(tái)提供的安全策略組中該port的開放權(quán)限 .
如下為生成器的 next() 函數(shù)的描述
開始生成器函數(shù)的執(zhí)行或者在最后一次執(zhí)行的yield表達(dá)式處恢復(fù)執(zhí)行。當(dāng)生成器函數(shù)使用next()方法恢復(fù)執(zhí)行時(shí),當(dāng)前的yield表達(dá)式始終None。然后執(zhí)行繼續(xù)行進(jìn)到下一個(gè)yield表達(dá)式,在那里生成器被再次掛起并返回expression_list的值給next()的調(diào)用者。
即你在第一次 yield 5 后,,這個(gè)時(shí)候 m= 這個(gè)賦值操作根本沒有執(zhí)行,然后,第二次使用 next 時(shí), 當(dāng)前的 yield 表達(dá)式為 None,即 m=None
問題1,沒有保存密碼,驗(yàn)證密碼的時(shí)候又重新生成了新密碼,所以永遠(yuǎn)都是密碼錯(cuò)誤
問題2,$data='{password:"' . $password. '"}'; 和 echo json_encode($data);重復(fù),json_encode就是生成json的
問題3,ajax使用dataType: "json"時(shí),jquery會(huì)自動(dòng)解析json字符串,不需要再一次data = eval("("+msg+")");
問題4,獲取密碼的點(diǎn)擊事件中,還沒有輸入密碼呢,干嘛還要提交密碼 data: {password: password}, //提交到password.php的數(shù)據(jù)
<?php
session_start();
function getRandPass()
{
$chars = ("0123456789abcdefghijklmnopqrstuvwxyz");
$min = 6;//最小字?jǐn)?shù)
$max = 9;//最大字?jǐn)?shù)
$len = mt_rand($min,$max);//隨機(jī)長(zhǎng)度
$password = '';
$a_len = strlen($chars);
for($i = 0;$i < $len;$i++)
{
$password .= $chars[mt_rand(0,$a_len - 1)];//隨機(jī)取出一個(gè)字符
}
return $password;
}
if(isset($_POST['password']))
{
if($_SESSION['password'] == $_POST['password'])//驗(yàn)證密碼
{
$data['code'] = 1;
}
else
{
$data['code'] = 0;
}
}
else
{
$password = getRandPass();
$_SESSION['password'] = $password;//保存密碼,以便下次驗(yàn)證密碼
$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">
驗(yàn)證密碼
</button>
<input type="text" id="text">
<span id="texts">
</span><!-- 用以顯示返回來(lái)的數(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('驗(yàn)證中!');//用于調(diào)試驗(yàn)證過程
},
success: function(data)
{
if(data.code == 1)
{
//驗(yàn)證密碼
$('#texts').html('驗(yàn)證成功' );
}else
{
$('#texts').html('密碼錯(cuò)誤!');
}
}
});
});
$('#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); //控制臺(tái)輸出調(diào)試結(jié)果
},
error:function(msg)
{
console.log(msg);//控制臺(tái)輸出錯(cuò)誤調(diào)試結(jié)果
}
});
});
</script>
</body>
</html>自己解決了,之前實(shí)在anaconda3下新建虛擬環(huán)境python2.7,所以會(huì)報(bào)錯(cuò)
下載anconda2在安裝graphlab環(huán)境就好了,希望對(duì)需要的人有幫助。
可以給 dialog 綁定 ref:
<Dialog ref={(dialog) => { this.dialogDOM = dialog; }}>
然后通過 this.dialogDOM 調(diào)用 DOM 方法
已經(jīng)自己寫了一個(gè)解析方法
/**
* 解析字符串為 Date 對(duì)象
* @param dateStr 日期字符串
* @param fmt 日期字符串的格式
* 目前僅支持使用 y(年),M(月),d(日),h(時(shí)),m(分),s(秒),S(毫秒)
*/
Date.of = function (dateStr, fmt) {
if (!dateStr) {
throw new Error('傳入的日期字符串不能為空!');
}
if (!fmt) {
throw new Error('傳入的日期字符串的自定義格式不能為空!');
}
/**
* 日期格式化對(duì)象
* @param name 日期格式的名稱
* @param format 日期的格式值
* @param value 格式化得到的值
* @constructor
*/
function DateFormat(name, format, value, index) {
this.name = name;
this.format = format;
this.value = value;
this.index = index;
}
//日期時(shí)間的正則表達(dá)式
const dateFormats = {
year: 'y{1,4}',
month: 'M{1,2}',
day: 'd{1,2}',
hour: 'h{1,2}',
minute: 'm{1,2}',
second: 's{1,2}',
milliSecond: 'S{1,3}'
};
//如果沒有格式化某項(xiàng)的話則設(shè)置為默認(rèn)時(shí)間
const defaultDateValues = {
year: '2001',
month: '01',
day: '01',
hour: '00',
minute: '00',
second: '00',
milliSecond: '000'
};
//保存對(duì)傳入的日期字符串進(jìn)行格式化的全部信息數(shù)組列表
const dateUnits = [];
for (const fmtName in dateFormats) {
const regExp = new RegExp(dateFormats[fmtName]);
if (regExp.test(fmt)) {
const matchStr = regExp.exec(fmt)[0];
const regexStr = String.fill('`', matchStr.length);
const index = fmt.indexOf(matchStr);
fmt = fmt.replaceAll(matchStr, regexStr);
dateUnits.push(new DateFormat(fmtName, String.fill('\\d', matchStr.length), null, index));
} else {
dateUnits.push(new DateFormat(fmtName, null, defaultDateValues[fmtName], -1));
}
}
//進(jìn)行驗(yàn)證是否真的是符合傳入格式的字符串
fmt = fmt.replaceAll('`', '\d');
if (!new RegExp(fmt).test(dateStr)) {
return null;
}
//進(jìn)行一次排序, 依次對(duì)字符串進(jìn)行截取
dateUnits.sort(function (a, b) {
return a.index - b.index;
});
for (var i = 0, length = dateUnits.length; i < length; i++) {
const format = dateUnits[i].format;
if (format == null) {
continue;
}
const matchDateUnit = new RegExp(format).exec(dateStr);
if (matchDateUnit !== null && matchDateUnit.length > 0) {
dateStr = dateStr.replace(matchDateUnit[0], '');
dateUnits[i].value = matchDateUnit[0];
}
}
//將截取完成的信息封裝成對(duì)象并格式化標(biāo)準(zhǔn)的日期字符串
const obj = dateUnits.toObject(function (item) {
return {
key: item.name,
value: item.value
};
});
const date = '{year}-{month}-{day} {hour}:{minute}:{second}:{milliSecond}'.format(obj);
try {
return new Date(date);
} catch (e) {
return null;
}
};
//下面是上面的 Date.of() 使用的一些輔助方法
/**
* 替換所有匹配exp的字符串為指定字符串
* @param exp 被替換部分的正則
* @param newStr 替換成的字符串
*/
String.prototype.replaceAll = function (exp, newStr) {
return this.replace(new RegExp(exp, "gm"), newStr);
};
/**
* 原型:字符串格式化
* @param args 格式化參數(shù)值
*/
String.prototype.format = function (args) {
var result = this;
if (arguments.length < 1) {
return result;
}
var data = arguments; // 如果模板參數(shù)是數(shù)組
if (arguments.length === 1 && typeof (args) === "object") {
// 如果模板參數(shù)是對(duì)象
data = args;
}
for (var key in data) {
var value = data[key];
if (undefined !== value) {
result = result.replaceAll("\\{" + key + "\\}", value);
}
}
return result;
};
/**
* 為 js 的 String 添加填充字符串的靜態(tài)方法
* @param item 填充的元素
* @param length 填充的長(zhǎng)度
* @returns {string} 填充得到的字符串
*/
String.fill = function (item, length) {
var result = '';
for (var i = 0; i < length; i++) {
result += item;
}
return result;
};
/**
* js 數(shù)組轉(zhuǎn)換為一個(gè) Object 對(duì)象
* @param fn 轉(zhuǎn)換方法
* @returns {{}} 得到的 Object 對(duì)象
*/
Array.prototype.toObject = function (fn) {
const obj = {};
this.map(fn)
.forEach(function (item) {
obj[item.key] = item.value;
});
return obj;
};
嗯,順便也發(fā)了一篇 blog 呢
https://rxliuli.blogspot.com/...
http://vuex.vuejs.org/zh-cn/intro.html
建議看看這個(gè)
貌似是路徑的問題。
50002 用戶受限,可能是違規(guī)后接口被封禁
所以你這個(gè)測(cè)試號(hào)廢了。換一個(gè)測(cè)試號(hào)就行了。我的也被封了少年。不知道什么情況
如果不使用 new(): T 你把這個(gè)功能寫出來(lái)試試。
create 函數(shù)的參數(shù)是一個(gè) Class,返回值是這個(gè) Class 的實(shí)例。
c: T 的意思是,c 的類型是 T,但這個(gè)函數(shù)的目的不是要求 c 的類型是 T,而是要求 c 就是 T。
試比較一下:
let num = new Number(1);
fn(Number)
fn(num)問題解決了,蘋果系統(tǒng)更新后需要xcode-select --install一下,缺少文件,安裝一下就好了。
還有一個(gè)input事件你試試看
id在主頁(yè)的DOM屬性上掛著呢。
單鏈表P 知道P的位置,你就把P位置中的value取出來(lái),那里面有下一個(gè)節(jié)點(diǎn)的指針 p+1 嘛,然后你把這個(gè)節(jié)點(diǎn)刪掉, 然后取P+1的value嘛,一個(gè)一個(gè)刪就好咯
代碼2:
你把Function.call當(dāng)成一個(gè)function看待。這個(gè)function上調(diào)用apply方法,那么第一個(gè)參數(shù)就是this對(duì)象,而Function.call所需要的this對(duì)象必須是一個(gè)funtion,你傳遞的{},是一個(gè)空的對(duì)象,那么就要做類型轉(zhuǎn)換,也就是從{}轉(zhuǎn)換成一個(gè)function,那么肯定是會(huì)報(bào)類型轉(zhuǎn)換錯(cuò)誤,所以safari的報(bào)錯(cuò)是最嚴(yán)謹(jǐn)?shù)摹?/p>
epoll不是“GCC的類庫(kù)”,它是Linux專有API,在Mac上無(wú)論你用什么編譯器都一樣用不了的。
Mac和FreeBSD有一個(gè)類似的功能叫kqueue。
覆蓋規(guī)則不清楚。但是w3c-H94明確給出了聲明:確保元素不包含重復(fù)的屬性
https://www.w3.org/TR/WCAG20-...
如果你還想繼續(xù)研究的話可以查一查瀏覽器是如何渲染html標(biāo)簽的,或者瀏覽器是如何對(duì)html標(biāo)簽糾錯(cuò)的資料。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。