我目前有一个 PHP 文件,它将搜索我的 MySQL 数据库并查看用户是否已登录。如果他们已登录,它将回显“Welcome 'username'. Logout”,如果他们未登录,它将回显“登录。注册。”
如果我直接查看此 PHP 文件,它将回显正确的文本,具体取决于我是否登录。但是,如果我使用 include 放入我的 HTML 文件,它只会回显已注销的文本,无论是否我已登录。
PHP 和 HTML 之间是否存在一些冲突,可能会阻止它打印出正确的文本?看起来很奇怪,它可以打开 PHP 文件本身,但当它包含在 HTML 中时却不行。
HTML 代码:
<?php include "loginreg/check.php"; ?>
它在子文件夹中的事实会有所不同吗?没有包含 PHP 代码,因为它本身正在工作,但如果您需要查看它,我已经得到它。
干杯
PHP代码:
// Gets IP address
$ip = visitorIP();
// Connect to database
mysql_connect(localhost, $username, $password);
@mysql_select_db($database) or die('Unable to select database');
$query = "SELECT * FROM loggedin WHERE userip='$ip'";
$result = mysql_num_rows(mysql_query($query));
if ($result == '0') {
mysql_close();
loggedOut();
return;
}
if (isset($_COOKIE['sid'])) {
$sessionid = $_COOKIE['sid'];
}
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
if ($row['sessionid'] == $sessionid) {
mysql_close();
loggedIn($row['id']);
} else {
mysql_close();
loggedOut();
}
}
function visitorIP() {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$TheIp = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$TheIp = $_SERVER['REMOTE_ADDR'];
}
return trim($TheIp);
}
function loggedIn($id) {
global $username, $password, $database;
mysql_connect(localhost, $username, $password);
@mysql_select_db($database) or die('Unable to select database');
$query = "SELECT * FROM users WHERE id='$id'";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
$fname = $row['fname'];
$sname = $row['sname'];
}
echo "<div class=\"fltrt\">Welcome, " . $fname . ". <a href=\"http://redsquirrelsoftware.co.uk/loginreg/logout.php\">Logout</a></div>";
}
function loggedOut() {
echo "<div class=\"fltrt\"><a href=\"http://redsquirrelsoftware.co.uk/loginreg/login.html\">Login</a> <a href=\"http://redsquirrelsoftware.co.uk/loginreg/register.html\">Register</a></div>";
}