PHP-CSV文件正在被覆盖
编辑:修复了密码问题 我在处理一个小问题。我正试图写入一个.csv文件来存储crypt()输出的输出。我正在寻找基线安全性,因为它将在我的局域网上本地保存,我只是想使用crypt()开始学习如何使用它。我遇到的问题是,每次尝试添加新用户时,.csv的第一行都会被覆盖。这是代码,请随意处理,并提前感谢大家!(哦,而且密码没有被正确比较,我也会一直在处理这个问题)PHP-CSV文件正在被覆盖,php,csv,Php,Csv,编辑:修复了密码问题 我在处理一个小问题。我正试图写入一个.csv文件来存储crypt()输出的输出。我正在寻找基线安全性,因为它将在我的局域网上本地保存,我只是想使用crypt()开始学习如何使用它。我遇到的问题是,每次尝试添加新用户时,.csv的第一行都会被覆盖。这是代码,请随意处理,并提前感谢大家!(哦,而且密码没有被正确比较,我也会一直在处理这个问题) 您需要使用fopen('test.csv','a')您的w指令将文件指针放在文件的开头,而不考虑文件中的内容a(追加)将文件指针放在文件
您需要使用
fopen('test.csv','a')
您的w
指令将文件指针放在文件的开头,而不考虑文件中的内容<代码>a(追加)将文件指针放在文件末尾。请确保在每个条目的末尾都写一个换行符,否则它们只会堆在第一行。非常感谢!工作得很好!
<?php
$usr = $_GET['user'];
$pass = $_GET['pass'];
$salt = '$2a$07$jjskdkwidjfjvjfjskalclzjohwuvnounbfonwfnwgnwlfjn';
$c_usr = crypt($usr,$salt);
$c_pass = crypt($pass,$salt);
echo $usr . ' - ' . $c_usr;
echo "<br>" . $pass . ' - ' . $c_pass;
if (file_exists('test.csv')) {
echo '<br>file exists';
$csvFile = file('test.csv');
$data = [];
$c = 0;
foreach ($csvFile as $line) {
$data[] = str_getcsv($line);
list($r_usr,$r_pwd) = split(" - ", implode(" ", $data[$c]));
if ($r_usr === $c_usr) {
echo "<br>user in database";
if ($r_pwd === $c_pass) {
echo "<br> password correct";
} else {
echo "<br> incorrect password";
}
} else {
echo "user not in database";
$data = array(
$c_usr . ' - ' . $c_pass
);
$fp = fopen('test.csv', 'w');
foreach ( $data as $line ) {
$val = explode(",", $line);
fputcsv($fp, $val);
}
fclose($fp);
echo "user now in database";
}
$c++;
}
} else {
$data = array(
$c_usr . ' - ' . $c_pass
);
$fp = fopen('test.csv', 'w');
foreach ( $data as $line ) {
$val = explode(",", $line);
fputcsv($fp, $val);
}
fclose($fp);
}
?>
http://localhost/?user=bob&pass=1234