0

登録ページを設計したので、ログイン ページから入力を取得し、それを外部ファイルと照合する必要があります。(MySQLの方が簡単なのは理解していますが、これはプロジェクト用であり、 MySQLをまったく使用できません。)

私は外部ファイルを持っています:

fname, sname, username, password, e-mail

txt ファイルでユーザー名とパスワードを確認する必要があります。私のログインページは次のようになります。

<form action="logon.php" method="POST">
    <p>Username: <input type="text" name="username"/></p>
    <p>Password:  <input type="password" name="password"/></p>
    <input type="submit" value="Submit">
</form>
<a href="register.php">Register Here</a>
<?php               
$username= $_POST['username'];
$password= $_POST['password'];
$contents = file_get_contents($file);
$arrangefile = preg_split( '/\n/' , $contents );
$found = false;

foreach ( $arrangefile as $items ) {
   $data = explode ( ',' , $items );
}
} ?> 
4

2 に答える 2

0

ええと...そのようにするのは奇妙な考えだと言わなければならないことは別として、に置き換えることができfile_get_contents()ますfile(). 一度にファイルの 1 行の配列が生成されます。これにより、解析がずっと簡単になります。foreach行をトークン化し、ユーザー名とパスワードを抽出する必要があります。その後、それらを一致させることができます。

次のようになります。

<?php               
$username= $_POST['username'];
$password= $_POST['password'];
$contents = file($file);
$found = false;

foreach ($file as $line) {
   $data = explode(', ', $line);
   if (($username === $data[2]) && ($password === $data[3])) {
      $found = true;
   }
 }
 ?> 
于 2013-01-13T09:25:22.973 に答える
0

次のようなことができます。

<form action="logon.php" method="POST">
    <p>Username: <input type="text" name="username"/></p>
    <p>Password:  <input type="password" name="password"/></p>
    <input type="submit" value="Submit">
</form>
<a href="register.php">Register Here</a>
<?php               
$username= $_POST['username'];
$password= $_POST['password'];
$lines = file ($file);
$found = false;

foreach ($lines as $line) {
    $line = str_replace (' ', '', $line);
    $cols = explode (',', $line);

    $_username = $cols[2];
    $_password = $cols[3];

    if ($username == $_username && $password == $_password) {
        $found = true;
        break;
    }
}

// Do something with $found
if ($found) {
    // yay
}
else {
    // aww :(
}
?> 

編集:もう少し説明。file()ファイルのすべての行をarray(). 各要素は、ファイル内の行を表します。あなたはa, b, cフォーマットのデータを持っていると言った。簡単str_replace()にするために、すべてのスペースを削除するために使用します。あとは、データを取得して結果を比較するexplode()だけです。explode()

お役に立てれば。

于 2013-01-13T09:27:57.653 に答える