Wednesday, December 11, 2013

DateTime functions not working in new set-up PHP 5.3.27 or any other version

You may seem to find yourself in a predicament when you have a new server with a default set-up of PHP configuration. When you transfer your working website when it does not work as intended.

I was searching on the web how can this be? Does the new version, not accommodate the functions used previously.  You might assume that, but the simple solution to the problem is the Date Timezone settings in the config or PHP.ini file.  You just need to set it to your desired timezone.  Once you have specified this, the functions should work as it used to before.

At least that what solved my problem.

Wednesday, December 4, 2013

PHP PDO why the error message given has the computer name, and domain

I have been trying to connect to mySQL server locally and there is an error give with Password:NO.

After searching for a while there is a simple explaination the username and password I have given does not have rights to the database I have specified, hence the error message.

The solution and explination can be found here: http://stackoverflow.com/questions/13002409/why-php-pdo-uses-a-different-from-hostname-to-the-one-used-by-mysql-connect-wh

Hope this helps. Happy coding.

Monday, December 2, 2013

500 Internal Server Error Message

At work I have seen one of our site going down/offline and looking at it on the IIS the website is on and looking at the log files, there was no error.

I think this website could be the answer on why it has been down: https://kb.mediatemple.net/questions/1903/Why+am+I+getting+a+500+Internal+Server+Error+message%3F

Which is understandable, since out database is located somewhere else.  It could have been timeout that causes our website to show 500 error.

Another thing that could help in determining is the Timeout detection as a sample on this website: http://bytes.com/topic/php/answers/620062-how-handle-php-execution-timeouts-gracefully

What I don't understand is why we cannot connect at times on Remote Desktop, though.

Tuesday, November 19, 2013

a good free DNS tools website

I forgot this website on trace routes and whois, typical stuff you do to check a domain and it's problems.
This is my favorite whois source website: http://www.dnsgoodies.com/

Somehow it is now near the top search result, previously it cannot be found anyway near.  DNSstuff ask for payment, but I only need the basic stuff why ask for payment?

There are others out there that will let you search and your them 3 times, then will require you to pay for their services.  To each his own, I guess, they could have just survived with ads and forget, about paid usage.

Very useful in checking the basic stuff for your website.

Wednesday, October 30, 2013

IIS Compression of content urlCompression

It has been a busy week for me on updating this blog.  Dealing with a 3rd party developer and letting me learn something new.  I don't know everything and I seldom pretend knowing something I don't.

What I have learned from dealing with a 3rd party developer is this option of IIS to compress the content and giving it to the client browser.  I sure wasn't aware of it.  According to this source: http://www.codinghorror.com/blog/2004/08/http-compression-and-iis-6-0.html

IIS 6 is the server I am currently using for a website done by a 3rd party developer.  So that article I linked above is a bit helpful in explaining it.  And another link on how to enable it: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/d52ff289-94d3-4085-bc4e-24eb4f312e0e.mspx?mfr=true

Here is a link for the IIS 7 configuration: http://www.iis.net/configreference/system.webserver/urlcompression

urlCompression replaces the settings of the IIS in .Net.
Which I found out was already set to send compressed files to browsers.  And does not need to be set at all, it is only in IIS 6 and below where it is disabled, since some browsers then do not accept compressed files.

According to the first link, compression makes the plain text size by 75 percent.  Not bad, but still if you have a small bandwidth, that will still affect your server and clients that are accessing it constantly.

Saturday, October 26, 2013

what is the value represented in clientCache cachControlMaxAge

I have been given a code by a 3rd developer to update the website they created in .Net.

He just mentioned I place the code, inside the <system.webServer> configuration.

After looking at it I was a bit apprehensive in implementing this setting in the web.config file:
  <staticContent> 
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="10.00:00:00" /> 
  </staticContent>

I have an idea, it could represent 10 days, but wasn't sure, since this is the first time I saw this code.

