gpt4 book ai didi

php - 个人资料页面 PHP + MySQL

转载 作者:行者123 更新时间:2023-11-29 11:23:57 24 4
gpt4 key购买 nike

个人资料页面使用 PHP 和 MySQL 来显示该项目。
有两件事我想问
promise :如果你能帮助我,我会在我的网站上承认你并将你列入学分;)

问题 1:
如何检查用户是否存在于数据库中,以及如何显示404消息?

问题 2:
因此,这里的主要错误是当您搜索用户时,它无法识别该用户。
用户“admin01”搜索自己并且个人资料页面正在运行,如果用户 admin01 搜索用户 admin02 ,页面不会提供用户信息。无论如何如何解决这个问题?

附加信息:
该网站将使用 GET 方法来检查 url,例如:profile.php?username=admin01,它将显示用户信息。如果用户未登录,页面将重定向到登录页面。

代码:

<?php
ob_start();
session_start();
require_once 'dbconnect.php';

if( !isset($_SESSION['user']) ) {
header("Location: index.php");
exit;
}
// select loggedin users detail
$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']);
$userRow=mysql_fetch_array($res);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Welcome - <?php echo $userRow['userName']; ?></title>
<link rel="stylesheet" href="assets/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>

<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="http://www.codingcage.com">Prospekt | A Gaming Community</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Dashboard</a></li>
<li><a href="../home.php">Home</a></li>
<li><a href="/forums.php">Forums</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">

<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<span class="glyphicon glyphicon-user"></span>&nbsp;Member - <?php echo $userRow['userName']; ?>&nbsp;<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="logout.php?logout"><span class="glyphicon glyphicon-log-out"></span>&nbsp;Sign Out</a></li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>

<div id="wrapper">

<div class="container">

<div class="page-header">
<h1>Prospekt | A Gaming Community</h1>
<h4> Dashboard | See your live ranking, stats, and more! </h4>
</div>
<?php
$username = $_GET['username'];
if (isset($username) === true && empty($_GET['username']) === false){
echo $username;
} else {
echo "Please search for a valid user!";
}
?>
<div class="row">
<div class="col-lg-12">

</div>
</div>

</div>

</div>

<script src="assets/jquery-1.11.3-jquery.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>

</body>
</html>

最佳答案

问题主要在于您选择使用的 HTML。它给人的印象是作为用户主页的页面。您需要用新的 HTML 替换该 HTML。您需要一些像这样的 PHP 代码

 ob_start();
session_start();
require_once 'dbconnect.php';

if( !isset($_SESSION['user']) ) {
header("Location: index.php");
exit;
}
else {
/* find out if a user exists and raise 404 if not? Here's how */

$sql = 'SELECT COUNT(*) from users WHERE username = ? LIMIT 1';
$stmt = $conn->prepare($sql);
$stmt->bindParam(1, $_GET['username'], PDO::PARAM_INT);
$stmt->execute();
if($stmt->fetchColumn()) {
/* now an authenticated users is trying to see a profile page
on your website for a user who exists */
// CREATE THE APPROPRIATE HTML

}
else
{
header('HTTP/1.0 404 not found');
}
}

请注意,我已经使用了 PDO。不应使用 mysql_* 函数。您没有在当前代码中转义查询参数。致命的危险。

请注意,应删除原始代码中的以下行:

 $res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']);
$userRow=mysql_fetch_array($res);

关于php - 个人资料页面 PHP + MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38520569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com