小编Ale*_*lex的帖子

PHP密码验证始终返回false

我正在使用PHP的密码散列API在我正在构建的网站上散列和验证我的密码,但每当我尝试验证我的密码时,它总是返回false.

我有一个User类,它在将密码插入数据库之前设置密码:

public function set__password($passwd) {
    self::$password = password_hash($passwd, PASSWORD_BCRYPT, array('cost' => 12));
}
Run Code Online (Sandbox Code Playgroud)

如果用户名和电子邮件是唯一的,则插入新的用户行 - 在检查我的数据库时,我的密码似乎是有效的BCRYPT字符串:

$2y$12$lTMEP0wevDEMX0bzStzoyOEzOTIAi3Hyhd3nYjGwzbI
Run Code Online (Sandbox Code Playgroud)

要验证我的密码,请运行以下脚本:

$username = $_POST['username'];
$password = $_POST['password'];

$DB = Database::getInstance();

// Get the stored password hash
$res = $DB->run__query('SELECT password FROM users WHERE username = "' . $username . '"');
$hash = $res[0]['password'];


// Do the passwords match?
if(password_verify($password, $hash)) {
    echo 'success';
} else {
    echo 'failed';
}
Run Code Online (Sandbox Code Playgroud)

$hash涉及到上面引述的字符串,但是当我然后调用password_verify($password, $hash)其中$password是从我的输入字段检索到的明文密码,我总是收到假值.

我已多次查阅API手册,无法看到我出错的地方,任何指针都将不胜感激!

问候,亚历克斯.

php

5
推荐指数
1
解决办法
5413
查看次数

ES6使用箭头功能分配变量

我刚刚开始熟悉ES6语法,我想知道是否可以使用箭头函数分配给变量.我正在编写一个基本的轻量级AJAX帮助程序库,状态为200,我想将有效负载返回给用户,我目前使用它:

var responseData = "";
switch (payload.returnType.toLowerCase()) {
    case "json" : responseData = JSON.parse(httpRequest.responseText); break;
    case "text" : responseData = httpRequest.responseText; break;
    default : responseData = null; break;
}
callback(null, responseData);
Run Code Online (Sandbox Code Playgroud)

这很好,但我不能不认为如果我这样做,我可以让这个更清洁:

