如何使用 php 替换 CSV 文件中一行中的 1 个值?

2023-12-03

这是我非常简单和基本的帐户系统(只是一个学校项目),我希望用户能够更改他们的密码。但我不确定如何仅替换一行中的密码值,保持所有其他值相同。

CSV 文件:

ID,Username,Email,DateJoined,Password,UserScore,profilePics
1,Test,[email protected],03/12/2014,Test,10,uploads/profilePics/Test.jpg
2,Alfie,A[email protected],05/12/2014,1234,136,uploads/profilePics/Alfie.png

PHP: (“cNewPassword”=确认新密码)

<?php
session_start();
if(empty($_POST['oldPassword']) ||  empty($_POST['newPassword']) || empty($_POST['cNewPassword'])) {
    die("ERROR|Please fill out all of the fields.");
} else {
    if($_POST['newPassword'] == $_POST['cNewPassword']) {
        if ($_POST['oldPassword'] == $_SESSION['password']) {

            $file = "Database/Users.csv";
            $fh = fopen($file, "w");
            while(! feof($file)) {
                $rows = fgetcsv($file);
                if ($rows[4] == $_POST['oldPassword'] && $rows[1] == $_SESSION['username']) {
                    //Replace line here
                    echo("SUCCESS|Password changed!");
                } 
            }
            fclose($file);
        }
        die("ERROR|Your current password is not correct!");
    }
    die("ERROR|New passwords do not match!");
}
?>

您必须以读取模式打开文件,以写入模式打开临时文件,写入修改后的数据,然后删除/重命名文件。我建议尝试设置一个真正的数据库并使用它,但如果您要使用 csv,代码应该或多或少像这样:

$input = fopen('Database/Users.csv', 'r');  //open for reading
$output = fopen('Database/temporary.csv', 'w'); //open for writing
while( false !== ( $data = fgetcsv($input) ) ){  //read each line as an array

   //modify data here
   if ($data[4] == $_POST['oldPassword'] && $data[1] == $_SESSION['username']) {
      //Replace line here
      $data[4] = $_POST['newPassword'];
      echo("SUCCESS|Password changed!");
   }

   //write modified data to new file
   fputcsv( $output, $data);
}

//close both files
fclose( $input );
fclose( $output );

//clean up
unlink('Database/Users.csv');// Delete obsolete BD
rename('Database/temporary.csv', 'Database/Users.csv'); //Rename temporary to new

希望能帮助到你。

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

