2014-01-29 24 views
0

嘿同胞stackoverflow成员从5.2.17升级到版本5.4.24后PHP的例外

我一直在挣扎着这几天,似乎无法弄清楚这一点。

我的问题:

PHP Notice: Undefined index: use_default in settings.php on line 111

这是错误/异常是在我被抛出,但在解决这个做几次尝试后,我根本无法得到它的工作充分。我刚刚从5.2.17升级到5.4.24版本,这是导致这个错误的原因。当使用旧的PHP版本时,这个例外从来没有出现过。

无论如何,这是我在我的settings.php有行111:

if (isset($_FILES['myfile']) && !empty($_FILES['myfile']['name']) && $_POST['use_default'] != 'on') { 

整节吧(更新):

if(empty($errors) === true) { 

         if (isset($_FILES['myfile']) && !empty($_FILES['myfile']['name']) && $_POST['use_default'] != 'on') { 

         $newpath = $general->file_newpath($path, $name); 

          move_uploaded_file($tmp_name, $newpath); 

         } else if(isset($_POST['use_default']) && $_POST['use_default'] === 'on') { 
            $newpath = 'avatars/default_avatar_mc.png'; 
            } 

         $clan_tag   = htmlentities(trim($_POST['clan_tag']), ENT_QUOTES, "UTF-8"); // ENT_QUOTES - (review, may need revised) 
         $gamer_tag   = htmlentities(trim($_POST['gamer_tag']), ENT_QUOTES, "UTF-8"); // ENT_QUOTES - (review, may need revised) 
         $gender    = htmlentities(trim($_POST['gender'])); 
         $day    = htmlentities(trim($_POST['day'])); 
         $month    = htmlentities(trim($_POST['month'])); 
         $year    = htmlentities(trim($_POST['year'])); 
         $country   = htmlentities(trim($_POST['country'])); 
         $occupation   = htmlentities(stripslashes($_POST['occupation'])); 
         $interests   = htmlentities(stripslashes($_POST['interests'])); 
         $bio    = htmlentities(stripslashes($_POST['bio'])); 
         $status    = htmlentities(stripslashes($_POST['status'])); 
         $xfire    = htmlentities(trim($_POST['xfire'])); 
         $steam    = htmlentities(trim($_POST['steam'])); 
         $image_location   = htmlentities(trim($newpath)); 

         $users->update_user( $clan_tag, 
            $gamer_tag, 
            $gender, 
            $day, 
            $month, 
            $year, 
            $country, 
            $occupation, 
            $interests, 
            $bio, 
            $status, 
            $xfire, 
            $steam, 
            $image_location, 
            $user_id); 
            header('Location: settings.php?success'); 
            exit(); 

        } else if (empty($errors) === false) { 
         echo '<p>' . implode('</p><p>', $errors) . '</p>'; 
        } 

那么最后一点:

<input type="checkbox" name="use_default" id="use_default" /> <label for="use_default">Use default picture</label> 

如果用户上传一个NE,我只收到此异常错误w^PIC, - 任何帮助将不胜感激......

回答

0

之前执行此线

if (isset($_FILES['myfile']) && !empty($_FILES['myfile']['name']) && $_POST['use_default'] != 'on') { 

请在use_defaultisset ..这样。

if(isset($_POST['use_default'])) 
{ 
if (isset($_FILES['myfile']) && !empty($_FILES['myfile']['name']) && $_POST['use_default'] != 'on') { 
+0

不幸的是没有工作 - 只是抛出了其他例外。如果有帮助,我继续更新“整个部分”... – user2732875

+0

您需要添加我之前建议的if(empty($ errors)=== true){'并且不要忘记关闭大括号正确。 –