Post by JAY6390 » Mon Jun 28, 2010 10:48 pm

Its not a bug no, php by default changes a numeric value to it's shortest numeric value, so 0.005000 becomes 0.005, 00123 becomes 123, since the leading and trailing zeroes are pointless from the processors point of view. A simple "hack" around this would be to have 201010 as your prefix, then have 6001 as the start number, does that make sense?

Image


User avatar
Guru Member

Posts

Joined
Wed May 26, 2010 11:47 pm
Location - United Kingdom

Post by muflon » Mon Jun 28, 2010 11:34 pm

JAY6390 wrote:Its not a bug no, php by default changes a numeric value to it's shortest numeric value, so 0.005000 becomes 0.005, 00123 becomes 123, since the leading and trailing zeroes are pointless from the processors point of view. A simple "hack" around this would be to have 201010 as your prefix, then have 6001 as the start number, does that make sense?
thanks for your answer. Great hack I'll use it but I think this should be corrected

New member

Posts

Joined
Mon Aug 24, 2009 2:43 pm

Post by JAY6390 » Mon Jun 28, 2010 11:40 pm

It's not a fault though that's the thing. Say for instance you are on 999 what happens then? it'll go to 1000, which would still break from what you wanted. I guess there could be a "fixed width" that would fill in the gaps to the left of the number but that could cause issues as well

Image


User avatar
Guru Member

Posts

Joined
Wed May 26, 2010 11:47 pm
Location - United Kingdom

Post by Qphoria » Tue Jun 29, 2010 4:57 am

it could be considered a bug if you want the string version of 001
INV0001
looks better visually than
INV1
in some opinions
I'll take a look

Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by JAY6390 » Tue Jun 29, 2010 5:07 am

I'm guessing you'd just need to add str_pad around the value, and have a field to configure the total length of the incrementing number to set the trailing 0's

Image


User avatar
Guru Member

Posts

Joined
Wed May 26, 2010 11:47 pm
Location - United Kingdom

Post by Qphoria » Tue Jun 29, 2010 5:20 am

I've used

Code: Select all

sprintf("%012s", $product['id']) 
in the past to force a 12 digit UPC code based on the product id, regardless of how long the product id was, it would only pad enough 0s for a max of 12 digits.

Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by visnetmedia » Tue Jun 29, 2010 8:29 am

Hi I have added the latest patch etc.
Also read through the forum and sometimes you can't access correctly as the search words are too specific but I changed the country status to 0 for all countries except mine for checkout but it doesn't work - all countries show up and of course the geo zones, zones and shipping zones are correct and if you select the wrong country you get an error message.

Not sure if it is a bug but very inconvenient for the customer. any direction on to how to fix would be great - other than setting status to '0' and my country to '1' as it isn't working.....

Love the cart by the way.....

Active Member

Posts

Joined
Fri Feb 12, 2010 7:17 am

Post by Qphoria » Tue Jun 29, 2010 8:45 am

Delete the cache.. I will be sure to add a cache delete on status change

Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by visnetmedia » Tue Jun 29, 2010 9:07 am

FANTASTIC - worked straight away - thought I was going mad... I have never used systems with cache before...

Thanks so much for such a speedy reply.

Active Member

Posts

Joined
Fri Feb 12, 2010 7:17 am

Post by Qphoria » Tue Jun 29, 2010 8:59 pm

visnetmedia wrote:Also read through the forum and sometimes you can't access correctly as the search words are too specific
Be sure to use the Google site search option on the search page for phrases instead of the crappy phpbb forum search.

Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by Johnathan » Wed Jun 30, 2010 7:44 am

When choosing products for the "home" version of the featured module, products that are disabled shouldn't be allowed to be checked. As it stands now, if you do check them, customers clicking on the image will go to a "Product not found!" page.

Image Image Image Image Image


User avatar
Administrator

Posts

Joined
Fri Dec 18, 2009 3:08 am


Post by Daniel » Wed Jun 30, 2010 8:59 pm

Johnathan wrote:When choosing products for the "home" version of the featured module, products that are disabled shouldn't be allowed to be checked. As it stands now, if you do check them, customers clicking on the image will go to a "Product not found!" page.

don;t start makng policy up please. they shgould be allowed to be checked. they should not show up on the fron side if the product is set to disabled!

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by Sevarin » Wed Jun 30, 2010 9:40 pm

I'm not sure if this is a bug or not...