如何使用 php 替换 CSV 文件中一行中的 1 个值? 的相关文章

  • PHP PDO:将数据作为对象获取 - 在调用 __construct 之前分配的属性。它是否正确?

    完整的问题应该是 这是正确的还是我不能指望的错误 为什么这是正确的行为 我一直在更多地使用 PDO 特别是直接将数据提取到对象中 在这样做的过程中我发现了这一点 如果我直接将数据获取到像这样的对象中 STH DBH gt prepare S
  • Symfony2 - Doctrine - 更新后没有更改集

    因此 当实体的某个值发生更改时 我会发送电子邮件 我只想在更新后发送电子邮件 以防更新因任何原因失败 所以在更新前我可以这样做 public function preUpdate LifecycleEventArgs args if arg
  • PHP cURL 代理带标头?

    我正在制作一个 PHP 图像代理脚本 我需要它不仅能够回显其请求的图像的内容 而且还能够以相同的方式重现图像请求的标头 我见过一个 另一个 但没有同时看到过 这些 cURL 选项让我感到困惑 我该怎么做 抱歉 我不确定你想要什么 这是从图像
  • 如何在 PHP 中验证电子邮件? [复制]

    这个问题在这里已经有答案了 如何使用 php5 验证输入值是有效的电子邮件地址 现在我正在使用这段代码 function isValidEmail email pattern a z0 9 a z0 9 a z0 9 a z0 9 a z
  • 为什么 foreach 这么慢?

    PHPBench com http www phpbench com 在每个页面加载上运行快速基准测试脚本 在 foreach 测试中 当我加载它时 foreach 的运行时间是第三个示例的 4 到 10 倍 为什么本机语言构造明显比执行逻
  • 用 PDO 和准备好的语句替换 mysql_* 函数

    我总是做简单的连接mysql connect mysql pconnect db mysql pconnect host user pass if db echo strong Error strong Could not connect
  • password_verify 哈希值与密码不匹配

    我使用下面的代码生成了密码哈希 hash password hash test PASSWORD BCRYPT 然后我使用 255 个字符将其存储在数据库中 然后我尝试使用比较器来测试登录 但失败了 它只允许我使用我之前刚刚生成的几行哈希登
  • 散列 hash_hmac 时,Convert.ToChar(0) 散列结果与 PHP 中的 chr(0) 不同的字符串

    我在 PHP 中有一个字符串 它被转换为字节数组并进行哈希处理 转换为字节数组的字符串如下所示 G 字符 0 便便 我需要 C 中的等效字节数组 这样我才能得到相同的哈希值 编辑 这是完整的问题 生成的哈希值不同 PHP api secre
  • PHP JSON 解析出现错误

    我正在尝试使用 PHP 解析 JSON 字符串 使用 jQuery 将 JSON 发送到 PHP 文件 ajax在这种格式中 value 59 value 7 value 46 但由于某种奇怪的原因我不断收到此错误 Invalid argu
  • Laravel 作为客户端时,用于身份验证的 JWT 存储在哪里?

    我使用 Laravel 6 和 GuzzleHTTP 7 我可以设法向外部 REST API 发出请求并成功授权并取回令牌 access token FooXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 eyJleHAiOj
  • 全局变量的问题

    我在 PHP 中包含页面时遇到问题 图片显示了我想做的事情 我想在我的 index php 页面中包含水平和垂直菜单 但现在我只能包括其中之一 在 global php 中有数据库名称 密码和定义我现在使用的语言的变量 我包含了所有衍生词
  • Laravel-Excel批量导入

    所以 我有一个 28k 行的 Excel 文件 我想加载它 然后插入数据库 但它刚刚停止 空格处 我尝试减少到 5k 数据 它有效 但速度太慢我也尝试过使用chunk http www maatwebsite nl laravel exce
  • 使用资源控制器的存储方法上的 Laravel 5.1 MethodNotAllowedHttpException

    我正在尝试利用资源控制器将记录添加到数据库 但是收到 MethodNotAllowedHttpException 错误 我已经经历过几个类似的问题 比如this https stackoverflow com questions 29327
  • MySQL LOAD_FILE 返回 NULL

    我正在做这个SELECT LOAD FILE home user domains example com public html robots txt AS tmp FROM tmpTable但它返回 NULL 如何检查这是因为我没有 FI
  • Laravel:调用未定义的函数 Symfony\Component\Console\mb_convert_variables()?

    我正在运行普通 Amazon EC2 服务器 我自己安装了 PHP 5 5 21 我的 Web 应用程序是基于 Laravel 构建的 几个星期以来 一切都进展顺利 然而 现在 当运行 Laravel 命令来更新数据库架构时 php 工匠迁
  • VB.NET 密码哈希函数的 PHP 等效项 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有以下 Visual Basic NET 函数 用于生成存储在内部数据库中的密码哈希值 Public Function HashPass
  • PHP:检查多维数组中的重复值

    我对多维数组有这个问题 给定以下多维数组 Array 0 gt Array a b c 1 gt Array x y z 2 gt Array a b c 3 gt Array a b c 4 gt Array a x z 我想检查它的值并
  • C# 中 PHP 的快速解析

    我需要用 C 解析 PHP 文件 我们本质上要求另一个国家的一些开发人员上传 PHP 文件 上传后我们需要检查 php 文件并获取所有方法和类 函数等的列表 我想过使用正则表达式 但我无法确定一个函数是否属于一个类等 所以我想知道是否已经有
  • PHP:password_hash 的“salt”选项已弃用

    我正在使用密码哈希进行注册 我需要手动创建一个 Salt 以下是我使用的代码 options cost gt 11 salt gt mcrypt create iv 22 MCRYPT DEV URANDOM password passwo
  • 在 Symfony 2 项目中安装 Bootstrap 主题

    我正在考虑安装这个主题 http bootswatch com superhero 在我的SF2项目中 我注意到页面顶部有4个文件可供下载 即 bootstrap min css 引导程序 css 无变量 bootswatch less 我

