File_exist在Ubuntu / PHP中显示错误

时间:2011-07-05 15:39:09

标签: php file ubuntu

我是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的对象无法转换为字符串

2 个答案:

答案 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说的