2012-02-12 7 views
0

私のnow()関数は時々tempramentalです。時々mysqlの値を記録することがあります。特に、ユーザー名とパスワードを入力してログインボタンをクリックするのではなく、Enterキーを押してバイパスしている場合は特にそうです。私は自分のコードを添付しました。now()関数がtempratmentalである

+0

あなたの質問に対して、よりわかりやすいタイトルが見つかりませんでしたか?あなたのコードをもっとうまくフォーマットできませんでしたか?(http://stackoverflow.com/editing-help) –

+0

あなたはそれを設定する前に '$ _SESSION ['username']' *を参照していることが問題だと思いませんか? –

+0

あなたは$ _POSTも設定されていることを確認することをお勧めします – MrJ

答えて

3

私は、あなたには、$sqlに何かのSQLを入れていることがわかります。それはそれがどのようになっているのでしょうか?

+0

はそれを忘れて追加しました – Jacob

0

あなたは閉じていないブレース持っている:

if($row['password'] === md5($_POST['password'])) 
{ 
    $_SESSION['username'] = $_POST['username']; // store in session 
else 

修正:

if($row['password'] === md5($_POST['password'])) 
{ 
    $_SESSION['username'] = $_POST['username']; // store in session 
} 
else 
0

あなたが一致するものが見つかった場合にのみ、ログイン時間を更新する必要があります(そしてあなたはそれを実行しなかった) - あなたをユーザーが存在するかどうかにかかわらず更新しています!

<?php 
session_start(); 
require_once('config.php'); 

if(isset($_POST)){ 
    // Retrieve username and password from database according to user's input 
    $input_username = mysql_real_escape_string($_POST['username']); 
    $login = mysql_query("SELECT * FROM user WHERE username='".$input_username."'"); 

    // Check username and password match 
    $row = mysql_fetch_array($login); 
    if(mysql_num_rows($login)){ 
     if($row['password'] === md5($_POST['password'])){ 
      $_SESSION['username'] = $_POST['username']; // store in session 
      $sql = "UPDATE user SET logindate=NOW() WHERE username='" .mysql_real_escape_string($_SESSION['username'])."'"; 
      mysql_query($sql) or die("Error in SQL: ".mysql_error()); 
     } else { 
      // Invalid login 
      echo header('Location: loginerror.php'); 
      exit; 
     } 
    } 
} else { 
    // No direct entry 
    echo header('Location: loginerror.php'); 
    exit; 
} 
?> 
+0

上記のコードを更新してもまだ動作しません – Jacob

+0

$ POSTまたは$ _SESSION経由で送信されますか?参照ユーザー名$ _POST – MrJ

+0

を実行するのを忘れてしまった。今確定した – Jacob

関連する問題