jamesxg1 Posted October 1, 2009 Share Posted October 1, 2009 Hiya peeps, Simple code, <?php session_start(); class Uploader { private $profilepicturename; function ProfilePicture($profilepicturename) { $this->ProfilePictureName = mysql_real_escape_string(trim(addslashes(strip_tags($profilepicturename)))); $this->SessionUsername = mysql_real_escape_string(trim(addslashes(strip_tags(base64_encode($_SESSION['username']))))); $this->SessionUserID = mysql_real_escape_string(trim(addslashes(strip_tags($_SESSION['user_id'])))); $this->ProfilePictureCheck = "SELECT `photo` FROM `profile` WHERE username = '$this->SessionUsername' AND user_id = '$this->SessionUserID'"; $this->RunProfilePictureCheck = mysql_query($this->ProfilePictureCheck) or trigger_error('Query failed: ' . mysql_error(), E_USER_ERROR); if(mysql_num_rows($this->RunProfilePictureCheck) > 0) { $this->UpdateProfilePicture = "UPDATE `photo` SET photo = '$this->ProfilePictureName' WHERE username = '$this->SessionUsername' AND user_id = '$this->SessionUserID'"; $this->RunUpdateProfilePicture = mysql_query($this->UpdateProfilePicture) or trigger_error('Query failed: ' . mysql_error(), E_USER_ERROR); } elseif (mysql_num_rows($this->RunProfilePictureCheck) > 1) { $this->InsertProfilePicture = "INSERT INTO `profile` (`photo`) VALUES('$this->ProfilePictureName') WHERE username = '$this->SessionUsername' AND user_id = '$this->SessionUserID'"; $this->RunInsertProfilePicture = mysql_query($this->InsertProfilePicture) or trigger_error('Query failed: ' . mysql_error(), E_USER_ERROR); } } } ?> I get this, Fatal error: Call to a member function ProfilePicture() on a non-object in C:\Program Files\xampp\xampp\htdocs\socialbuild\test\scripts\ajaxupload.php on line 31 Line 31 = is the first end tag ( } ). Many thanks, James. Link to comment https://forums.phpfreaks.com/topic/176233-solved-class-error-i-do-not-understand-s/ Share on other sites More sharing options...
TeNDoLLA Posted October 1, 2009 Share Posted October 1, 2009 How are you trying to use this class you have defined? I don't see the code where you are using it anywhere. first you define a class. Then you create an instance (object) of that class. And then you use the class methods with that object. E.g. <?php // Picture name $somePicName = 'test.jpg'; // Create object $uploader = new Uploader(); // Call the class method $uploader->ProfilePicture($somePicName); Link to comment https://forums.phpfreaks.com/topic/176233-solved-class-error-i-do-not-understand-s/#findComment-928754 Share on other sites More sharing options...
jamesxg1 Posted October 1, 2009 Author Share Posted October 1, 2009 Is this usable ? <?php session_start(); include '../library/Uploaders.inc.php'; include '../library/Mysql.inc.php'; $mysql = new Database(); $mysql->Connection(); $uploader = new Uploader(); function uploadImage($fileName, $maxSize, $maxW, $fullPath, $relPath, $colorR, $colorG, $colorB, $maxH = null){ $folder = $relPath; $maxlimit = $maxSize; $allowed_ext = "jpg,jpeg,gif,png,bmp"; $match = ""; $filesize = $_FILES[$fileName]['size']; if($filesize > 0){ $filename = strtolower($_FILES[$fileName]['name']); $filename = preg_replace('/\s/', '_', $filename); if($filesize < 1){ $errorList[] = "File size is empty."; } if($filesize > $maxlimit){ $errorList[] = "File size is too big."; } if(count($errorList)<1){ $file_ext = preg_split("/\./",$filename); $allowed_ext = preg_split("/\,/",$allowed_ext); foreach($allowed_ext as $ext){ if($ext==end($file_ext)){ $match = "1"; // File is allowed $NUM = time(); $front_name = substr($file_ext[0], 0, 15); $newfilename = $_SESSION['username']."_".$_SESSION['user_id']."_".$NUM."_mainprofilepic.".end($file_ext); $uploader->ProfilePicture($newfilename); $filetype = end($file_ext); $save = $folder.$newfilename; if(!file_exists($save)){ list($width_orig, $height_orig) = getimagesize($_FILES[$fileName]['tmp_name']); if($maxH == null){ if($width_orig < $maxW){ $fwidth = $width_orig; }else{ $fwidth = $maxW; } $ratio_orig = $width_orig/$height_orig; $fheight = $fwidth/$ratio_orig; $blank_height = $fheight; $top_offset = 0; }else{ if($width_orig <= $maxW && $height_orig <= $maxH){ $fheight = $height_orig; $fwidth = $width_orig; }else{ if($width_orig > $maxW){ $ratio = ($width_orig / $maxW); $fwidth = $maxW; $fheight = ($height_orig / $ratio); if($fheight > $maxH){ $ratio = ($fheight / $maxH); $fheight = $maxH; $fwidth = ($fwidth / $ratio); } } if($height_orig > $maxH){ $ratio = ($height_orig / $maxH); $fheight = $maxH; $fwidth = ($width_orig / $ratio); if($fwidth > $maxW){ $ratio = ($fwidth / $maxW); $fwidth = $maxW; $fheight = ($fheight / $ratio); } } } if($fheight == 0 || $fwidth == 0 || $height_orig == 0 || $width_orig == 0){ die("FATAL ERROR REPORT ERROR CODE [add-pic-line-67-orig] to <a href='http://www.atwebresults.com'>AT WEB RESULTS</a>"); } if($fheight < 45){ $blank_height = 45; $top_offset = round(($blank_height - $fheight)/2); }else{ $blank_height = $fheight; } } $image_p = imagecreatetruecolor($fwidth, $blank_height); $white = imagecolorallocate($image_p, $colorR, $colorG, $colorB); imagefill($image_p, 0, 0, $white); switch($filetype){ case "gif": $image = @imagecreatefromgif($_FILES[$fileName]['tmp_name']); break; case "jpg": $image = @imagecreatefromjpeg($_FILES[$fileName]['tmp_name']); break; case "jpeg": $image = @imagecreatefromjpeg($_FILES[$fileName]['tmp_name']); break; case "png": $image = @imagecreatefrompng($_FILES[$fileName]['tmp_name']); break; } @imagecopyresampled($image_p, $image, 0, $top_offset, 0, 0, $fwidth, $fheight, $width_orig, $height_orig); switch($filetype){ case "gif": if(!@imagegif($image_p, $save)){ $errorList[]= "PERMISSION DENIED [GIF]"; } break; case "jpg": if(!@imagejpeg($image_p, $save, 100)){ $errorList[]= "PERMISSION DENIED [JPG]"; } break; case "jpeg": if(!@imagejpeg($image_p, $save, 100)){ $errorList[]= "PERMISSION DENIED [JPEG]"; } break; case "png": if(!@imagepng($image_p, $save, 0)){ $errorList[]= "PERMISSION DENIED [PNG]"; } break; } @imagedestroy($filename); }else{ $errorList[]= "CANNOT MAKE IMAGE IT ALREADY EXISTS"; } } } } }else{ $errorList[]= "NO FILE SELECTED"; } if(!$match){ $errorList[]= "File type isn't allowed: $filename"; } if(sizeof($errorList) == 0){ return $fullPath.$newfilename; }else{ $eMessage = array(); for ($x=0; $x<sizeof($errorList); $x++){ $eMessage[] = $errorList[$x]; } return $eMessage; } } $filename = strip_tags($_REQUEST['filename']); $maxSize = strip_tags($_REQUEST['maxSize']); $maxW = strip_tags($_REQUEST['maxW']); $fullPath = strip_tags($_REQUEST['fullPath']); $relPath = strip_tags($_REQUEST['relPath']); $colorR = strip_tags($_REQUEST['colorR']); $colorG = strip_tags($_REQUEST['colorG']); $colorB = strip_tags($_REQUEST['colorB']); $maxH = strip_tags($_REQUEST['maxH']); $filesize_image = $_FILES[$filename]['size']; if($filesize_image > 0){ $upload_image = uploadImage($filename, $maxSize, $maxW, $fullPath, $relPath, $colorR, $colorG, $colorB, $maxH); if(is_array($upload_image)){ foreach($upload_image as $key => $value) { if($value == "-ERROR-") { unset($upload_image[$key]); } } $document = array_values($upload_image); for ($x=0; $x<sizeof($document); $x++){ $errorList[] = $document[$x]; } $imgUploaded = false; }else{ $imgUploaded = true; } }else{ $imgUploaded = false; $errorList[] = "File Size Empty"; } if($imgUploaded){ echo '<img src="images/success.gif" width="16" height="16" border="0" style="marin-bottom: -4px;" /> Success!<br /><img src="'.$upload_image.'" border="0" />'; }else{ echo '<img src="images/error.gif" width="16" height="16px" border="0" style="marin-bottom: -3px;" /> Error(s) Found: '; foreach($errorList as $value){ echo $value.', '; } } ?> Many thanks, James. Link to comment https://forums.phpfreaks.com/topic/176233-solved-class-error-i-do-not-understand-s/#findComment-928756 Share on other sites More sharing options...
jamesxg1 Posted October 1, 2009 Author Share Posted October 1, 2009 Ahhh. I have it working now. Thanks dude. Many many thanks, James. Link to comment https://forums.phpfreaks.com/topic/176233-solved-class-error-i-do-not-understand-s/#findComment-928761 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.