After an extensive search, which was hard since there isn't much result on the usage and value syntax for this settings.  Also, the result always reflect as IIS, which makes me wonder when I see it if that is correct result.

It is confirmed it represents 10 days.  Ten days cache on the client's browser cache, which I don't know how the microsoft technology can do it on client side level.  But that was the explaination on this website: http://blog.janjonas.net/2011-08-21/microsoft-iis-7-enable-client-side-browser-caching-static-content-web-config

It says that the static contents such as image file, CSS and javascript files will not change based on the instruction given to the browser, on the page header.

The other source explained for this script can be found here: http://www.iis.net/configreference/system.webserver/staticcontent/clientcache

Which is also based on the first link, to a IIS.net resource, which confuses me, since I thought this was a .Net settings.



If conditional statement in a single line using Operators (?:)

I often forget how to do the simplified condition using the (?:) symbol.  And it is very hard to search on what you meant to search at times.  It's called the ternary operator logic (?:).

I found a source where it shows just how to do it in different levels of complexity:
http://davidwalsh.name/php-shorthand-if-else-ternary-operators

In case the site goes offline.  The Ternary Logic is the process of using the following syntax: "(condition) ? (true value return) : (false value return)".  This will shorten the if/else statement to a single line.

But often this technique confuses others not familiar with it.  But it is fun way to do it.  I still prefer the long way, but will use it to shorten the code at times.

based on the website source link, here is a sample:
$var = 6;
$var_result = ($var>3 ? true:false); // it will return true

Wednesday, October 2, 2013

GIT repository problem

We have a 3rd party developer try to give us the updates thru their repository...

Problem is the instruction isn't clear on how to do the update.  They expect everyone to know this.

The development manager just placed the command (git pull origin master).  I tried running the command in gitbash.  Without any instruction of specific folder to be in.  Did he expect me to know this, when I have no idea how GIT worked in the first place.  Thanks to the internet, now I know why I get the error:

Fatal: Not a git repository (or any parent directories): .git

He should have instructed me to change my directory to the one I cloned before.  Thanks to the internet I found the solution here: http://stackoverflow.com/questions/11961600/fatal-not-a-git-repository-or-any-of-the-parent-directories-from-git-status


You have to actually cd into the directory first:

$ git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts
Cloning into 'liggghts'...
remote: Counting objects: 3005, done.
remote: Compressing objects: 100% (2141/2141), done.
remote: Total 3005 (delta 1052), reused 2714 (delta 827)
Receiving objects: 100% (3005/3005), 23.80 MiB | 2.22 MiB/s, done.
Resolving deltas: 100% (1052/1052), done.

$ git status
fatal: Not a git repository (or any of the parent directories): .git
$ cd liggghts/
$ git status
# On branch master
nothing to commit (working directory clean)

Wednesday, July 31, 2013

Email Validation on PHP

I have made email validation before, but have forgotten where I placed that code.  I had to look for the RegEx (Regular Expression) around the net, there are some that work at a certain point, but does not if you had something like .com.ph or .com.us or .com.au.

There is also a question about the why the hyphen in his code does not work:
http://stackoverflow.com/questions/7939147/preg-match-email-validation-adding-hyphen-to-domain-spot

There is also this one that works, well almost (upper case letters not allowed on this one):
http://www.developphp.com/view_lesson.php?v=224

Explanations on how to add a hyphen to the Regular Expression:
http://stackoverflow.com/questions/9589074/regex-should-hyphens-be-escaped
http://stackoverflow.com/questions/6744587/simple-regex-match-any-string-with-at-least-one-hyphen


So I tweak  the code a bit to have the perfect email validation code I have seen so far, and here it is:

$email = "test@test-tester.com.ph" //<-- Works

$Syntax='/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,3})$/';

