我在使用纤薄的PHP框架3时遇到错误。
“未找到所请求的资源/try/foo@bar.com/secret 这台服务器。“
我是瘦身PHP框架的新手。当我输入电子邮件地址“ foo @ bar ”和密码“ secret ”时,会产生空白错误(即""
)。
当我输入电子邮件地址“ baz ”和密码“ secret2 ”时,它不会产生错误消息。
我基本上是为Android制作网络服务,用户将输入电子邮件地址和密码,所需的查询将以JSON格式返回。
$app - > get('/try/{email}/{password}', function($request, $response, $args) {
include_once('db.php');
$email = $request - > getAttribute('email');
echo $email;
$password = $request - > getAttribute('password');
echo $password;
$sql = "select * from user where email='$email' and password='$password'";
echo $sql;
$result = mysqli_query($con, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
$data[] = mysqli_fetch_assoc($result);
header('Content-Type:application/json');
echo json_encode($data);
} else {
echo "0 results";
}
mysqli_close($con);
});
答案 0 :(得分:1)
@
不是网址中的有效字符:(请参阅http://heyjavascript.com/4-creative-ways-to-clone-objects/)
您必须使用urlencoded电子邮件值创建链接...
$app->urlFor("your_route_name", array("email" => urlencode($mail), "password" => urlencode($password));
在你的情况下,它将是(例如):
答案 1 :(得分:0)
实际上,我通过使用Base64逻辑对参数进行编码来解决了这个问题。
btoa(条件)
在端点(我的是PHP)中,我执行了base64decode操作。