可能重复:
使用PHP加密和解密密码的最佳方式?
我最近用PHP做了很多事情,想要建立我的第一个登录/注册系统.因此,我一直在网上做很多阅读,以找出实现这一目标的最佳方法.我遇到了几个指南,我对几个实例感到困惑,在开始这条路之前我想确定一下.
我的问题是我究竟如何使用河豚?我已经读过如果提供适当的盐,crypt()将自动选择河豚.如果是这样的话,是什么让盐河豚适合?
现在,我有一个脚本,它从日期和时间中取出一个盐,一个随机数,然后哈希为盐.那是否可以与河豚一起使用?
建立我以前的问题,我有这个小提琴
它在小视图中的一列顶部有两列,在其他视图中一行有3列.这按预期工作.但是,对于设计方面,我想要内容块之间的空间.为了解决这个问题,我在单元格内部制作了一个绝对定位的元素,其大小相应地填充空间,但留下间隙.这在Chrome中表现非常出色,但IE11,桌面,Windows 8应用程序和Windows手机都无法按预期工作.
在IE11中,块只会扩展以适应内容(即使绝对块不包含任何内容......)我认为这是因为IE考虑了浏览器添加的自然单元格填充以使单元格具有相同的高度.踢球者是:如果你给了一个设定的高度,并使用bottom:0该块将直接粘在单元格的底部.
这是小提琴HTML:
<div class="table">
<div class="cell"><div class="back"></div>One Line</div>
<div class="cell"><div class="back"></div>Two<br/>Lines</div>
<div class="cell"><div class="back"></div>More<br/>Than two<br/>Lines</div>
</div>
Run Code Online (Sandbox Code Playgroud)
和CSS:
.table {
display: table;
table-layout: fixed;
border-collapse: collapse;
width: 100%;
}
.cell {
display: table-cell;
border: 1px solid red;
position:relative;
padding:0px 10px;
}
.back {
position:absolute;
top:0;
bottom:0;
left:10px;
right:10px;
background:#777;
z-index:-10;
}
.cell:first-child .back {
right:5px;
}
.cell:nth-child(2) .back {
left:5px;
}
@media (max-width: 768px) {
.cell:last-child {
display: table-caption;
caption-side: bottom;
}
}
@media (min-width:769px){ …Run Code Online (Sandbox Code Playgroud) 我正在使用5.1构建我的第一个Laravel应用程序,它是一个电子商务网站.
我开始创建"静态"页面.我引用是因为页面不是从产品列表等动态生成的,但仍然从数据库中检索html.
我创建了PagesController一个Page模型,一个pages/index.blade.php和pages/show.blade.php视图,以及一个MasterTemplate.blade.php模板文件.
我routes.php看起来像:
$router->get('/', [
'uses' => 'PagesController@index',
'as' => 'pages.index'
]);
$router->get('/{page}', [
'uses' => 'PagesController@show',
'as' => 'pages.show'
]);
Run Code Online (Sandbox Code Playgroud)
这很好用,我可以查看数据库中的索引和单个页面.
我去添加导航时出现问题.由于我打算使用两个不同的导航栏(一个用于用户,一个用于管理员),我选择创建一个_navDefault.php文件以包含在MasterTemplate.
剥离多余的html看起来像:
@foreach ($pages as $page)
<li>{!! link_to_route('pages.show', $page->title, [$page->slug]) !!}</li>
@endforeach
Run Code Online (Sandbox Code Playgroud)
这可以很好地生成链接并且可以正常工作.但是因为我PagesController:
...
public function index()
{
$pages = $this->page->get();
return view('pages.index', compact('pages'));
}
...
Run Code Online (Sandbox Code Playgroud)
$pages只存在于index视图上,因此导航到show视图会给我一个$pages未定义的错误,这非常有意义.
我可以定义$pages的show方法,但是我也会有其他的控制器,如 …
我有一个非常大的元素列表(14000+),我希望有一个搜索字段,当您在其中键入文本时,它会过滤结果并隐藏不相关的元素.
目前我正在使用这个:
$.expr[':'].containsIgnoreCase = function (n, i, m) {
return jQuery(n).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
};
$("#search").on("keyup", function () {
var filter = $("#search").val();
$(".list-group-item").not(":containsIgnoreCase('" + filter + "')").addClass("hidden");
$(".list-group-item:containsIgnoreCase('" + filter + "')").removeClass("hidden");
});
Run Code Online (Sandbox Code Playgroud)
哪个在小型列表上运行得非常好.此列表太大,无法使用该代码进行管理.
我不知道是否有任何其他代码可以处理这么多元素客户端.如果没有,将列表留空是否更好,并在匹配时执行ajax请求填充列表?
我正在尝试创建一个搜索类来支持 gridview 小部件。问题是我需要比较主表和连接表中的值。
我在搜索类中这样做:
$query = User::find();
$query->joinWith(['rank']);
Run Code Online (Sandbox Code Playgroud)
然后在我的过滤器中,我想要类似的东西:
$query->andFilterWhere(['>=', 'user.rank_points', 'rank.promotion_points']);
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为第三个参数rank.promotion_points被转义为字符串,并且不被视为 mysql 字段。
我曾尝试使用关系输出如下值:
$query->andFilterWhere(['>=', 'user.rank_points', $this->rank->promotion_points]);
Run Code Online (Sandbox Code Playgroud)
但这给出了一个$this没有rank属性的错误。
完成此操作的正确方法是什么?
根据要求编辑,这是上述代码生成的原始查询:
SELECT `user`.*
FROM `user`
LEFT JOIN `rank`
ON `user`.`rank_id` = `rank`.`id`
WHERE (`rank_id` NOT IN (1, 2, 3, 4, 5, 6))
AND (`user`.`rank_points` >= 'rank.promotion_points')
Run Code Online (Sandbox Code Playgroud)
但我需要的是这个:
SELECT `user`.*
FROM `user`
LEFT JOIN `rank`
ON `user`.`rank_id` = `rank`.`id`
WHERE (`rank_id` NOT IN (1, 2, 3, 4, 5, 6))
AND (`user`.`rank_points` >= `rank`.`promotion_points`)
Run Code Online (Sandbox Code Playgroud)
整个方法如下所示: …
我有一个通过PHP生成的相当大的JSON对象。它从数据库中创建一个PHP对象,其键为整数,即1-100。这些键不是按顺序排列的,而是按随机顺序排列的,例如55、72、5、8、14、32、64等。然后,我使用json_encode将对象输出为JSON。然后,我使用AJAX调用来获取该JSON并将其存储在变量中。但是,该变量的JSON对象的顺序为1-100,而不是上面的排序顺序。
有什么想法为什么要这样做以及如何解决它?
我一直在使用谷歌地图 API v3 (Javascript) 制作地图,一切都很好。
最近我们获得了一个 Google API for Work 帐户。所以,我们已经在我们的地图调用中加入了我们的客户 ID:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?client=gme-clientid&v=3.18"></script>
从那时起,餐馆、银行、商店等就不再出现在地图上。只有大的地方,如大学、州立公园、机场等。
client从 src 中删除参数会恢复预期的功能。
谁能解释为什么会发生这种情况,或者如何恢复所需的功能?
我是一个有正则表达式的业余爱好者,但我需要在javascript中提取一段字符串.
我目前的(工作)代码是:
var txt='Icon/something/0.gif';
var re1='.*?';
var re2='(?:[a-z][a-z]+)';
var re3='.*?';
var re4='((?:[a-z][a-z]+))';
var p = new RegExp(re1+re2+re3+re4,["i"]);
var m = p.exec(txt);
var word = m[1]; //something
Run Code Online (Sandbox Code Playgroud)
但是我无法想象我们这是最有效的方式.
我需要做的是从字符串中提取"something",如下所示:
Icon/something/0.gif
Run Code Online (Sandbox Code Playgroud)
或"somethingelse"来自:
Icon/somethingelse/10.gif
Run Code Online (Sandbox Code Playgroud)
我可以使用更紧凑的正则表达式吗?
我有一个使用 jQuery Mobile 构建的 phonegap 应用程序。
我已将事件侦听器绑定到pause并resume喜欢这样:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
}
Run Code Online (Sandbox Code Playgroud)
现在,我已经alerts输入了onPause和onResume函数。这些警报确实会触发,但是我尝试从这些警报中调用的任何功能都不起作用。我的一个函数initialize(基本上是重新启动应用程序)在我的代码中的任何地方调用时都可以工作,但是从onPause. 我尝试过的另一个功能是clearInterval,它不起作用。
最重要的是,pause在应用程序实际恢复之前,事件似乎不会触发,因为在应用程序重新打开之前警报不会触发。
我试图强制应用程序在暂停/发送到后台并且不起作用时关闭/注销。
我有什么明显的错误,还是我遗漏了什么?
更新 我的函数没有触发的问题是由于可变范围(愚蠢的错误)但是,在应用程序恢复后,暂停事件仍然会触发。
好吧,这是一些css和html:
CSS:
div {
height:24px;
line-height:24px;
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<div><img src="image.png"/>Text</div>
Run Code Online (Sandbox Code Playgroud)
现在应该(我认为)产生的是一个24像素高的div,文本应该在div之后垂直居中对齐,在图像之后.PS图像是24x24px.然而,它将线高度抛出大约12px(将线高减少到12px并不能解决它).将图像更改为12x12px虽然有效但将文本放在正确的位置.如果图像被完全删除,则文本位于正确的位置.我想我的问题是为什么它正在做它是什么,以及我是否/如何解决它.
谢谢,夏普.
我有一个函数deviceUpdate(ID, Token),我可以调用它来更新用户的设备列表.此函数执行ajax调用,显示加载图像,直到完成,然后显示所有信息.
有一个特定的时间我想在更新完成后执行一个额外的(匿名)函数.如果不在deviceUpdate函数中嵌入匿名函数,我该怎么做?
我正在开发一个使用jQuery mobile和Phonegap构建的应用程序。它已经运行了一年多。一两个月前,这些控件(特别是地图类型,缩放和街景视图)在没有更新应用程序的情况下就丢失了,并且仅在iOS上存在。
我曾尝试通过手机的浏览器运行该应用程序,但效果很好。仅在通过phonegap(内部版本)对其进行编译之后,该问题才存在。我试图手动将UI设置强制设置为true,但是只有地图类型控件出现。我还尝试过修改CSS,以使控件具有疯狂的高Z索引,这也没有任何区别。
我无法在线找到任何相关信息。如何使控件再次出现?
当我学习PHP时,我被教导使我的代码没有错误,但仍然隐藏生产代码中的错误以确保干净的用户体验.
我最近参与了一些项目,其中原作者采取了留下错误和警告的方法,甚至利用它们来实现某些东西,而不是在没有它的情况下编写代码.
例如,代码如下所示:
$numm = 0;
while($numm < 10){
$var = "something,".$var;
$numm++;
}
Run Code Online (Sandbox Code Playgroud)
此代码将Notice在第一次循环时抛出非致命错误,因为第一次连接不存在$ var.
还有很多其他的例子,他们要么忽略错误,要么利用它们(结束循环等),然后将它们隐藏起来.
对我来说,这似乎是不好的做法,但我可能只是强迫症.