I just upgraded my opencart installation from 1.44 to 1.48b. After running the upgrade script, I got a success message with no errors.

But now, when I go to the store front and click on a category with subcategories, instead of showing me the pictures to the right with the subcategories, it gives me an error saying "The page you requested cannot be found.".

Maybe it's something simple like a setting... I don't know, but it was working fine before the upgrade.

Here is a link, if it helps:
http://www.certifiedfse.com/store/

Newbie

Posts

Joined
Wed Mar 24, 2010 9:07 pm

Post by Qphoria » Wed Jun 30, 2010 9:57 pm

Johnathan wrote:When choosing products for the "home" version of the featured module, products that are disabled shouldn't be allowed to be checked. As it stands now, if you do check them, customers clicking on the image will go to a "Product not found!" page.
Yea has already been address in the next version to check for status. They can still be checked, but they won't show up if disabled

Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by i2Paq » Wed Jun 30, 2010 10:11 pm

Qphoria wrote:in the next version
Maybe update the/your blog on how the next release is doing? :)

Norman in 't Veldt
Moderator OpenCart Forums

_________________ READ and Search BEFORE POSTING _________________

Our FREE search: Find your answer FAST!.

[How to] BTW + Verzend + betaal setup.


User avatar
Global Moderator

Posts

Joined
Mon Nov 09, 2009 7:00 pm
Location - Winkel - The Netherlands

Post by Qphoria » Wed Jun 30, 2010 10:25 pm

its just bug fixes really and some small features. Nothing major for 1.4.9. I am planning on finishing the Paypal improved and work on improving the admin order edit/add to support options and all that. I have a better method (i think)

1.5.0 will be the next release with big time features and that is in the distant future.

Image


User avatar
Administrator

Posts

Joined
Tue Jul 22, 2008 3:02 am

Post by Johnathan » Sat Jul 03, 2010 7:07 am

In /catalog/controller/checkout/guest_step_2.php, in this block of code:

Code: Select all

if (($this->request->server['REQUEST_METHOD'] == 'POST') && isset($this->request->post['coupon']) && $this->validateCoupon()) {
			$this->session->data['coupon'] = $this->request->post['coupon'];
			
			$this->session->data['success'] = $this->language->get('text_success');
			
			$this->redirect(HTTPS_SERVER . 'index.php?route=checkout/guest_step_3');
		}
I think the last line should instead be:

Code: Select all

$this->redirect(HTTPS_SERVER . 'index.php?route=checkout/guest_step_2');
Otherwise, when you click "Apply Coupon" it takes you to the confirmation page. If you want to be consistent with how the non-guest checkout works, you should only proceed to the confirmation page when you click on "Continue", not "Apply Coupon".

Image Image Image Image Image


User avatar
Administrator

Posts

Joined
Fri Dec 18, 2009 3:08 am


Post by JAY6390 » Sat Jul 03, 2010 7:15 am

I think you're right, well spotted :)

Image


User avatar
Guru Member

Posts

Joined
Wed May 26, 2010 11:47 pm
Location - United Kingdom

Post by bildos » Mon Jul 05, 2010 3:25 am

Sending e-mails dosn't work on Godaddy Windows IIS Hosting.

Code: Select all

Warning: mail() [function.mail]: SMTP server response: 451 See http://pobox.com/~djb/docs/smtplf.html. in D:\Hosting\xxxxxxxxxx\html\store\upload\system\library\mail.php on line 150
My Mail.php looks like below.

What to do to allow sending e-mail from godaddy.com Windows IIS web hosting ?
Any Ideas ?

Code: Select all

<?php
final class Mail {
	protected $to;
	protected $from;
	protected $sender;
	protected $subject;
	protected $text;
	protected $html;
	protected $attachments = array();
	public $protocol = 'mail';
	public $hostname;
	public $username;
	public $password;
	public $port = 25;
	public $timeout = 5;
	public $newline = "\n";
	public $crlf = "\r\n";
	public $verp = FALSE;
	public $parameter = '';
	
	public function setTo($to) {
		$this->to = $to;
	}
   
	public function setFrom($from) {
		$this->from = $from;
	}
	
	public function addheader($header, $value) {
		$this->headers[$header] = $value;
	}
	
	public function setSender($sender) {
		$this->sender = $sender;
	}
	
	public function setSubject($subject) {
		$this->subject = $subject;
	}
	
