2 事情马上发生,就像 Waleed 说你对 SQL 注入持开放态度,这对你来说并不是一件好事。我会考虑阅读有关 MySQLi 和 PDO 的教程,从那里尝试深入研究更好的方法或运行查询。
您还选择使用 cookie 而不是会话来存储用户名?Cookie 可以在客户端进行修改,以说出任何使用 firebug 的聪明用户想要的内容。会话存储在服务器端,客户端(最终用户)只获得会话的 id。如果您将其作为会话发送,他们将无法修改用户名。(他们可以尝试将会话 ID 更改为另一组随机数字,但这就像在风中撒尿,请原谅我的法语。
这是一些pseduo代码,我认为可以让你上路
<?php
include("dbconnect.php");
$database = "maxgee_close2"; //Set the database you want to connect to
mysql_select_db($database); //Select database
$username = $_SESSION['maxgee_me_user']; //Grab the username from a server-side stored session, not a cookie!
$query = "SELECT user_id FROM `users` WHERE `username` = '" . mysql_real_escape_string($username) . "' LIMIT 1"; //Note the user of mysql_real_escape_string on the $username, we want to clean the variable of anything that could harm the database.
$result = mysql_query($query);
if ($row = mysql_fetch_array($result)) {
//Query was ran and returned a result, grab the ID
$userId = $row["user_id"];
mysql_free_result($result); //We can free the result now after we have grabbed everything we need
$query_check = "SELECT * FROM `events_main` WHERE `user_id` = '" . mysql_real_escape_string($userId) . "'";
$check = mysql_query($query_check);
if (mysql_num_rows($check)>0) {
include("example.php");
}
else {
echo "example";
}
}
?>
该代码可能/可能不起作用,但真正的关键变化是您正在运行 mysql_free_result($result); 在您的脚本有机会从数据库中获取用户 ID 之前。
总而言之,我真的会回去阅读更多教程。