wobblyfrogs Posted October 26, 2009 Share Posted October 26, 2009 Help...Am a complete newbie to programming so my code is prolly quite long. Am trying to verify a users details entered into a login form against details stored in an existing flat file. No matter what I input, I get "not registered", even if it does match. What have I done wrong? I have spent 3 LOOng afternoons trying to nut this out..now am going nuts.... <?php if ($_POST['submit']=="submit") { $errormessage = ""; if (empty($_POST['userName']) ||empty($_POST['password'])) { $errormessage = "<p>Please enter a user name and password</p>"; } else { $userName=trim($_POST['userName']); $password=trim($_POST['password']); // check user name and password $nameFlag=false; $passwordFlag=false; $fp = fopen($_SERVER['DOCUMENT_ROOT']."/toys/users.txt","r" ); while (!feof($fp)) { $line=fgets($fp,100); ($userName== $line? $nameFlag=true : $nameFlag=false); ($password==$line? $passwordFlag=true : $passwordFlag=false); } fclose($fp); if($nameFlag && $passwordFlag==true) { $foundFlag= true; } else { $foundFlag=false; } ($foundFlag==true?$welcome= "Welcome ".$userName." you are now logged in":$sorry= "Sorry you are not registered"); } } ?> // my html form below <form method="post" action="<?=$_SERVER['PHP_SELF']?>" > <fieldset class="outline"> <h3>Registered customers</h3> <label>User Name:</label> <input type="text" class="login" value="" name="userName" id="userName" /> <label>Password:</label> <input type="text" class="login" value="" name="password" id="password"/> <br /> <br /> <input type="submit" value="submit" name="submit" id="submit"/> <br /> <?=$errormessage?> <br /> </fieldset> </form> Quote Link to comment https://forums.phpfreaks.com/topic/179033-solved-compare-user-input-to-flat-file-data/ Share on other sites More sharing options...
Bricktop Posted October 26, 2009 Share Posted October 26, 2009 Hi wobblyfrogs, The problem is with this line: if($nameFlag && $passwordFlag==true) The syntax is incorrect, when evaluating more than one variable in a single if statement (a multiple conditional statement) you must write it in the following way: if($nameFlag==true && $passwordFlag==true) Hope this helps. Quote Link to comment https://forums.phpfreaks.com/topic/179033-solved-compare-user-input-to-flat-file-data/#findComment-944583 Share on other sites More sharing options...
wobblyfrogs Posted October 26, 2009 Author Share Posted October 26, 2009 Thank you I will try that as soon as I get home after work tonight :0) Quote Link to comment https://forums.phpfreaks.com/topic/179033-solved-compare-user-input-to-flat-file-data/#findComment-944940 Share on other sites More sharing options...
wobblyfrogs Posted October 27, 2009 Author Share Posted October 27, 2009 I changed the code to what was suggested as below if($nameFlag==true && $passwordFlag==true) but it still doesn't work.... I don't know what else to try. Is my logic even correct? Quote Link to comment https://forums.phpfreaks.com/topic/179033-solved-compare-user-input-to-flat-file-data/#findComment-945162 Share on other sites More sharing options...
cags Posted October 27, 2009 Share Posted October 27, 2009 Is my logic even correct? Erm... no. I don't believe so. $line=fgets($fp,100); ($userName== $line? $nameFlag=true : $nameFlag=false); ($password==$line? $passwordFlag=true : $passwordFlag=false); You read in a line from the file, you then compare $usename to that line, followed by $password, the only way this could ever return true would be if the userName and password are the same, which doesn't sound right to me. Even if that was the case there would be no need to compare them both as if they were the same and one matched, theres no point checking the other. What exactly does your txt file look like? Is it something like... username1, password1 username2, password2 ... username1100, password1100 Quote Link to comment https://forums.phpfreaks.com/topic/179033-solved-compare-user-input-to-flat-file-data/#findComment-945276 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.