Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Fatal Error - Admin after Re-Installed osC


yesme

Recommended Posts

Hi,

 

Just re-installed back osCommerce after the previous osCommerce got many problems. The problem now is, when my first time opening the admin page an error appeared as below:

 

Fatal error: Cannot re-assign $this in /home/sultrysu/public_html/shop/admin/includes/classes/upload.php on line 31

 

You can check it directly at http://www.sultrysutera.com/shop

 

Now, I give you my upload.php scripts for more easier to identify the problem.

 

<?php
/*
 $Id: upload.php,v 1.2 2003/06/20 00:18:30 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 class upload {
var $file, $filename, $destination, $permissions, $extensions, $tmp_filename, $message_location;

function upload($file = '', $destination = '', $permissions = '777', $extensions = '') {
  $this->set_file($file);
  $this->set_destination($destination);
  $this->set_permissions($permissions);
  $this->set_extensions($extensions);

  $this->set_output_messages('direct');

  if (tep_not_null($this->file) && tep_not_null($this->destination)) {
	$this->set_output_messages('session');

	if ( ($this->parse() == true) && ($this->save() == true) ) {
	  return true;
	} else {
// self destruct
	  $this = null;

	  return false;
	}
  }
}

function parse() {
  global $messageStack;

  if (isset($_FILES[$this->file])) {
	$file = array('name' => $_FILES[$this->file]['name'],
				  'type' => $_FILES[$this->file]['type'],
				  'size' => $_FILES[$this->file]['size'],
				  'tmp_name' => $_FILES[$this->file]['tmp_name']);
  } elseif (isset($GLOBALS['HTTP_POST_FILES'][$this->file])) {
	global $HTTP_POST_FILES;

	$file = array('name' => $HTTP_POST_FILES[$this->file]['name'],
				  'type' => $HTTP_POST_FILES[$this->file]['type'],
				  'size' => $HTTP_POST_FILES[$this->file]['size'],
				  'tmp_name' => $HTTP_POST_FILES[$this->file]['tmp_name']);
  } else {
	$file = array('name' => (isset($GLOBALS[$this->file . '_name']) ? $GLOBALS[$this->file . '_name'] : ''),
				  'type' => (isset($GLOBALS[$this->file . '_type']) ? $GLOBALS[$this->file . '_type'] : ''),
				  'size' => (isset($GLOBALS[$this->file . '_size']) ? $GLOBALS[$this->file . '_size'] : ''),
				  'tmp_name' => (isset($GLOBALS[$this->file]) ? $GLOBALS[$this->file] : ''));
  }

  if ( tep_not_null($file['tmp_name']) && ($file['tmp_name'] != 'none') && is_uploaded_file($file['tmp_name']) ) {
	if (sizeof($this->extensions) > 0) {
	  if (!in_array(strtolower(substr($file['name'], strrpos($file['name'], '.')+1)), $this->extensions)) {
		if ($this->message_location == 'direct') {
		  $messageStack->add(ERROR_FILETYPE_NOT_ALLOWED, 'error');
		} else {
		  $messageStack->add_session(ERROR_FILETYPE_NOT_ALLOWED, 'error');
		}

		return false;
	  }
	}

	$this->set_file($file);
	$this->set_filename($file['name']);
	$this->set_tmp_filename($file['tmp_name']);

	return $this->check_destination();
  } else {
	if ($this->message_location == 'direct') {
	  $messageStack->add(WARNING_NO_FILE_UPLOADED, 'warning');
	} else {
	  $messageStack->add_session(WARNING_NO_FILE_UPLOADED, 'warning');
	}

	return false;
  }
}

function save() {
  global $messageStack;

  if (substr($this->destination, -1) != '/') $this->destination .= '/';

  if (move_uploaded_file($this->file['tmp_name'], $this->destination . $this->filename)) {
	chmod($this->destination . $this->filename, $this->permissions);

	if ($this->message_location == 'direct') {
	  $messageStack->add(SUCCESS_FILE_SAVED_SUCCESSFULLY, 'success');
	} else {
	  $messageStack->add_session(SUCCESS_FILE_SAVED_SUCCESSFULLY, 'success');
	}

	return true;
  } else {
	if ($this->message_location == 'direct') {
	  $messageStack->add(ERROR_FILE_NOT_SAVED, 'error');
	} else {
	  $messageStack->add_session(ERROR_FILE_NOT_SAVED, 'error');
	}

	return false;
  }
}

function set_file($file) {
  $this->file = $file;
}

function set_destination($destination) {
  $this->destination = $destination;
}

function set_permissions($permissions) {
  $this->permissions = octdec($permissions);
}

function set_filename($filename) {
  $this->filename = $filename;
}

function set_tmp_filename($filename) {
  $this->tmp_filename = $filename;
}

function set_extensions($extensions) {
  if (tep_not_null($extensions)) {
	if (is_array($extensions)) {
	  $this->extensions = $extensions;
	} else {
	  $this->extensions = array($extensions);
	}
  } else {
	$this->extensions = array();
  }
}

function check_destination() {
  global $messageStack;

  if (!is_writeable($this->destination)) {
	if (is_dir($this->destination)) {
	  if ($this->message_location == 'direct') {
		$messageStack->add(sprintf(ERROR_DESTINATION_NOT_WRITEABLE, $this->destination), 'error');
	  } else {
		$messageStack->add_session(sprintf(ERROR_DESTINATION_NOT_WRITEABLE, $this->destination), 'error');
	  }
	} else {
	  if ($this->message_location == 'direct') {
		$messageStack->add(sprintf(ERROR_DESTINATION_DOES_NOT_EXIST, $this->destination), 'error');
	  } else {
		$messageStack->add_session(sprintf(ERROR_DESTINATION_DOES_NOT_EXIST, $this->destination), 'error');
	  }
	}

	return false;
  } else {
	return true;
  }
}

function set_output_messages($location) {
  switch ($location) {
	case 'session':
	  $this->message_location = 'session';
	  break;
	case 'direct':
	default:
	  $this->message_location = 'direct';
	  break;
  }
}
 }
?>

 

Help will be appreciated. Thank you so much.

Link to comment
Share on other sites

So funny. I didnt have any knowledge about php but after I removed the code in the line 31,

 

		  $this = null;

 

The error is not appear anymore. Am I doing the right thing? Worry will effect in the future.

 

Thank you.

Link to comment
Share on other sites

Okay, now once again an error appears related to the upload.php file. This time I were trying to upload a product to the catalog but an errors message appeared as below:

 

Warning: move_uploaded_file(/home/sultrysu/public_html/shop/images/dynamic.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/susu/public_html/shop/admin/includes/classes/upload.php on line 92

 

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php0X8ABw' to '/home/susu/public_html/shop/images/dynamic.jpg' in /home/sultrysu/public_html/shop/admin/includes/classes/upload.php on line 92

 

Please help regarding this matter. Very much appreciates for any help. Thank you.

Link to comment
Share on other sites

Hi,

 

Looks like I am the only person who talking with ghost over here hahaha.

 

Now, after my pimples growing up bigger because of tension, I has resolve the problem by myself.

 

By removing,

// self destruct
	  $this = null;

 

The errors which appears in the admin page and upload product page have already gone.

 

Btw, thank you for mute your mouth as I am able to solve this prob myself. But not guarantee for other problem arise. :D

Link to comment
Share on other sites

Hi,

Your store still has many errors:

http://www.sultrysutera.com/shop/index.php?cPath=30_36

 

It seems to me that you are on PHP5/MySQl5 hosting environment, which is causing these errors.

Here is an obsolete solution for your errors.

http://addons.oscommerce.com/info/3727

 

Hope this will help you :rolleyes:

Making ERROR is Human So Please BACKUP

Shantnu

Link to comment
Share on other sites

Shantnu,

 

Thank you for your respond. My removal is same like the obsolete solution.

 

But, yes I am having that 1054 problem too. I think because the tempate itself. I got it free and install it because the layout is so professional eventhough the version is very old, I do not know but the copyright is 2003.

 

:)

Link to comment
Share on other sites

Shantnu,

 

Thank you for your respond. My removal is same like the obsolete solution.

 

But, yes I am having that 1054 problem too. I think because the tempate itself. I got it free and install it because the layout is so professional eventhough the version is very old, I do not know but the copyright is 2003.

 

:)

You just need to follow the instructions in the text document yes it is due to version, the one you are using was made for PHP4.

Just follow the instructions and everything will be fine

Making ERROR is Human So Please BACKUP

Shantnu

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...