【问题标题】:Why value doesn't want to increment when I submit a post为什么我提交帖子时价值不想增加
【发布时间】:2018-08-08 14:49:01
【问题描述】:

我正在做一个登录尝试检查器,所以如果用户输入了错误的密钥(女巫是通过电子邮件发送的),那么它会在尝试仪表上添加 +1。我将它存储在一个会话中做了很多研究,但它只是不起作用。这是我的 PHP 代码。

session_start();
$_SESSION['poskusi'] = 0;
$kljuc = $_SESSION['rand_kljuc'];

if(isset($_POST['vpis_kljuc'])){
  $vpis_kljuc = $_POST['vpis_kljuc'];
  if($vpis_kljuc == $kljuc){
    echo "You are in";
  }
  else {
    echo "Wrong key";
    $_SESSION['poskusi']+1;
    if($_SESSION['poskusi'] == 3){
      echo "locked";
    }
  }
}

【问题讨论】:

  • ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); 这有什么?
  • $_SESSION['poskusi']+1; 应该是$_SESSION['poskusi']+=1;
  • $_SESSION['poskusi']+1 应该是 $_SESSION['poskusi'] += 1;$_SESSION['poskusi']++;
  • 另外,每次加载 PHP 脚本时,您都将 $_SESSION['poskusi'] 设置为 0

标签: php forms session


【解决方案1】:

每次页面加载时,您都将计数器设置为 0

试试这个:

if(!isset($_SESSION['poskusi'])) {
    $_SESSION['poskusi'] = 0;
}

您也错误地增加了它。应该是

$_SESSION['poskusi']++;

$_SESSION['poskusi']+=1; 如果你愿意的话。

【讨论】:

  • 代码对我不起作用我添加了 session_destroy() 然后将其重定向到登录
  • 现在它增加得很好,但是当我在上面添加函数时,它并没有将 $_SESSION['poskusi'] 设置为 0,但它会继续运行
  • 那是因为变量已经设置好了。您希望它何时设置为 0?
  • 3 次尝试后,客户端将不得不等待 idk 5-10 分钟,然后我将 $_SESSION['poskusi'] 设置为 0
  • @ribicem 好的,所以在您的echo "locked"; 下,添加等待 5-10 分钟的逻辑并将计数器设置回 0。您需要关闭浏览器以使计数器从 0 开始再次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
  • 2021-08-06
相关资源
最近更新 更多