Try:
<?php
session_start();
function response( $text ) {
echo $text;
return;
}
$bad_user = "Invalid User Name";
$bad_pass = "Invalid Password";
$good_log = "Valid User. Login Successful";
$usr = $_POST['username'];
$pass = $_POST['password'];
$valid_match = "/([a-z0-9-_])+/i";
if( !preg_match( $valid_match, $usr ) ) {
return response( $bad_user );
} elseif( !preg_match( $valid_match, $pass ) ) {
return response( $bad_pass );
}
$users = file_get_contents( "users.txt" );
$results = array();
$valid_match = "/($usr):($pass)?/";
if( preg_match( $valid_match, $users, $results ) ) {
if( !$results[ 2 ] ) {
return response( $bad_pass );
} else {
return response( $good_log );
}
} else {
return response( $bad_user );
}
?>
Boysenberry
boysenberrys.com | habitatlife.com | selfgnosis.com
On Dec 27, 2005, at 6:55 PM, Christopher Deeley wrote:
I am trying to use the following script to verify my users against a
text file where each line is in the format username:password.
This is my script below. It worked fine until I started adding more
users to the text file and it wouldn't recognise them. It will only
show as a valid user if it matches the last entry in the text file.
<?PHP
session_start();
$usr = $_POST['username'];
$pass = $_POST['password'];
$filename = 'users.txt';
$fp = fopen( $filename, 'r' );
$file_contents = fread( $fp, filesize( $filename ) );
fclose( $fp );
$lines = explode ( "\n", $file_contents );
foreach ( $lines as $line ){
list( $username, $password ) = explode( ':', $line );
}
if($username !== $usr){
echo 'invalid username';
die;
}
if ( ( $usr == $username ) &&
( $pass == $password ) ) {
echo 'Valid User. Login Successful';
}
else{
echo 'Invalid Password';
}
?>
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [EMAIL PROTECTED]
" from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]