如何使用 php 在我的登录时实现 cookie"

Posted

技术标签:

【中文标题】如何使用 php 在我的登录时实现 cookie"【英文标题】:How to implement cookies on my login using php" 【发布时间】:2019-02-22 16:56:41 【问题描述】:

这是作业 - 我正在尝试使用 cookie 进行登录,以便浏览器记住您之前登录过,但我不知道如何在我的代码中实现它。并且要注销如何删除 cookie 以再次登录?

<?php
session_start();
require_once('conexion.php');

$usuario=$_POST['usuario'];
$contrasena=$_POST['pass'];
$con=md5($contrasena);


$consulta= "SELECT * FROM usuarios WHERE usuario='$usuario' and contrasena='$con'";
$result= mysqli_query($link, $consulta);
  $contador=0;

  while($fila = mysqli_fetch_array($result))
  
    $contador=1;
    //cambiar por cookies
    $_SESSION['id']=$fila['id'];
    $_SESSION['nombre']=$fila['usuario'];
  

    if($contador==0)
    
        echo '<script type="text/javascript">window.location.assign("login.html");</script>';

    else
            echo '<script type="text/javascript">window.location.assign("index.html");</script>';
    

    ?>

这是我的表格:

<form action="validacion.php" method="POST">
  <div class="form-group has-feedback">
    <input type="text" class="form-control" placeholder="Usuario" name="usuario" id="username">
    <span class="glyphicon glyphicon-user form-control-feedback"></span>
  </div>
  <div class="form-group has-feedback">
    <input type="password" class="form-control" placeholder="Contraseña" name="pass" id="password">
    <span class="glyphicon glyphicon-lock form-control-feedback"></span>
  </div>
  <div class="row">
    <div class="col-xs-8">
      <div class="checkbox icheck">
        <label>
              <input type="checkbox"> Remember Me
            </label>
      </div>
    </div>
    <!-- /.col -->
    <div class="col-xs-4">
      <button type="submit" class="btn btn-primary btn-block btn-flat">enter</button>
    </div>
    <!-- /.col -->
  </div>

</form>

【问题讨论】:

您好,我建议您查看this page 关于$_COOKIE 【参考方案1】:

您应该记住,会话和 cookie 不是一回事: What is the difference between Sessions and Cookies in PHP?

还和我在一起吗? 您必须在 validacion.php 上“设置”一个 cookie:

$username = $_POST['usuario']; //I would highly recommend that you clean the input. 

setcookie("usuario", $username);

在您的 index.html 页面上,只需在 HTML 顶部添加 php 即可将其转换为 php 文件。添加一个检测登录用户的 php 侦听器。还请记住将您的 index.html 更改为 index.php

<?php
  if (isset($_COOKIE["usuario"])) 
    echo "Welcome ".$_COOKIE["usuario"];
  
?>

在您注销时,只需在确保 cookie 存在后“取消设置”它们即可。

if (isset($_COOKIE['usuario'])) 
   unset($_COOKIE['usuario']);

我强烈建议您查找: http://php.net/manual/en/function.setcookie.php &http://php.net/manual/en/function.unset.php

【讨论】:

以上是关于如何使用 php 在我的登录时实现 cookie"的主要内容,如果未能解决你的问题,请参考以下文章

当我们通过 facebook 登录时如何删除 facebook cookie

当用户使用我的网站时,如何在用户浏览器中使用 php 启用 cookie [重复]

php 模拟 登录

如何使用cookies创建一个带有登录的php页面?

在 PHP 中使用会话和 cookie 创建安全登录

如何删除 UIWebView 的所有 cookie?