現在、MySQLデータベースを検索してユーザーがログインしているかどうかを確認するPHPファイルがあります。ユーザーがログインしている場合は「ようこそ'ユーザー名'。ログアウト」とエコーし、ログインしていない場合はエコーします。ログイン。登録してください。」
この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>";
}