Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-GET方法,url上有两个或多个参数_Php_Slim - Fatal编程技术网

PHP-GET方法,url上有两个或多个参数

PHP-GET方法,url上有两个或多个参数,php,slim,Php,Slim,我正在使用slimframework创建restapi。我试图在方法的url中使用两个参数,但它给了我一个404page Not Found错误 这是我的代码: $app->get("/getUser/:user/:password",function($user,$password) use($app) { try{ $connection = getConnection(); $dbh = $connection->prepare("SEL

我正在使用
slimframework
创建
restapi
。我试图在方法的url中使用两个参数,但它给了我一个
404page Not Found
错误

这是我的代码:

$app->get("/getUser/:user/:password",function($user,$password) use($app)
{
    try{
        $connection = getConnection();
        $dbh = $connection->prepare("SELECT idUser FROM users WHERE user = ? and password = ?");
        $dbh->bindParam(1,$user);
        $dbh->bindParam(2,$password);
        $dbh->execute();
        $user = $dbh->fetchObject();
        $connection = null;

        header("HTTP/1.1 200");
        header("Content-Type:application/json; charset=utf-8");

        echo json_encode($user,JSON_UNESCAPED_UNICODE );

    }catch(PDOException $e)
    {
        echo "Error: " . $e->getMessage();
    }
});
如果我只使用一个参数来创建这个方法,它可以工作,但是在同一时刻,我放置了两个方法,它没有发现任何东西

是否可以在url中发送两个参数?我该怎么做

提前谢谢

1)可以在
Slim
中发送2个参数。
2) 您确定password param中的值与该字段中的任何值都匹配吗?

最后,我找到了问题的解决方案。问题出在查询上。我把代码翻译成英文(以前没有英文的部分,如变量等),以便更好地理解我的问题

问题就在这里,因为变量
password
的名称中有一个我认为
MySQL
不支持的字符,而我就是在这个时候出错的。现在我将变量的名称改为
password
,它工作正常


我之所以这样回答是因为也许有人和我有同样的问题

我将它从数据库直接复制到url,所以我认为它不能更改。这是我的代码吗?或者我应该改变什么?尝试添加参数数据类型,比如$dbh->bindParam(1,$user,PDO::param_STR);它不起作用。我将它们作为
varchar
存储在我的
MySQL
数据库中,这可能是问题所在吗?不是。你需要在命令提示符下检查你的代码,看看它是否正在编译。我不明白你在上一条评论中的意思。你能举例说明我该做什么吗?很抱歉,我对PHP一无所知。请注意:以纯文本形式存储密码是非常困难的。您应该在存储之前对它们进行盐析和散列,然后将散列输入与散列数据库值进行比较。@alexw是的,我知道。这只是一些证明,我确实检查了
Slimframework
是如何工作的,但老实说,我认为存储明文密码在实际项目中会是一个安全问题,因为很明显,如果有人访问数据库,您的所有密码都会完全暴露。我从来没有与reals项目(我仍在学习)工作,直到现在,所以从两周前到现在,我一直在寻找如何存储一个安全的密码(我从来没有搜索过它)我看到我必须使用
salt+hash
,然后与您指出的新的散列输入进行比较。@alexw我还看到
bcrypt
可能是一个很好的选择。你觉得怎么样?谢谢提醒。我知道仍然有很多人认为明文密码是安全的。直到几周前我才知道安全存储的方法,但我认为会有一种方法使它们更安全。再次感谢!是的,
bcrypt
加盐是个好主意。事实上,如果您使用和,在PHP5.5+中所有这些都非常容易
password\u hash
甚至会自动添加密码@alexw您的意思是将
bcrypt
与PHP函数混合使用吗?还有一个问题:我应该把盐存储在数据库中吗?