2013-09-23 32 views
0

您好我正在创建登录历史记录。它可以成功登录,但问题是我不能将数据插入到我的“登录历史记录”表中。这是迄今为止我的代码。它可以成功登录,但不能将用户名插入历史记录表中的日志中。创建登录历史

<?php 
    //Start session 
    session_start(); 

    //Array to store validation errors 
    $errmsg_arr = array(); 

    //Validation error flag 
    $errflag = false; 

    //Connect to mysql server 
    $link = mysql_connect('localhost','root',""); 
    if(!$link) { 
     die('Failed to connect to server: ' . mysql_error()); 
    } 

    //Select database 
    $db = mysql_select_db(inventory, $link); 
    if(!$db) { 
     die("Unable to select database"); 
    } 

    //Function to sanitize values received from the form. Prevents SQL injection 
    function clean($str) { 
     $str = @trim($str); 
     if(get_magic_quotes_gpc()) { 
      $str = stripslashes($str); 
     } 
     return mysql_real_escape_string($str); 
    } 

    //Sanitize the POST values 


    // Generate Guid 
    $login = clean($_POST['username']); 
    $password = clean($_POST['password']); 


    //Create query 
    $qry="SELECT * FROM admins WHERE username='$login' AND password='$password'"; 
    $result=mysql_query($qry); 

    //Check whether the query was successful or not 
    if($result) { 
     if(mysql_num_rows($result) > 0) { 

     $sql="INSERT INTO log_history (emp_name) 
     VALUES ('$login')"; 


      //Login Successful 
      session_regenerate_id(); 
      $member = mysql_fetch_assoc($result); 
      $_SESSION['SESS_MEMBER_ID'] = $member['username']; 
      session_write_close(); 

      header("location: auto.php?id=0"); 
      exit(); 
     } 



     else { 
    header("location: alert.php"); 


     } 

    } 



?> 
+0

这可能是因为你的变量$ username不存在。我认为这应该是$登录。 – Ruben

+0

我已经改变了它,但不能插入到我的tbl“log_history” – user2656724

+0

你甚至不执行你的INSERT语句。 – djot

回答

0

你似乎并没有真正插入你想记录到historry表:

$sql="INSERT INTO log_history (emp_name) 
    VALUES ('$username')"; 

    // Should you run this insert query? 
    mysql_query($sql); 

     //Login Successful 
     session_regenerate_id(); 
     $member = mysql_fetch_assoc($result); 
     $_SESSION['SESS_MEMBER_ID'] = $member['username']; 
     session_write_close(); 

我认为你缺少一个在那里的某个地方执行语句。另外,如果您刚刚开始,您应该考虑开始使用PDO并准备好语句。虽然你正在做一些基本的清理,但你的代码仍然不是真正的防弹。 Take a read of this并请考虑转向PDO并准备报表。

+0

“这应该是一个评论”,其他超级SO用户告诉我;) – djot

+0

是的,这是我的problem.im只是新的PHP。我的代码是否正确? – user2656724

+0

@djot这是怎么评论?我显示了错误(不执行他的插入语句)并添加了将执行此操作的行,然后还指出他正在使用需要更新的旧函数,并给他一个指向另一个覆盖它的答案的链接 - 在我之间和其他答案。 – Fluffeh

0

代码插入到表log_history的位置在哪里?我没看到它。 也许你需要拨打

$sql="INSERT INTO log_history (emp_name) VALUES ('$username')"; 
$result2=mysql_query($sql);