Php 创建登录历史记录
您好,我正在创建历史记录。它可以成功登录,但问题是我无法将数据插入“登录历史记录”表。。这是到目前为止我的代码。它可以成功登录,但无法将用户名插入“我的登录历史记录”表Php 创建登录历史记录,php,mysql,Php,Mysql,您好,我正在创建历史记录。它可以成功登录,但问题是我无法将数据插入“登录历史记录”表。。这是到目前为止我的代码。它可以成功登录,但无法将用户名插入“我的登录历史记录”表 <?php //Start session session_start(); //Array to store validation errors $errmsg_arr = array(); //Validation error flag $errflag = fals
<?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");
}
}
?>
您似乎没有实际将所需记录插入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();
我想你在那里的某个地方遗漏了一个execute语句
<>也,如果你刚开始,你真的应该考虑使用PDO和准备好的语句。虽然您正在进行一些基本的清理,但您的代码仍然不是真正的防弹。请考虑移动到PDO和准备好的语句。
插入到表LogScript历史的代码在哪里?我看不出来。 也许你需要打电话
$sql="INSERT INTO log_history (emp_name) VALUES ('$username')";
$result2=mysql_query($sql);
这可能是因为变量$username不存在。我想这应该是$login。我已经更改了它,但无法将其插入我的tbl“log_history”中。您甚至不执行
insert
语句。“这应该是一条注释”,其他超级用户会告诉我吗;)是的,这是我的问题。我只是刚接触php。我的代码正确吗?@djot这是什么评论?我显示了错误(没有执行他的insert语句),并添加了执行该错误的行,然后还指出他使用的是需要更新的旧函数,并给了他一个链接,指向另一个答案,该答案覆盖得相当好—介于我的答案和其他答案之间。@user2656724您的代码不太好,但它应该以一种相当基本的方式工作。如果你只是在学习,请停止你正在做的事情,开始使用PDO学习。这同样容易,而且安全得多,而且更全面:)这是因为那些聪明的笨蛋,而不是你。