无法在 PHP 中注销[重复]

2024-01-08

我正在尝试用 PHP 制作注册/登录表单,但无法注销。我不断收到以下错误。

致命错误:未捕获的 ArgumentCountError:函数 USER::__construct() 的参数太少,第 4 行在 C:\xampp\htdocs\recepten\logout.php 中传递了 0,而 C:\xampp\htdocs\recepten\ 中预期为 1 class.user.php:6 堆栈跟踪: #0 C:\xampp\htdocs\recepten\logout.php(4): USER->__construct() #1 {main} 抛出在 C:\xampp\htdocs\recepten\第 6 行的 class.user.php

有人可以告诉我我在做什么以及如何解决问题吗?

这是我的注销脚本代码行:

<?php
session_start();
require_once 'class.user.php';
$user = new USER();

if(!$user->is_logged_in())
{
    $user->redirect('indexlogin.php');
}

if($user->is_logged_in()!="")
{
    $user->logout(); 
    $user->redirect('indexlogin.php');
}
?>

这是我的呼叫用户脚本代码:

<?php
class USER
{
    private $db;

    function __construct($DB_con)
    {
        $this->db = $DB_con;
    }

    public function register($fname,$lname,$uname,$umail,$upass)
    {
       try
       {
           $new_password = password_hash($upass, PASSWORD_DEFAULT);

           $stmt = $this->db->prepare("INSERT INTO users(user_name,user_email,user_pass) 
                                                       VALUES(:uname, :umail, :upass)");

           $stmt->bindparam(":uname", $uname);
           $stmt->bindparam(":umail", $umail);
           $stmt->bindparam(":upass", $new_password);            
           $stmt->execute(); 

           return $stmt; 
       }
       catch(PDOException $e)
       {
           echo $e->getMessage();
       }    
    }

    public function login($uname,$umail,$upass)
    {
       try
       {
          $stmt = $this->db->prepare("SELECT * FROM users WHERE user_name=:uname OR user_email=:umail LIMIT 1");
          $stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
          $userRow=$stmt->fetch(PDO::FETCH_ASSOC);
          if($stmt->rowCount() > 0)
          {
             if(password_verify($upass, $userRow['user_pass']))
             {
                $_SESSION['user_session'] = $userRow['user_id'];
                return true;
             }
             else
             {
                return false;
             }
          }
       }
       catch(PDOException $e)
       {
           echo $e->getMessage();
       }
   }

   public function is_loggedin()
   {
      if(isset($_SESSION['user_session']))
      {
         return true;
      }
   }

   public function redirect($url)
   {
       header("Location: $url");
   }

  public function logout()
  {
      session_destroy();
      $_SESSION['user_session'] = true;
  }
}
?>

如果有人能帮忙那就太好了!


In class.user.php你有一个:

function __construct($DB_con)
{
  $this->db = $DB_con;
}

当你使用它时logout.php:

$user = new USER();

你必须通过$DB_con to __constructor,或创建一个__constructor没有参数,并添加另一个函数来初始化DB:

function __construct()
{
} 
public function initDB($DB_con)
{
  $this->db = $DB_con;
}

然后你可以像这样使用它:

$YourDB = whatever_get_DB();
$user = new USER();
// And when you need:
$user.initDB($YourDB);

或者没有这个:

$YourDB = whatever_get_DB();
$user = new USER($YourDB);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 PHP 中注销[重复] 的相关文章

  • PHP 数组转换为 Javascript 数组

    下午都 下面的代码工作完美 但是 我需要将 php sql 数组的每一行拉出并放入脚本 var 中 关于如何编写可以做到这一点的 while 循环有什么想法吗 谢谢你的帮助 var enableDays enableDays push 附加
  • 在关系数据库中存储 1:1 用户关系的最佳方式

    存储用户关系的最佳方式是什么 例如友谊 在关系中必须是双向的 你是我的朋友 因此我是你的朋友 数据库 例如MYSql 我可以想到两种方法 每当一个用户与另一个用户成为好友时 我都会向数据库添加两行 其中 A 行由发起用户的用户 ID 和下一
  • 我怎样才能完成笛卡尔积函数的 Objective-C 实现?

    作为我的问题的后续here https stackoverflow com questions 8176719 algorithm generating all combinations from items that must be ch
  • 如何获取wordpress中文件的本地路径

    由于在wordpress中 上传的文件 图像以3种不同的大小存储 从而占用内存 我有一个代码可以根据给定图像的 URL 来调整图像的大小 调整大小的代码是 img wp get image editor image url if is wp
  • 在 PHP 中扩展单例

    我正在使用一个 Web 应用程序框架 其中一部分由许多服务组成 所有服务均以单例形式实现 它们都扩展了一个 Service 类 其中实现了单例行为 如下所示 class Service protected static instance p
  • PHP 中的基本 URL