随机推荐

  • PHP mail() 附件已损坏

    我一直在努力尝试使用 PHP 发送带有附件的电子邮件 它曾经有效 但消息正文被打乱 现在我的邮件正文可以正常工作 但附件已损坏 我曾经对消息正文使用 Base64 编码 但现在使用 7 位 谁能告诉我我做错了什么 PS请不要告诉我应该使用预
  • 页面刷新后 $stateParams 为 null

    当通过 state go 传递 stateParams 时 当我直接单击链接时 它会正确显示 但在页面刷新或通过另一个窗口打开后会变为 null 我有以下功能 scope urlvalues function url page var re
  • 如何使用Http缓存控制保存firestore请求?

    假设我有一个运行 firebase firestore 数据库的网络 移动应用程序 我的应用程序设置为主要服务动态内容完全存储在 firestore 中 所以我们讨论的是缓存动态内容 例如 如果用户加载页面 A 它将向 firestore
  • python-捕获分子的晶格结构-无法正常工作

    我有这个问题 创建一个程序 构造一 1 维的晶格并 100000 个站点 在这个格子中随机放置一些陷阱 分子 其浓度为 c 随机放置 1 个粒子 放在格子上并让它执行随机游走 在这次行走中 您不会设置时间限制 即您不会声明 具体步数 当粒子
  • 为自定义视图添加圆角

    我对 Android 很陌生 我正在尝试在自定义视图 使用画布 上绘图 我那里有一些线条和矩形 关键是 我现在想要给整个视图提供圆角 但这效果不好 因为我在视图上绘图 而我的绘图位于圆角之上 这些圆角是通过资源添加的 是否可以添加覆盖整个视
  • 在 Cloud Build 步骤中执行 BigQuery 查询

    我正在使用 Cloud Buildgcloud建设者 我覆盖entrypoint to be bq这样我就可以在构建步骤中运行一些 BigQuery SQL 以前 我将 SQL 直接嵌入到 Cloud Build 的 YAML 配置中 这工
  • ACRA 与 android:如何在报告崩溃之前执行代码

    我正在使用 ACRA 和我的 Android 应用程序 我的问题是 当发生崩溃时 如何确保在报告崩溃之前执行一些代码 我的意思是我想在崩溃发生时添加一些自定义变量 以便我知道应用程序处于什么状态 请帮忙 谢谢 按照描述实现您自己的发件人he
  • Sublime Text 3 查找在文件末尾停止

    如果我有一个文本文件 1 foo 2 foo 3 foo 4 foo ctrl f will find the 1 then 2 and after finding 4 it ll say No results 以前只是跳转到1 再次 在我
  • 在Python中使用函数之前应该先定义它吗?

    函数应该在使用之前定义吗 但为什么下面的代码有效 def main dog def dog print This is a dog if name main main 我的意思是dog 是在调用后定义的 这是如何工作的 实际上不是 在调用后
  • BigQuery 有区域限制或其他区域之间有延迟吗?

    我想从 GCE 实例将数据存储在 BigQuery 上 并从不同区域实例查询它 例如 存储来自欧盟实例的数据 查询来自美国实例的数据 这是否可以毫不拖延地实现 我认为将数据复制到其他区域需要一些时间 BigQuery 有区域限制 很少有 像
  • 将字符串转换为小数,保留分数

    我正在尝试转换1200 00 to decimal but Decimal Parse 删除 00 我尝试过一些不同的方法 但它总是删除 00 除非我提供一个不同于 0 的分数 string value 1200 00 Method 1 v
  • Tensorflow 中的 8 位量化错误

    我一直在尝试新的8位量化功能在 TensorFlow 中可用 我可以毫无问题地运行博客文章中给出的示例 googlenet 的量化 并且它对我来说效果很好 现在 我想将同样的方法应用于更简单的网络 因此 我使用了 CIFAR 10 的预训练
  • 为什么Volley DiskBasedCache拼接时不直接获取缓存文件名

    Creates a pseudo unique filename for the specified cache key param key The key to generate a file name for return A pseu
  • SpelEvaluationException 找不到方法

    当我尝试使用 SpEL 将 User 传递给服务方法时 我面临下一个问题 evaluate expression commonService userTest user result flowScope user 春天抛出了以下异常 org
  • 多个 HTTP 授权标头?

    是否可以在 HTTP 消息中包含多个授权标头 具体来说 我想包括一种承载令牌类型 传递 OAuth 访问令牌 和一种基本类型 传递 base64 编码的用户名 密码 GET presence alice HTTP 1 1 Host serv
  • Python Flask Web 应用程序导航无需刷新页面

    我想开发一个像Google Contacts一样的Flask导航栏 当我单击每个导航按钮 如图所示的绿色框 时 我想在红色框内渲染特定的 HTML 页面 如图所示 而不刷新页面 我已经尝试过使用 扩展 layout html 正如 Klau
  • 通过文本框在 sql server 2005 中存储数据时出现错误

    我通过文本框和按钮在 SQL Server 2005 中存储数据 大约 1500 个字 我正在使用这段代码 protected void Button1 Click object sender EventArgs e conn Open S
  • 碰撞检测实施

    我有一个碰撞检测类 它通过查找中心之间的距离以及该距离是否足够小而足以发生碰撞来工作 请参阅碰撞检测错误 我的问题是试图让它真正发挥作用 椭圆形会发生碰撞 如果有必要 我会解释更多 谢谢 最好的方法是在图像重叠时实现每像素碰撞检测 您可以在
  • 字符串比较:与 PHP 中 JavaScript 的 localeCompare 相同吗?

    有没有办法让 PHP 中的字符串比较函数与 JavaScript 的相同string localeCompare 我的目标是制作一个可以应用于 PHP 和 JS 中的简单对象的哈希器 属性排序可以根据这个问题来解决 按属性值对 JavaSc
  • 如何使用 php 替换 CSV 文件中一行中的 1 个值?

    这是我非常简单和基本的帐户系统 只是一个学校项目 我希望用户能够更改他们的密码 但我不确定如何仅替换一行中的密码值 保持所有其他值相同 CSV 文件 ID Username Email DateJoined Password UserSco