Jump to content

Archived

This topic is now archived and is closed to further replies.

maciek4

reading from file problem

Recommended Posts

I have a simple login form id and password and I want to read 2 lines from the file password.txt

my code:

<?php
$lines=file('password.txt');
if (isset ($_POST['id']) && isset ($_POST['pass']))
{
if ($_POST['id'] != $lines[0] && $_POST['pass'] != $lines[1])
{

echo'form<>' ; //form goes here
echo'try again';
}
else
{

$_SESSION['id'] = "$lines[0]";
$_SESSION['pass'] = "$lines[1]";
header("Location: edit.php");
exit();
}
}
else
{
echo'form<>'; //form goes here
}
?>

The file password.txt has 2 lines and as a result no matter if I type in the user id and password correctly or
not, I am getting try again message. What did I do wrong?

If I substitute $_POST['id'] != $lines[0] by $_POST['id'] !="admin" it works fine, but I wanted to read from the
file. Thanks

Share this post


Link to post
Share on other sites
Try print_r($lines) to see whether its reading the file properly.

BTW This is probably a major security hole...you could at least encrypt the values or better yet encrypt them and set them as constants in a PHP file.

Share this post


Link to post
Share on other sites
When you read information from a file the resulting data includes the line terminating character(s). You need to compare against the TRIMed value:
[code]<?php
if (isset ($_POST['id']) && isset ($_POST['pass']))
   if ($_POST['id'] != trim($lines[0]) && $_POST['pass'] != trim($lines[1]))
   {
    echo'form<>'; //form goes here
    echo'try again';
?>[/code]

Ken

Share this post


Link to post
Share on other sites
[!--quoteo(post=359273:date=Mar 28 2006, 04:00 PM:name=kenrbnsn)--][div class=\'quotetop\']QUOTE(kenrbnsn @ Mar 28 2006, 04:00 PM) [snapback]359273[/snapback][/div][div class=\'quotemain\'][!--quotec--]
When you read information from a file the resulting data includes the line terminating character(s). You need to compare against the TRIMed value:
[code]<?php
if (isset ($_POST['id']) && isset ($_POST['pass']))
   if ($_POST['id'] != trim($lines[0]) && $_POST['pass'] != trim($lines[1]))
   {
    echo'form<>'; //form goes here
    echo'try again';
?>[/code]

Ken
[/quote]

It worked fine now. Thank you. This is my 2nd day learning php so I didn't know about this. trim($lines[0]) solved the problem.

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.