我是Linux / Ubuntu的新手,所以如果我犯了任何愚蠢的错误,请原谅我。
我的代码在XP中运行良好,但在Ubuntu 11.04(相同的PHP / MySQL版本)
<?php
if (!isset($_SESSION['uid'])) {
header('Location:index.php');
exit;
} else {
if (file_exists("profile_pic/".$_SESSION['uid'].".jpg")) {
echo '<a href="'.$SitePath.'profile.php?id='.$_SESSION['uid'].'"><img src="'.$SitePath.'profile_pic/'.$_SESSION['uid'].'.jpg" alt="'.$_SESSION['name'].'" title="Me" border="0"/></a>';
} else {
echo '<a href="'.$SitePath.'profile.php?id='.$_SESSION['uid'].'"><img src="'.$SitePath.'profile_pic/nopic.jpg" alt="'.$_SESSION['name'].'" title="Me" border="0" /></a>';
}
?>
如果存在名称为$_SESSION['uid'].".jpg"
的文件,则显示该文件,否则显示默认图像。
捕获致命错误:类mysqli_stmt的对象无法转换为字符串
答案 0 :(得分:3)
你没有展示任何数据库操作,但很可能你有类似的东西:
$_SESSION['uid'] = mysqli_query("SELECT uid FROM ...");
无论您在哪里初始化会话数据。这是不正确的。查询函数返回一个语句句柄,您可以从中获取数据。在伪代码中,它是:
$result = mysqli_query(...);
$row = $result->fetch();
$_SESSION['uid'] = $row['uid'];
答案 1 :(得分:1)
尝试print_r($ _ SESSION ['uid']) 这会给你一个提示是什么,最有可能是Marc B说的