我在php和sql中的新功能请点击退出时帮我找到插入用户名的用户名。
继承我的代码:
<?php
include('includes/mysql_connect.php');
if(isset($_POST['submit'])){
$query = mysql_query("select users from username where username = '".$_SESSION['username']."'");
mysql_query($query);
$insert_log="INSERT INTO activity_logout(username, details) VALUES('$query','Succesfully Logout!')";
mysql_query($insert_log);
}
session_start();
session_destroy();
header("location:index.php");
?>
答案 0 :(得分:1)
您不需要执行SELECT,因为您已经拥有了用户名,如果设置了“提交”按钮,则应该检查$_SESSION['username']
。
对于实际上是SQL查询的用户名,或者至少包含'
的用户名,您对SQL注入开放将会破坏您的查询。
<?php
session_start();
include('includes/mysql_connect.php');
if(!empty($_SESSION['username'])){
mysql_query('INSERT INTO activity_logout
(username, details)
VALUES ("'.mysql_real_escape_string($_SESSION['username']).'",
"Succesfully Logout!")');
}
session_destroy();
exit(header("location: ./index.php"));
?>
强制性建议,Don't use mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。
答案 1 :(得分:-1)
试试这个,
<?php
include('includes/mysql_connect.php');
if(isset($_POST['submit'])){
$insert_log="INSERT INTO activity_logout(username, details) VALUES($_SESSION['username'],'Succesfully Logout!')";
mysql_query($insert_log);
}
session_destroy();
header("location:index.php");
?>
请使用
session_start();
在您的“登录”代码之后的开头。此外,您应该使用一些常用文件来处理您的包含文件。请参考 enter link description here