if (preg_match($Syntax, $email)) {
     echo $email . \" is a valid email. We can accept it.\";
} else { 
     echo $email . \" is an invalid email. Please try again.\";

Let me know if there is an improvement for this code.

Also a bit of caveat on the preg_match() function:
preg_match() returns 1 if the pattern matches given subject, 0 if it does not, or FALSE if an error occurred

as mentioned in PHP documentation: 

Tuesday, July 16, 2013

MySQL WorkBench problem cannot create user

'Unhandled exception: Error creating account' error message when creating an account in mySQL Workbench.

I'm using workbench 5.2.31 CE.

This problem have popped up, when I'm trying to create a user in mySQL.  

There are two steps to work around this:
  1. edit the sql-mode configuration.  It can be found under Advance tab, Edit the text of sql-mode.  Remove the part "NO_AUTO_CREATE_USER," or cut it.  Then paste it back after you have created your user.
  2. Run the grant all previleges script as instructed below.

The solution is very simple.  You just have to run one of this statement in the Workbench Query window:

GRANT ALL PRIVILEGES ON *.* TO changetousername@localhost;
GRANT ALL PRIVILEGES ON *.* TO 'changetousername'@'%';

This will create an account without password.  So better set the password and change the previleges.

I don't know if this is the best work around or the worst.  But if you are desperate to add a user account.  This is the way that worked for me.

Here is part of the source of the solution:
http://stackoverflow.com/questions/15673640/unhandled-exception-error-creating-account

Tuesday, July 9, 2013

Cookie Setting troubles in PHP

I was trying to determine why the value for a cookie is not reflecting on my page.

Here are some of other developers say you should now in implementing cookies:

  1. It has to be on top before any code is generated by the page
  2. Cookie will not reflect on the same page when you set it.  It will reflect on the next loading of the page.
2nd one is true.  The first one also seems to be true, since no value is placed when I placed the code in the middle and after html codes have been rendered.

Here are the links to those recommendations:


There is a problem with the cookie when the mobile browser is never closed.  I had my browser open in the background.  Even when I set the cookie to expire in 30 mins.  It does not happened, since the browser still reads the value even beyond expire date.

Wednesday, June 19, 2013

Notepad++ free IDE for programming

I just started using this IDE called notepad++.  I have been hearing things about this app, and when I tried it, I had a bit of a hard time getting the hang of it.

The only thing I liked about it. Is the document preview on the right side, where I can see the whole code and drag the view to where I want to be.  There could be more features on this free IDE, I could just be scratching the surface.

As a free tool, I like this IDE already.  Only thing lacking, is the design window, but that could be asking for something else, when it is just an advance version of notepad.

Official website of Notepad++: http://notepad-plus-plus.org/

IIS 6, windows 2003 SMTP service not sending email

I have recently been trying to install SMTP service on our new server, but been having trouble sending email.

In my case, the solution and instructions are found on this link: http://www.symantec.com/business/support/index?page=content&id=TECH86263

I added the component, tried their IIS SMTP test, but somehow the email was only in the queue.  I already restarted when I installed the SMTP service.

I looked at my IPv4 settings, but I there seems to be something lacking done by our Network Admin.  He forgot to place the DNS for the server.

So I placed the DNS, tried the SMTP send, by placing a text file on the pickup folder, but it still goes to the queue folder under the default folder set-up: c:\Inetpub\mailroot\Queue

As indicated on this microsoft article: http://support.microsoft.com/?id=297700

After sending a few test, and still no positive results.  I decided to restart the server, as the server started, those email in the queue folder was sent and I received all of them.

This was the solution to my problem.  Hope this blog was any help to those who have the same problem.

Friday, May 31, 2013

IIS Redirection include querystring

I mentioned before that I tried redirecting a website source for users not able to see the real website, but a folder or a domain name that points to the real site.  Little, did I know I still need to set the redirection with a placement character of $S$Q.  Example: the URL is: http://www.Domainname.com$S$Q

Placing that placement character made a big difference in passing the query string and value.

Source of the solution: http://stackoverflow.com/questions/7147806/iis-redirect-preserve-querystring

Thursday, May 23, 2013

Tuesday, May 21, 2013

Save not permitted in MS SQL 2008 Server Management Studio

I encountered this first time on editing the fields in design, the management studio pops up a dialog box with message the changes cannot be saved due to drop and create of table.

Luckily, I found the answer on google search right away.  Here is the website of that solution: http://msdn.microsoft.com/en-us/library/bb895146.aspx

Wednesday, May 15, 2013

jQuery Thickbox, passing querystring value

I found a solution for passing value using the jQuery Thickbox.  My error was I placed the querystring value at the end, when I should have placed it on the front.

Sample:
page.php?queryvar=a&TB_iframe=true

This solved my problem.  Thank you internet for giving the answer, but the answer was deep in the haystack.

Saturday, May 11, 2013

A good source of explaination on RAID, NAS, and DAS

I was just browsing on YouTube and I was subscribed on Cnet.  I was fascinated about NAS servers for home use.  Then the term NAS and RAID came about.  I always forget the types of RAID there are and how to set them up.

Luckily, they have an article on this NAS, DAS, RAID, and other things concerning storage:
http://howto.cnet.com/8301-33088_39-57549884/digital-storage-basics-part-2-external-drive-vs-nas-server/

Monday, March 4, 2013

I often relay on the javascript, when it can be done on plain html and server side script

I have been guilty of using excessive javascript on my website developments, while ignoring the fact that some people, especially the iOS device users at time disable their javascript on their browsers.

I have been developing my own version of captcha, and I designed it, by using an external javascript, that in a way no one will be able to see the generated script on the page itself.

Only problem, is the method I created is not compatible with old iPad devices that have not updated their safari browser.  I was able to fix the problem, by directly placing the images on the page and not changing values on my html elements.

Friday, February 8, 2013

MS SQL Roles

This is a good topic to discuss.  MS SQL has made granular roles for specific tasks for each user, this is for security purposes of the Database Server.

You surely want certain database owner just to be able to access their database and nothing else.  Or just allow them to do a backup of their own server, this is where the database or server level roles come in.

I'm familiar of some of the roles but not all of them and at times I also forget, which role overrides the other roles, or which role is not needed.

Microsoft has the list on their site on their server level role: http://msdn.microsoft.com/en-us/library/ms188659(v=sql.105).aspx

This looks an okay reference on which is the role needed and which is not.

There is also the database level role: http://msdn.microsoft.com/en-us/library/ms189121(v=sql.105).aspx

A little off topic, I found a great blog on MS SQL versions, the list is pretty good and you will also know which version you are using.  Here is the link: http://sqlserverbuilds.blogspot.com/

Tuesday, January 29, 2013

Very good site to know the mobile screen size or viewport width

I was confident the project we are doing will will render fine on the mobile browsers of any devices.  Then when we are testing in on my Galaxy S3, I notice the condition my Jr. developer made for the CSS was not correctly triggered and I was not satisfied on the way the page was shown.

I asked, what was the problem, and according to my jr. developer: There was no way of knowing the size since every time a browser zooms, the pixel width in the viewport changes.  Which was true, when we tested it on our desktops and also on Opera mobile browser emulator.

While searching for a solution online, I stumbled upon this page:  http://i-skool.co.uk/mobile-development/web-design-for-mobiles-and-tablets-viewport-sizes/ where a list of most mobile devices and their viewport are listed.  This is very helpful in determining the smallest width you have to look for on a device.

I gave them a solution to place a width on the smallest screen possible at the viewport meta and this fixed the problem.  But being a stubborn subordinate; my jr. developer retained the current settings and just change the CSS.  Adding another pixel condition to render properly on my device.

When I asked, why do it like that, the reason according to my jr. developer was that setting a specific size will not render correctly on iPhone.  Since none of us owns an iPhone, we have to rely on the web on this findings.  According to my jr. developer the mobile website will now render correctly on the 240 pixel viewport screen, that is good enough for me.