	public function setText($text) {
		$this->text = $text;
	}
	
	public function setHtml($html) {
		$this->html = $html;
	}
	
	public function addAttachment($file, $filename = '') {
		if (!$filename) {
			$filename = basename($file);
		}
	  
		$this->attachments[] = array(
			'filename' => $filename,
			'file'     => $file
		);
	}
	
	public function send() {   
		if (!$this->to) {
			exit('Error: E-Mail to required!');
		}
	
		if (!$this->from) {
			exit('Error: E-Mail from required!');
		}
	
		if (!$this->sender) {
			exit('Error: E-Mail sender required!');
		}
	
		if (!$this->subject) {
			exit('Error: E-Mail subject required!');
		}
	
		if ((!$this->text) && (!$this->html)) {
			exit('Error: E-Mail message required!');
		}
	
		if (is_array($this->to)) {
			$to = implode(',', $this->to);
		} else {
			$to = $this->to;
		}
	
		$boundary = '----=_NextPart_' . md5(time()); 
	
		$header = '';
	
		if ($this->protocol != 'mail') {
			$header .= 'To: ' . $to . $this->newline;
			$header .= 'Subject: ' . $this->subject . $this->newline;
		}
	
		$header .= 'From: ' . $this->sender . '<' . $this->from . '>' . $this->newline;
		$header .= 'Reply-To: ' . $this->sender . '<' . $this->from . '>' . $this->newline;   
		$header .= 'Return-Path: ' . $this->from . $this->newline;
		$header .= 'X-Mailer: PHP/' . phpversion() . $this->newline; 
		$header .= 'MIME-Version: 1.0' . $this->newline;
		$header .= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . $this->newline; 
	
		if (!$this->html) {
			$message  = '--' . $boundary . $this->newline; 
			$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
			$message .= $this->text . $this->newline;
		} else {
			$message  = '--' . $boundary . $this->newline;
			$message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . $this->newline . $this->newline;
			$message .= '--' . $boundary . '_alt' . $this->newline;
			$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline;
		
			if ($this->text) {
				$message .= $this->text . $this->newline;
			} else {
				$message .= 'This is a HTML email and your email client software does not support HTML email!' . $this->newline;
			}   
		
			$message .= '--' . $boundary . '_alt' . $this->newline;
			$message .= 'Content-Type: text/html; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
			$message .= $this->html . $this->newline;
			$message .= '--' . $boundary . '_alt--' . $this->newline;      
		}
	
		foreach ($this->attachments as $attachment) { 
			if (file_exists($attachment['file'])) {
				$handle = fopen($attachment['file'], 'r');
				$content = fread($handle, filesize($attachment['file']));
		
				fclose($handle); 
		
				$message .= '--' . $boundary . $this->newline;
				$message .= 'Content-Type: application/octetstream' . $this->newline;   
				$message .= 'Content-Transfer-Encoding: base64' . $this->newline;
				$message .= 'Content-Disposition: attachment; filename="' . basename($attachment['filename']) . '"' . $this->newline;
				$message .= 'Content-ID: <' . basename($attachment['filename']) . '>' . $this->newline . $this->newline;
				$message .= chunk_split(base64_encode($content));
			}
		} 
	
		$message .= '--' . $boundary . '--' . $this->newline; 
	
		if ($this->protocol == 'mail') {
			ini_set('sendmail_from', $this->from);
	
			if ($this->parameter) {
				mail($to, $this->subject, $message, $header, $this->parameter);
			} else {
				mail($to, $this->subject, $message, $header);
			}
			
		} elseif ($this->protocol == 'smtp') {
			$handle = fsockopen($this->hostname, $this->port, $errno, $errstr, $this->timeout);   
	
			if (!$handle) {
				error_log('Error: ' . $errstr . ' (' . $errno . ')');
			} else {
				if (substr(PHP_OS, 0, 3) != 'WIN') {
					socket_set_timeout($handle, $this->timeout, 0);
				}
		
				while ($line = fgets($handle, 515)) {
					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}
		
				if (substr($this->hostname, 0, 3) == 'tls') {
					fputs($handle, 'STARTTLS' . $this->crlf);
				
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
					
						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}
		
					if (substr($reply, 0, 3) != 220) {
						error_log('Error: STARTTLS not accepted from server!');
					}               
				}
		
				if (!empty($this->username)  && !empty($this->password)) {
					fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . $this->crlf);
				
					$reply = '';
				
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
				
						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}
		
					if (substr($reply, 0, 3) != 250) {
						error_log('Error: EHLO not accepted from server!');
					}
		
					fputs($handle, 'AUTH LOGIN' . $this->crlf);
		
					$reply = '';
		
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
					
						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}
		