    我有一个两难的困境 它已经困扰我很长一段时间了 我有一个本地测试服务器 其设置如下 127 0 0 1 我的网站在离线模式下如下所示 127 0 0 1 websitename index php 我的网站实时版本如下所示 websiten
  • 新行分隔符不适用于 group_concat 函数

    我有一根绳子 name lastname name2 lastname2 包含数据库表中的值 我想显示它 喜欢 name lastname name2 lastname2 我使用 group concat 函数 它适用于逗号分隔符 但我需要
  • Laravel Eloquent 多对多查询 whereIn

    在我的应用程序中 我更新了关系one to many to many to many我正在尝试找出一种方法来保留相关功能 假设我有两个相关的表 例如狗和主人 如果我有很多主人 并且我想获取这些主人的狗 ID 列表 我应该如何雄辩地做到这一点
  • 在浏览器中就绪的 DOM 上缺少语言翻译弹出窗口:Laravel 5.2

    我的控制器中有以下代码 public function AllCountries Countries new App DataAccess CountryData gt GetAllCountries app gt setLocale fr
  • rewrite_mod 已启用,但 .htaccess 不起作用

    我在 Amazon EC2 的 ubuntu 12 04 中使用 apache 2 2 我使用启用了 mod rewrite sudo a2enmod rewrite 并能够看到 apache2ctl M 现在我编写了以下 htaccess
  • 使用 PHP 上传、调整图像大小并裁剪图像中心

    我想要创建一个非常非常基本的上传 调整大小和裁剪 PHP 脚本 其功能与 Twitter 用于上传头像图片的方法相同 无论如何我最后检查过 我希望脚本拍摄任何尺寸的图像 将最短边的大小调整为 116 像素 然后裁剪顶部和底部 如果是横向 则
  • 将我的本地数据库(Mysql)复制到远程数据库(phpmyadmin)

    My MySQL database local server is connected to a weather station The data are updated continuously on my local server My
  • Laravel 上的图像更新并删除旧图像

    尝试在我的更新控制器中实现更新文章似乎可行 但问题是当我只想更新帖子而不上传图像时 旧的总是会被删除 但这是不应该的 这是我的商店功能 public function store Post post post gt update this
  • PHP:在执行 php 脚本时显示“正在加载”页面

    这就是我现在所拥有的 我有一个网页 当访问该网页时 它会通过开放 API 连接到 Surveygizmo com 检索大量数据 然后将这些数据返回给我进行处理 此过程大约需要 10 12 秒 在执行时 页面只是处于 正在加载 状态 并且我会
  • empty() 在对象的非空属性上返回 TRUE

    我遇到了一个非常奇怪且意想不到的问题 empty 正在返回TRUE由于我不知道的原因 在一处非空的房产上 class MyObject private property public function construct property
  • POST 之后在 PHP 中设置 Location 标头时避免 HTTP 302 响应代码

    我需要放一个201 CreatedPOST 请求的响应代码和 Location 标头 但由于某种原因我仍然收到 302 响应 这就是我所拥有的 header HTTP 1 1 201 header Location The new reso
  • 带缓存的简约 PHP 模板引擎,但不带 Smarty?

