0

POST メソッドで取得した文字列と .txt ファイル内の文字列を比較したい... match do アクションがある場合...これを取得したのですが、ループを通過できないようです...メールに一致し、.txt の 3 つおきの文字列がメール文字列です。これが 3 ずつ反復する理由です...

<?php

$email = $_POST['user'];
$password = $_POST['pass'];
$filename = 'C:\xampp\htdocs\www\zavrsni\emailList.txt';

if (($row = file_get_contents($filename)) != '') {
    $wordsArray = explode(' ', $row);
    for ($i=0; $i<sizeof($wordsArray); $i+3) {
        if (strcmp($wordsArray[$i], $email) == 0){
            //some action
            exit();
        }
    }
}
?>
4

1 に答える 1

0
<?php

/* content of emailList.txt
user_1 password_1 test1@default.com
user_2 password_2 test2@default.com
user_3 password_3 test3@default.com
user_4 password_4 test4@default.com
user_999 password_999 test999@default.com
user_5 password_5 test5@default.com
*/

// set POST for testing only!!
$_POST['user'] = 'test999@default.com';
$_POST['pass'] = 'test';
//
$email = $_POST['user'];
$email = strtolower($email);
$password = $_POST['pass'];
$filename = './emailList.txt';

// read entire file into an array, skipping empty lines and not adding return characters
$trimmed_file_array = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach ($trimmed_file_array AS $row) {
  //print $row.'<br>';
  list($f_user, $f_password, $f_email) = explode(' ', $row);
  $f_email = strtolower($f_email);
  if ($email === $f_email) {
    print 'found user: '.$f_user.' - password: '.$f_password.' - email: '.$f_email.'<br>';
    break;
  }
}

?>
于 2012-04-25T18:08:42.763 に答える