用"="是恒为真,用"=="要判断
如果运行时$thefile_type不为 "image/gif"或"image/jpeg"
当然用"=="不行而用"="行,你可以做一个测试——
if($a=1) {……}
给a一个不同的初始值,看它运不运行括号里面的语句就知道了。

解决方案 »

  1.   

    楼上说的对表达式 $var = X 的值就是 X
    因此,if($var=X) 与 if(X) 的判断结果完全相同,不同之处在于前者在判断的同时将X的值赋给了变量$var
    所以,你上面的if(($thefile_type="image/gif")||($thefile_type="image/jpeg"))
    ...与下面的代码完全等效:$thefile_type="image/gif";
    $thefile_type="image/jpeg";
    if(("image/gif")||("image/jpeg"))
    ...只要是非空的字符串,其逻辑值就是“真”
    所以,进一步等效为:$thefile_type="image/gif";
    $thefile_type="image/jpeg";
    if(true)
    ...而 $var == X 的值则是当 $var 与 X 相等时为真(true),否则为假(false)
      

  2.   

    试试这样测试: if(!empty($thefile_name))
      {
        echo $thefile_type; //加上这行
        if(($thefile_type="image/gif")||($thefile_type="image/jpeg"))
        {
           ……看看到底是不是$thefile_type的问题.
    如果$thefile_type的值是正确的,那就要看看是不是其他地方的问题了.