52

ユーザー名とパスワードを txt ファイルの新しい行に書き込もうとしています。出力は、txt ファイルで次のようになります。これはあまり安全ではないことはわかっていますが、学習目的のためだけです

Sebastian   password
John        hfsjaijn

これは私がこれまでに持っているものです

if(isset($_GET['register'])) //  
{
    $user  = $_GET['username'];
    $password=$_GET['password'];
    $fh = fopen("file.txt","a+");
    fwrite($fh,$user."\n"); //write to txtfile
    fwrite($fh,$password."\n"); // write to txtfile
    fclose($fh);
}

編集:これが私にとっての解決策です:

if (isset($_POST['register'])) {
   $user  = $_POST['username'];
   $password = $_POST['password'].PHP_EOL;
   $fh = fopen("file.txt","a+");
   fwrite($fh,$user." ".$password); //write to txtfile
  
   fclose($fh);
}
4

4 に答える 4

112

PHP_EOLを生成する使用\r\nまたは\n

$data = 'my data' . PHP_EOL . 'my data';
$fp = fopen('my_file', 'a');
fwrite($fp, $data);
fclose($fp);

// ファイル出力

my data
my data
于 2013-02-28T08:03:55.680 に答える
1
fwrite($handle, "<br>"."\r\n");

これを下に追加

$password = $_POST['password'].PHP_EOL;

これ。.

于 2014-12-02T20:53:44.240 に答える
1

ユーザー名とパスワードの両方に改行を追加します。つまり、出力は次のようになります。

Sebastian
password
John
hfsjaijn

代わりに使用fwrite($fh,$user." ".$password."\n");して、両方を 1 行に表示します。
または、fputcsv()を使用してデータを書き込み、fgetcsv()フェッチします。このようにして、少なくとも次のようなエンコードの問題を回避できます$username='Charles, III';

...つまり、プレーンパスワードをプレーンファイルに保存し、このタイプの操作に _GET を使用することに関するすべての間違いを脇に置いてください (代わりに _POST を使用してください) ;-)

于 2013-02-28T08:01:55.163 に答える