我是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类的对象无法转换为字符串
您没有显示任何数据库操作,但最有可能的情况是:
$_SESSION['uid'] = mysqli_query("SELECT uid FROM ...");
初始化会话数据的位置。这是不正确的。查询函数返回一个语句句柄,您可以从中获取数据。在伪代码中,它应该是:
$result = mysqli_query(...);
$row = $result->fetch();
$_SESSION['uid'] = $row['uid'];
尝试print_r ($ _SESSION("uid"))它会给你一个提示,很可能就像Marc B说的