Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-CSV文件正在被覆盖_Php_Csv - Fatal编程技术网

PHP-CSV文件正在被覆盖

PHP-CSV文件正在被覆盖,php,csv,Php,Csv,编辑:修复了密码问题 我在处理一个小问题。我正试图写入一个.csv文件来存储crypt()输出的输出。我正在寻找基线安全性,因为它将在我的局域网上本地保存,我只是想使用crypt()开始学习如何使用它。我遇到的问题是,每次尝试添加新用户时,.csv的第一行都会被覆盖。这是代码,请随意处理,并提前感谢大家!(哦,而且密码没有被正确比较,我也会一直在处理这个问题) 您需要使用fopen('test.csv','a')您的w指令将文件指针放在文件的开头,而不考虑文件中的内容a(追加)将文件指针放在文件

编辑:修复了密码问题

我在处理一个小问题。我正试图写入一个.csv文件来存储crypt()输出的输出。我正在寻找基线安全性,因为它将在我的局域网上本地保存,我只是想使用crypt()开始学习如何使用它。我遇到的问题是,每次尝试添加新用户时,.csv的第一行都会被覆盖。这是代码,请随意处理,并提前感谢大家!(哦,而且密码没有被正确比较,我也会一直在处理这个问题)


您需要使用
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