个人资料用户php

时间:2015-03-27 10:42:41

标签: php profile

我正在尝试为用户个人资料构建一个页面,但我遇到了困难 我不想为刚刚记录的用户创建配置文件,而是创建永久用户配置文件,然后您可以在其中全部查看。

输入:profile.php? id = 1

我正在使用UserPie,可以在github上找到。

其实我的profile.php页面是这样的:

<?php require_once("models/config.php"); 

$id = $_GET['id']);

if (empty($_GET['id'])){
    header("Location: index.php");
    die();
}

$sql = "SELECT * FROM users WHERE user_id != '$id'";
$result = mysqli_query($db, $sql) or die(mysqli_error($db));
while($rws = mysqli_fetch_array($result)){ 

?>
<!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><?php echo $rws["username"]; ?> - <?php echo $websiteName; ?></title>
<?php require_once("head_inc.php"); ?>
</head>
<body>
<?php require_once("navbar.php"); ?>

<?php if (is_null($sql)): ?>
<h3 class="page-header">ERROR</h3>
User not found!
<?php else: ?>

<h1>Welcome</h1>
<p>ID: <?php echo $rws['user_id']; ?></p>       
<p>Welcome to your account page <strong><?php echo $rws['username']; ?></strong></p>
<p>You joined on <?php echo date("l \\t\h\e jS Y", $rws['sign_up_date']); ?> </p>       
<?php endif; ?>
<?php } ?>

我无法使其发挥作用 你有什么建议吗?


我这样解决了:

$sql = "SELECT * FROM users WHERE user_id = '$id'";
$result = $db->sql_query($sql);
while($rws = mysqli_fetch_array($result)){ 

1 个答案:

答案 0 :(得分:0)

$sql = "SELECT * FROM users WHERE user_id != '$id'";
$result = mysqli_query($db, $sql) or die(mysqli_error($db));

由于您只需要1个响应,因此您可以获得1个结果而不是循环它们。查询失败时$result为false。结果是一个MysqliResult对象,它有num_rows成员变量,表示结果的数量。

if ($result && $result->num_rows > 0) {
    $rws = mysqli_fetch_array($result);

    // Output template/html here
} else {
    // ERROR could not find
}

此外,使用SQL注入可以利用$sql = "SELECT * FROM users WHERE user_id != '$id'";。为避免这种情况,请使用mysqli Prepared Statements - PHP.net

中的预习语句