					if (substr($reply, 0, 3) != 334) {
						error_log('Error: AUTH LOGIN not accepted from server!');
					}
		
					fputs($handle, base64_encode($this->username) . $this->crlf);
		
					$reply = '';
		
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
						
						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}
		
					if (substr($reply, 0, 3) != 334) {
						error_log('Error: Username not accepted from server!');
					}            
		
					fputs($handle, base64_encode($this->password) . $this->crlf);
		
					$reply = '';
		
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
					
						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}
		
					if (substr($reply, 0, 3) != 235) {
						error_log('Error: Password not accepted from server!');               
					}   
				} else {
					fputs($handle, 'HELO ' . getenv('SERVER_NAME') . $this->crlf);
		
					$reply = '';
		
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
					
						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}
		
					if (substr($reply, 0, 3) != 250) {
						error_log('Error: HELO not accepted from server!');
					}            
				}
				
				if ($this->verp) {
					fputs($handle, 'MAIL FROM: <' . $this->from . '>XVERP' . $this->crlf);
				} else {
					fputs($handle, 'MAIL FROM: <' . $this->from . '>' . $this->crlf);
				}
				
				$reply = '';
				
				while ($line = fgets($handle, 515)) {
					$reply .= $line;
				
					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}
		
				if (substr($reply, 0, 3) != 250) {
					error_log('Error: MAIL FROM not accepted from server!');
				}
		
				if (!is_array($this->to)) {
					fputs($handle, 'RCPT TO: <' . $this->to . '>' . $this->crlf);
				
					$reply = '';
				
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
				
						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}
		
					if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
						error_log('Error: RCPT TO not accepted from server!');
					}         
				} else {
					foreach ($this->to as $recipient) {
						fputs($handle, 'RCPT TO: <' . $recipient . '>' . $this->crlf);
		
						$reply = '';
		
						while ($line = fgets($handle, 515)) {
							$reply .= $line;
							
							if (substr($line, 3, 1) == ' ') {
								break;
							}
						}
		
						if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
							error_log('Error: RCPT TO not accepted from server!');
						}                  
					}
				}
				
				fputs($handle, 'DATA' . $this->crlf);
				
				$reply = '';
					
				while ($line = fgets($handle, 515)) {
					$reply .= $line;
					
					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}
			
				if (substr($reply, 0, 3) != 354) {
					error_log('Error: DATA not accepted from server!');
				}
			
				fputs($handle, $header . $message . $this->crlf);
				fputs($handle, '.' . $this->crlf);
			
				$reply = '';
			
				while ($line = fgets($handle, 515)) {
					$reply .= $line;
				
					if (substr($line, 3, 1) == ' ') { 
						break;
					}
				}
			
				if (substr($reply, 0, 3) != 250) {
					error_log('Error: DATA not accepted from server!');
				}
			
				fputs($handle, 'QUIT' . $this->crlf);
				
				$reply = '';
				
				while ($line = fgets($handle, 515)) {
					$reply .= $line;
				
					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}
			
				if (substr($reply, 0, 3) != 221) {
					error_log('Error: QUIT not accepted from server!');
				}         
			
				fclose($handle);
			}
		}
	}
}
?>

Newbie

Posts

Joined
Sun Jul 04, 2010 9:47 pm

Post by allenshea » Mon Jul 05, 2010 11:23 am

bildos wrote:Sending e-mails dosn't work on Godaddy Windows IIS Hosting.

Code: Select all

Warning: mail() [function.mail]: SMTP server response: 451 See http://pobox.com/~djb/docs/smtplf.html. in D:\Hosting\xxxxxxxxxx\html\store\upload\system\library\mail.php on line 150
I have the similar problem with mail on Godaddy, I'm not sure if this is the server problem or not.
For small amount mail sending is no problem in Godaddy. But once I want to send bulk mails, I have about 300 register, it always got error.

I know nothing about PHP and SQL, but I still try my best to understand it.


Active Member

Posts

Joined
Mon Dec 14, 2009 10:01 pm
Who is online

Users browsing this forum: No registered users and 12 guests