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");


        }

    }



?>
4

2 に答える 2

0

テーブル log_history に挿入するコードはどこにありますか? 見えません。おそらくあなたは電話する必要があります

$sql="INSERT INTO log_history (emp_name) VALUES ('$username')";
$result2=mysql_query($sql);
于 2013-09-23T01:24:16.480 に答える
0

必要なレコードを履歴テーブルに実際に挿入しているようには見えません。

    $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();

そこのどこかにexecuteステートメントが欠けていると思います。

また、始めたばかりの場合は、PDO と準備済みステートメントの使用を検討する必要があります。基本的なクリーニングを行っていますが、コードはまだ防弾ではありません。これを読んで、 PDO と準備済みステートメントへの移行を検討してください。

于 2013-09-23T01:22:05.300 に答える