猜测是session与上传图片代码冲突。不知如何解决
1.update语句正确的,我将$username换成具体的用户名,插入成功,说明数据库连接成功的。
2.session是有值的,因为我将其他代码注释掉以后发现,echo  $_SESSION['username']的值存在,说明session_start()没有问题。
我查看日志,报的错是这样的:
 PHP Notice:  Undefined index: username in D:\\wamp\\www\\shts\\uploadFace.php on line 5
PHP Stack trace:
PHP   1. {main}() D:\\wamp\\www\\shts\\uploadFace.php:0
因为想做对应用户名的头像更新,所以才想到用取出session中username
下面出问题的php文件。
<?php
session_start();
include_once("conn.php");
getConnection();
$username = $_SESSION['username'];
/**
*生成唯一字符串
*@return string 
*/
function getUniName(){
return md5(uniqid(microtime(true),true));
}
/**
*得到文件唯一扩展名
*@param
*@return string 
*/
function getExt($filename){
return strtolower(end(explode(".",$filename)));
}
$filename = $_FILES['uploadedfile']['name'];
$target  =  dirname(__FILE__)."./upload1/";//接收文件目录$ext = getExt($filename);
$filename = getUniName().".".$ext;
$target_path = $target.$filename;if( move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {

$s = "update user set faceimg='$target_path' where username='$username'";
$result = mysql_query($s);
if($result){

}else{
echo mysql_error();
}

}else{
 
}
closeConnection();//关闭数据库连接
?>
下面是数据库user表的字段:user表中字段为username,password,faceimg

解决方案 »

  1.   

    吧语句改一下
    $s = "update user set faceimg='{$target_path}' where username='{$username}'";
    $s = "update user set faceimg='".$target_path."' where username='".$username."'";
      

  2.   

        $s = "update user set faceimg='$target_path' where username='$username'";
        var_dump($s);
    输出什么?
      

  3.   

    诶。仔细看了一下,你的usename在函数外面定义的,在函数里面使用要global一下;
      

  4.   

    要么 getExt传个用户名参数 要么$username放里面  并且还要先判断session是否存在再赋值
      

  5.   

    $s = "update user set faceimg='$target_path' where username='$username'";
    把其中的$username换成$_SESSION['username']   重新拼接下