Home » Php » PHP fwrite new line

PHP fwrite new line

Posted by: admin April 23, 2020 Leave a comment

Questions:

I’m trying to write username and password to a new line in a txt file.
The output should be something like this in the txt file.
I know this is not very secure but its just for learning purposes

Sebastian   password
John        hfsjaijn

This is what i have so far

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);
}

EDIT: Here’s the solution

   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);
    }

    ?>
How to&Answers:

Use PHP_EOL which produces \r\n or \n

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

// File output

my data
my data

Answer:

You append a newline to both the username and the password, i.e. the output would be something like

Sebastian
password
John
hfsjaijn

use fwrite($fh,$user." ".$password."\n"); instead to have them both on one line.
Or use fputcsv() to write the data and fgetcsv() to fetch it. This way you would at least avoid encoding problems like e.g. with $username='Charles, III';

…i.e. setting aside all the things that are wrong about storing plain passwords in plain files and using _GET for this type of operation (use _POST instead) 😉

Answer:

     fwrite($handle, "<br>"."\r\n");

Add this under

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

this. .

Answer:

How about you store it like this?
Maybe in username:password format, so

sebastion:password123
anotheruser:password321

Then you can use list($username,$password) = explode(':',file_get_contents('users.txt'));
to parse the data on your end.