    有大量的问题 https stackoverflow com search q php template engine cache寻找 正确的 PHP 模板引擎 但它们都不专注于缓存 有谁知道一个轻量级 高质量 基于 PHP 5 的模板引擎
  • 性能方面插值(直接插入字符串)VS串联[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 关于如何在 PHPUnit 中使用 setUp() 和tearDown() 有真实的例子吗?

    Methods setUp and tearDown 在每次测试之前和之后调用 但实际上 有没有任何真实的例子说明我为什么需要这个 检查其他人的测试 我总是看到类似的东西 public function setUp this gt test
  • jQuery 不断 ping 以获得 Ajax 响应

    如何使用 jQuery 不断运行 PHP 脚本并每秒获取响应 并将鼠标上的少量数据发送到同一脚本 我真的需要添加一些随机扩展才能让这样一个简单的计时器工作吗 迭代是人类的 递归是神圣的 L 彼得 多伊奇 http www devtopics

随机推荐

  • 当目标(后端)应用程序在同一 EC2 的多个端口上运行时的 AWS ELB

    我有 2 个相同 Web 应用程序的实例在端口 8080 和 8081 上运行 我需要使用 ALB CLB 进行负载平衡 这在旧的 apache Web 服务器中曾经是一件简单的事情 要求是对下面的实例进行负载平衡 实例 1 Web 应用程
  • 在图像上使用文本塑造形状

    所以我想使用 CSS 在图像上放置一个三角形 确切地说是一个包含一些文本的三角形 像这样的事情 https sketch io render sk 11fa7e2aeba09cb08372f831f84d9af2 jpeg https sk
  • 在React JS中实现状态变化时的过渡效果

    我的 React 页面上有一张图像 当状态更新为新图像时我想执行以下过渡效果 原始图像应该放大和淡出 新图像还应该放大和淡入 效果应该类似于穿过墙壁到达新场景 我怎样才能在 React 中做到这一点 正如 pgsandstrom 提到的 反
  • 使
  • 元素拉伸得比包含的
  • 目前 我正在开发一个工作布局 但我对动态下拉菜单有点困惑 我在 li 元素中使用子 ul 该元素将显示导航链接的子项 但上面的 li 因此是主要的 您将鼠标悬停在其上以查看子项 延伸到 ul 的长度 当然是由其中的 li 元素的宽度定义的
  • 如何使用KeyEventDispatcher

    我一直在尝试制作一个 Pong 克隆作为初学者的项目 但我遇到了障碍 我已经设法达到键盘支持的目的 但是键盘重复延迟开始出现 我还没有找到任何可用的方法来使用 KeyEventDispatcher 它甚至不会启动dispatchKeyEve
  • 使用 boto3 列出 100 多个堆栈

    我们需要列出所有处于 CREATE COMPLETE 状态的堆栈 在我们的 AWS 账户中 我们有超过 400 个这样的堆栈 我们为此编写了以下代码 stack session session client cloudformation l
  • 正向回顾与非捕获组:不同的行为

    我使用 python 正则表达式 remodule 在我的代码中并注意到在这些情况下的不同行为 re findall r s a z a xyz b abc non capturing group results in a xyz b ab
  • QT/C++ - 从不同的类访问 MainWindow UI

    我是 C 和 Qt 的初学者 所以这也许是微不足道的 当然感觉应该很简单 但我已经寻找答案几个小时了 但找不到解决方案 我正在制作一个简单的棋盘游戏 其中 MainWindow 的 ui 用 QtDesigner 制作 包含游戏板的画布 Q
  • 如何向列表添加多种数据类型

    我的清单如下 var serie line new name series name data new List
  • 函数构造函数与函数语句

    today 我读过我们有一种通过函数构造函数声明函数的方法 http www tutorialspoint com javascript javascript function constructors htm 但我从未见过使用的实际实现F
  • 敲除无法处理绑定“foreach”

    我是 Knockout 的新手 我正在构建一个实际上是大型计算器的应用程序 到目前为止 我在一个页面上运行了两个淘汰赛实例 一个实例工作得很好 但另一个实例完全损坏并且似乎根本无法注册 下面是我的 Javascript fetchYear
  • 使用 Springfox 在 Swagger UI 文档中添加标头参数

    我想在我的 Rest 服务的自动生成的 swagger ui 文档中添加一个标头参数字段 我使用 Spring 和 Springfox public ResponseEntity
  • 在 Objective-C 中将小数转换为分数?

    我试图将小数点后的所有内容显示为分数 找不到关于 Objective c 的太多关于如何实现这一点的信息 我在用double对于我的变量格式 不确定这是否重要 这就是我格式化答案的输出的方式 theTextField setText NSS
  • Rails 4 - 如何自动检测用户的位置并将其显示在网络应用程序上?

    我目前有一个正在运行的应用程序 我希望 Rails 通过 IP 地址检测访问者的位置 并在我的网站主页上显示城市和州 例如 它将显示 Hello Name from City State 访客无需输入任何内容 我知道 GeoIP 和地理编码
  • R中将长列表分成指定长度的短列表

    这与之前的一个问题密切相关here https stackoverflow com questions 45663125 divide long list into shorter lists in r 然而我需要一些稍微不同的东西 我有一
  • ASP.NET MVC - 将 JSON DateTime 传递到控制器而不映射到控制器参数

    我正在使用 jQuery 日历来显示事件 该日历旨在从服务器提取数据 在初始化时 日历会触发 AJAX 请求以获取事件对象数组 json 编码 到目前为止一切都很好 但是 此请求包含 JSON 编码的日期和时间 至少我的实现是这样 代码如下
  • 反应式形式不接收默认输入值

    我正在使用 Angular 并且有一个用于编辑项目的反应形式 当我打开组件进行编辑时 输入会正确加载对象的值 但如果我不单击输入并更改值 则反应形式的值将为空 我的代码在这里
  • Go 支持易失性/非易失性变量吗?

    我是这门语言的新手 所以请耐心等待 我很好奇 GO 如何处理线程可用的数据存储 从某种意义上说 非局部变量也可以是非易失性的 例如在 Java 中 GO 有通道的概念 从本质上讲 线程间通信意味着它绕过处理器缓存 直接读 写堆 另外 在 g
  • Python 中有“multimap”实现吗?

    我是 Python 新手 并且熟悉以下的实现多重地图 http en wikipedia org wiki Multimap in other http www sgi com tech stl Multimap html 语言 http
  • 无法在 PHP 中注销[重复]

    这个问题在这里已经有答案了 我正在尝试用 PHP 制作注册 登录表单 但无法注销 我不断收到以下错误 致命错误 未捕获的 ArgumentCountError 函数 USER construct 的参数太少 第 4 行在 C xampp h