laravel登录,显示URL中的密码和ID

Zubair Nazer oliyat

我在laravel中创建了一个登录名,实际上是laravel的新用户,该网站已经在laravel中创建,我尝试在其中添加登录名并进行注册,welcome.blade.php中的登录名如下所示:

<?php
$username = "";
$errors = array();
$db = mysqli_connect('localhost', 'root', 'root', 'test');

$user_check_query = "SELECT * FROM registers WHERE username='$username' LIMIT 1";
  $result = mysqli_query($db, $user_check_query);
  $user = mysqli_fetch_assoc($result);

  if ($user) { // if user exists
    if ($user['username'] === $username) {
      array_push($errors, "Username already exists");
    }}

?>

<form method="get" action="">
    
    
    <div style="width: 300px;">    
        <input type="text" name="username" class="form-control" placeholder="Username"  >
    </div>
    
        <br>
        <div style="width: 300px;"> 
        <input type="password" name="password" class="form-control" placeholder="Password" >
        </div>
    <br>
    
        <button type="submit" class="btn" name="login_user">Login</button>
   
    
  </form>
<?php if (isset($_GET['login_user'])) {
  $username = mysqli_real_escape_string($db, $_GET['username']);
  $password = mysqli_real_escape_string($db, $_GET['password']);

  if (empty($username)) {
    array_push($errors, "Username is required");
  }
  if (empty($password)) {
    array_push($errors, "Password is required");
  }

  if (count($errors) == 0) {
    
    $query = "SELECT * FROM registers WHERE username='$username' AND password='$password'";
    $results = mysqli_query($db, $query);
    if (mysqli_num_rows($results) == 1) {
      $_SESSION['username'] = $username;
      $_SESSION['success'] = "You are now logged in";
      header('location: index.php');
    }else {
        array_push($errors, "Wrong username/password combination");
    }
  }
}?>

每当我尝试登录时,它都不会登录,而是重新加载同一页面,并在URL中显示输入的密码和用户名,如下所示

http://demo.website/teia/members/?username=test&password=testing&login_user=

谁能告诉我我的代码有什么问题

兹拉坦

您在表单中使用了错误的方法。GET方法始终使用输入数据生成URI,这在处理诸如用户个人信息之类的数据时确实是一个巨大的漏洞。GET用于从指定资源请求数据,查询字符串在GET请求的URL中发送。

有关GET请求的其他注意事项:

  • GET请求可以被缓存
  • GET请求保留在浏览器历史记录中
  • GET请求可以加书签
  • 处理敏感数据时,切勿使用GET请求
  • GET请求有长度限制

为防止这种情况发生,请使用POST方法。POST用于将数据发送到服务器。通过POST发送到服务器的数据存储在HTTP请求的请求正文中,而不是存储在URI中,这更加安全。

有关POST请求的其他注意事项:

  • POST请求永远不会被缓存
  • POST请求不会保留在浏览器历史记录中
  • POST请求无法添加书签
  • POST请求对数据长度没有限制

将表格更改为此:

<form method="POST" action="">

参考:w3schools

编辑:别忘了将您的路由也更改为POST。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Angular 和 Laravel - 根据登录名和用户 ID 显示并保存到数据库中

ASP中的登录名和密码

使用 Typescript / Javascript 中的 URL 登录名和密码连接到 API

使用laravel路由在URL中显示名称而不是ID

laravel 将 id 传递给控制器并在 url 中显示名称和电话号码

成功登录后如何检索和显示登录ID

登录提交使用url中的电子邮件和密码刷新页面,使用按钮单击而不是在onLogin()方法中发布电子邮件和密码

如何使用显示/隐藏密码在Ionic 2中创建登录

在laravel 5.4中成功重置密码后,返回登录页面

在开发模式下使用laravel中的任何密码登录

无法使用Swift在iOS 11中使用URL架构启动Touch ID和密码

Laravel 中带有 ID 和 Slug 的 URL 的路径函数

在LARAVEL 6中通过前端刀片设置具有登录用户ID的URL

在Laravel 5.2中更改登录/注册URL

在登录laravel中通过url发送参数

ecryptfs和登录密码与安装密码

登录和密码验证NodeJS

用密码和facebook登录

react中的登录身份验证和laravel未登录

我在Login.php页面中输入了正确的电子邮件ID和密码,但显示错误

Firebase 请求 url 在网络选项卡的请求负载中显示用户名和密码

尝试从 Excel VBA 登录网页,但用户名和密码显示为灰色

Laravel 5.2身份验证-如何在每个页面中显示登录用户名和注销链接?

Laravel 登录和重定向取决于角色 ID

如何获取登录表单用户名和密码输入的“ ID”?

Windows 7登录失败-用户ID和密码似乎在周末到期

如何使用静态用户ID和密码将需要登录的装饰器集成到烧瓶路由?

使用C#将主机名,登录ID和密码动态发送到Putty

如何创建一个提示用户输入其登录ID和密码的网站