callback(null, () => { switch(payload.returnType.toLowerCase()) { ... });
Run Code Online (Sandbox Code Playgroud)

我希望return语句将表达式的结果作为我的回调中的第二个参数发送,但是当我从调用者控制日志时它会输出switch语句.

或者我试过:

var responseData = () => {
    switch (payload.returnType.toLowerCase()) {
        case "json" : return JSON.parse(httpRequest.responseText); break;
        case "text" : return httpRequest.responseText; break;
        default : return null; break;
    }
}
callback(null, responseData);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,responseData始终为空.是否可以将返回值作为我的第二个参数,或者将其responseData作为箭头函数的结果绑定?

javascript ecmascript-6

5
推荐指数
2
解决办法
7533
查看次数

JavaFX-检查复选框是否已勾选

我正在尝试编写一些代码来确定我的复选框是否被选中,我知道我可以编写一些类似将其状态更改为“已选中”的内容

checkbox.setSelected(true);
Run Code Online (Sandbox Code Playgroud)

但是我想写一些类似的东西

if(checkbox.setSelected(true)){
   write login-username to config file
} else {
   clear the config file
}
Run Code Online (Sandbox Code Playgroud)

我将如何去做呢?我一直在浏览Oracle文档,但尚未找到任何有用的信息

谢谢。

checkbox javafx

4
推荐指数
2
解决办法
1万
查看次数

使用AJAX将变量传递给PHP数组

我查看了与此主题相关的各种其他问题,但我仍在努力寻找我的查询的解决方案.

在我的系统中,我允许管理员将额外的表单节点附加到文件中,以便他们可以输入任何额外的所需数据,然后将这些数据提交给DB以在站点的主要部分中生成页面.

我不熟悉通过AJAX传回数据的概念,所以我可能会误解一些东西,但这里是我的代码.

添加节点控制

<div id="nodeControl">
    <div id="addNode">
        <a id="nodeLink" href="#">+</a>
    </div>
</div>

<div id="slideOut">Click to add a new section</div> 
Run Code Online (Sandbox Code Playgroud)

添加节点单击响应功能

var nodeCount = 2;
        $("#nodeLink").click(function(){
            // Local Variables
            var newSection = '<br/><div id="sectionInfo"><div id="sectionWrap"><div id="sectionInner"><label class="inst head">Section ' + nodeCount + '</label><input class="textOver" type="text" name="sectionTitle' + nodeCount + '" value="<?php $title; ?>"> <label class="inst ib">Please enter any text you would like associated with the section.</label> <textarea style="margin-top: 3px" name="sectionContent' + nodeCount + '" value="<?php $body; ?>"></textarea> <label class="inst ib">Please …
Run Code Online (Sandbox Code Playgroud)

php ajax jquery

3
推荐指数
1
解决办法
1570
查看次数

减少AJAX发出的服务器请求

我有一个滑块组件,它调用AJAX请求来根据滑块指向的值更新表.

在我的本地服务器上,没有实现延迟功能似乎很好,但是自从将我的代码部署到云服务后,我注意到当用户滑动时发送到服务器的请求数量会产生大量的延迟.

我目前的代码:

$( "#psi_slider" ).slider({
    range: "min",
    value:0,
    min:0,
    max:max_psi, 
    slide: function(event, ui) {
        update_results(json, get_values());
    }
});
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我如何在请求之间实现一个计时器,即每秒发送一个请求?

ajax jquery

3
推荐指数
1
解决办法
666
查看次数

Qt:与Qt OSX优胜美地的CUDA"sed:非法选项 - r"错误

我正在使用Qt创建器构建一个简单的应用程序,其中我想利用CPU和GPU计算来完成任务,然后以m/s比较执行时间.

我已阅读了大量文章并得出结论,我需要将NVCC和GCC编译器彼此分开以避免冲突.我按照本教程,对我的系统进行了调整,但是当我编译时出现了一个奇怪的错误:

sed: illegal option -- r
usage: sed script [-Ealn] [-i extension] [file ...]
       sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]
make: *** [gaussian_cuda.o] Error 1
14:42:46: The process "/usr/bin/make" exited with code 2.
Run Code Online (Sandbox Code Playgroud)

在我的.pro配置中,错误显然是从这一行抛出的:

2>&1 | sed -r \"s/\\(([0-9]+)\\)/:\\1/g\" 1>&2
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这是一个非法操作,当我尝试删除此行时,我的代码完全中断.

为什么是r非法操作?

编辑完整的配置代码:

QT       += core gui
QT       += multimedia
QT       += multimediawidgets
QT       += concurrent

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = WebcamFilter
TEMPLATE = …
Run Code Online (Sandbox Code Playgroud)

c++ qt cuda

3
推荐指数
1
解决办法
799
查看次数

ManagedCuda:IllegalAddress; 在执行内核时

我在C#项目中使用ManagedCuda库来利用GPU,目前我正在遵循本教程,关于如何在使用OpenCV实现它之后编写C#和C++之间兼容的代码.

我的代码似乎一切正常,内核被找到,内置并且方法调用被执行但是我收到一个错误:

An unhandled exception of type 'ManagedCuda.CudaException' occurred in ManagedCuda.dll

Additional information: ErrorIllegalAddress: While executing a kernel, the device 
encountered a load or store instruction on an invalid memory address.

The context cannot be used, so it must be destroyed (and a new one should be created).
Run Code Online (Sandbox Code Playgroud)

我知道C#抱怨在尝试将设备指针传递给内核时找不到有效地址,我在代码和引用教程中的帖子之间可以区分的唯一区别是ManagedCuda似乎最近有过一个允许用户使用Lambdas的整容,我已经做了一些阅读,但没有找到任何东西来澄清这是否是导致我的问题:

static Func<int, int, int> cudaAdd = (a, b) =>
{
    // init output parameters
    CudaDeviceVariable<int> result_dev = 0;
    int result_host = 0;
    // run CUDA method
    addWithCuda.Run(a, b, result_dev.DevicePointer); …
Run Code Online (Sandbox Code Playgroud)

c# cuda

2
推荐指数
1
解决办法
983
查看次数

C#按名称获取URI段

有没有办法使用其名称获取URI的段?

例如,如果我有模板:

http://myapi.com/v1/players/{country}
Run Code Online (Sandbox Code Playgroud)

我怎样才能提取{country}匹配后使用的值UriTemplateMatch

我已经阅读了该课程的文档,目前正在使用这种方法

string country = requestedUri.Segments[3];
Run Code Online (Sandbox Code Playgroud)

这种方法适用于静态URI,但只要路径发生变化,返回并进行更改就会很麻烦.

c# api

2
推荐指数
1
解决办法
588
查看次数

Firestore批量深度合并

当我从 API 创建新文档时,我想提交(或原子更新)属于根项目文档的统计信息集合:

    const increment = firebase.firestore.FieldValue.increment(1)
    let aggregation: LooseObject = {
      totalProjects: increment,
      tags: [],
      categories: [],
    }

    const project = fakeProject() // some debug func to return a dummy project object
    const projectRef = db.collection('projects').doc()
    const projectStatsRef = db.collection('projects').doc('--stats--')

    project.categories.forEach((category: string) => {
      aggregation.categories[category] = increment
    })

    project.tags.forEach((tag: string) => {
      aggregation.tags[tag] = increment
    })

    console.log(aggregation)

    const batch = db.batch()
    batch.set(projectRef, project)
    batch.set(projectStatsRef, aggregation, {
      merge: true,
    })
    batch.commit()
Run Code Online (Sandbox Code Playgroud)

当我检查控制台时,我得到了聚合文档的以下转储(这是我希望在所附屏幕截图中看到的数据的形状):

{
    totalProjects: NumericIncrementTransform { operand: 1 },
    tags: …
Run Code Online (Sandbox Code Playgroud)

typescript google-cloud-firestore

2
推荐指数
1
解决办法
877
查看次数

Golang解析奇怪的日期格式

我正在使用解析器来解析游戏中的日志文件,以便可以对游戏内的拍卖进行分析,但是记录器正在编写的日期格式似乎会引起问题,因为该格式似乎是为自定义编写的在记录器中,日期时间戳记示例如下:[Wed Nov 23 23:26:10 2016]我尝试使用以下方法进行解析:

func (r *AuctionReader) extractSaleInformation(line string) {
    fmt.Println("Extracting information from: ", line)

    // Format mask for output
    layout := "DD-MM-YYYY hh:mm:ss"

    // Replace the square brackets so we're just left with the date-time string
    date := strings.TrimSpace(strings.Replace((strings.Split(line, "]")[0]), "[", "", -1))

    fmt.Println(time.Parse(date, layout))
}
Run Code Online (Sandbox Code Playgroud)

当我尝试解析上述日期时间字符串时,出现以下错误:

0001-01-01 00:00:00 +0000 UTC解析时间“ DD-MM-YYYY hh:mm:ss”为“ Wed Nov 23 23:26:10 2016”:无法解析“ DD-MM-YYYY hh: mm:ss“作为” Wed Nov“

我如何使解析器识别这种看似自定义的格式,我将把这些数据保存到Mongo,所以我不想将拍卖时间存储为字符串,因为我想单独查询时间戳。

datetime go

1
推荐指数
1
解决办法
3120
查看次数

Laravel阻止schedule:run将密钥添加到缓存

每当我的应用程序运行php artisan schedule:run并成功将某些作业调度到我的任何队列中时,它都会以以下格式为其自身创建一个缓存条目:

laravel:framework/schedule-{SCHEDULE_HASH}在哪里SCHEDULE_HASH是32个随机字符串,我想知道此缓存键是否保存了一些有意义的数据,但仅将b:1;其保存为值。

此缓存值的目的是什么?据我所知,对计划的调用一旦完成,我们就并不在乎发生了什么,因为我的流程运行器将在60秒内重新运行,以查看是否需要计划任何新作业。

目前,这给我的Redis高速缓存添加了数百个密钥,如果可能,我想解决它。

我唯一可以想到的是,当schedule:run运行时, Running scheduled command: '/usr/local/bin/php' artisan job:name > '/dev/null' 2?&1可能后半部分以某种方式使用Redis作为其存储目标,然后在其中管道传递新的缓存值1,我们将不胜感激。

更新:我想知道我正在使用的函数是否实际上是缓存互斥锁https://laravel.com/api/5.5/Illuminate/Console/Scheduling/Mutex.htmlonOneServer。唯一的事情是,即使我的工作完成后,互斥体也不会释放。

预定任务:

$schedule->command('shop:calculate_remaining_work', [$shop->id])
    ->cron('*/5 * * * *') // per 5 minutes
    ->onOneServer()
    ->withoutOverlapping();
Run Code Online (Sandbox Code Playgroud)

我希望命令完成运行后即可释放互斥锁,但事实并非如此,互斥锁会在缓存中保留1440分钟

php scheduled-tasks laravel

1
推荐指数
1
解决办法
565
查看次数

PHP RegEx - 没有结束分隔符?

我是RegEx的新手,当我使用我的.htaccess文件时,觉得我有点掌握了基础知识.我目前正在进行一些表单验证,以检查用户是否向系统输入了有效的序列号.系统可以接受以下串行格式.

  • I-SERIAL-123
  • I-SERIAL123
  • SERIAL-123
  • SERIAL123

我正在使用preg_match函数来检查是否满足此表达式,如果是,则提交字段.

当前表达

if (preg_match("^[A-Z0-9\-]{5}$", $_GET['serial']) === false) 
Run Code Online (Sandbox Code Playgroud)

然而,PHP不断抛出"找不到结束分隔符"的异常,我看了几个PHP备忘单,我没有看到我的语法中的任何直接问题.

任何指针都将非常感谢,谢谢.

php regex

0
推荐指数
1
解决办法
223
查看次数