Microsoft Office 2007 Files Downloading as .Zip Files

November 13, 2008 by daynah  
Filed under Code Snippets

A colleague IMed me earlier today. She was wondering why her .xlsx document was downloading as a strange .zip file. She had uploaded it into the content management system correctly, but when she tried to test it out, the file looked corrupted.

Albert did some digging around and figured that the Microsoft Office 2007 files extensions were not recognized by Apache. So downloading files like .xlsx, .docx, .pptx, etc. will translate to file.zip instead. I did some further browser testing and noticed this problem only appears in IE browsers. It works perfectly in Firefox, Chrome, and Safari.

To fix this problem, you would need to add the extensions to the Apache config file.

Step 1: Make sure you back up your configuration file (httpd.conf in Apache) or (apache2.conf in Apache2)

Step 2: Search for the section with the AddType keywords.

Step 3: Add the following lines:


# MIME type fix
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xlsx
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document .docx
AddType application/vnd.openxmlformats-officedocument.presentationml.slideshow .pptx

If you load other Microsoft Office 2007 files on your Apache web server, you may want to add additional file extensions.

Thanks for figuring it out Albert! That solved the mystery behind two work tickets today.

Sources: Albertech.net, MS Office 2007 File Extensions at WebmasterWorld

Popularity: 17% [?]

PHP Email Validation

August 20, 2007 by daynah  
Filed under Code Snippets

Note to self, use this for email validation:

function isEmail($email)
{
if(ereg("^([a-zA-Z0-9_\-\.]+)@
((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|
(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", $email))
return 1; // If email address is valid
else
return 0;
}

Minus all the spaces in the ereg function.

Popularity: 46% [?]

CSS 3: Substring Matching Attribute Selectors

March 16, 2007 by daynah  
Filed under CSS, Code Snippets, Tutorials

css-iconI was reading up on CSS 3’s Substring matching attribute selectors and discovered a fun way to reference anchor links!

Web links can be a variety of files. PDF, DOC, and HTML are some of the familiar ones. I was wondering if we could put a small icon to denote what type of file is being downloaded, and with CSS3, it’s quite possible.

Create an HTML file. Between the <head> tags, put

<style>
body {
  font-size: .9em; font-weight: bold;
}
a { color: blue; line-height: 1.5em; }
a[href$=".html"] {
   padding-left:20px; background-image:url(html.gif);
   background-repeat: no-repeat;
}
a[href$=".pdf"] {
   padding-left:20px; background-image:url(pdf.gif);
   background-repeat: no-repeat;
}
a[href$=".doc"] {
   padding-left:20px; background-image:url(msword.gif);
   background-repeat: no-repeat;
}
</style>

and between the <body> tags, put:

<ul>
<li><a href="myfile.html">My HTML File</a></li>
<li><a href="myfile.pdf">My PDF File</a></li>
<li><a href="myfile.doc">My Word Doc File</a></li>
<li><a href="http://php-princess.net">Any Link</a></li>
</ul>

Save the file as mytest.html (and download these three images as well — MS Word PDF HTML) and open it up in Firefox 2.0. You will then see something that looks like this:

CSS 3 Links
Isn’t that great? The padding attribute moves the link 20px to the right. And the background-repeat attribute makes sure that image doesn’t repeat. So when I link a PDF file on my website, an image of a PDF file automatically shows next to the link. What a time-saver. :) The only drawback to this is that CSS3 isn’t fully implemented in all of today’s browser. It seems that Firefox 2.0 is ahead in the game. MSIE 7.0 and browsers below do not render CSS3 correctly. But it is a nice tip. Hopefully the next generation of browsers will render CSS3 the way it’s suppose to.

Popularity: 29% [?]

How to Connect to a MySQL Database using PHP

March 29, 2005 by daynah  
Filed under Code Snippets, PHP, Scripts and Coding

I was helping my coworker yesterday to create her first PHP-Database program. She already knew how phpMyAdmin worked, so I created a sample page for her to show how to connect to the database and then retrieve data from a query. Maybe this sample page could help you too. I commented as much of the code as I could. Let me know if you have any questions.

Read more

Popularity: 28% [?]

Removing last character of a string

June 30, 2004 by daynah  
Filed under Code Snippets

I had a string that looked like:

2;4;6;7;

The string is dynamic, so it could also be:

3;5;2;8;9;

I needed to remove the last ; (semicolon) from the string but wasn’t sure what the best method of doing this was. I thought about using the strlen() (string length) function. Get the value of how long the string is, and then removed the last character using substr(). The task seems a bit tedious and unefficient though.

So I searched Google to find the best method, and stumbled upon the answer to my question — How do you remove the last character of a string?

The solution is to use:
$outgoing = substr_replace($incoming,"",-1);

So if I use:
$outgoing = substr_replace('3;5;2;8;9;',"",-1);

My output would be:
3;5;2;8;9

Exactly what I was looking for! Thank you Graham Ellis!

Popularity: 26% [?]

Animation using CSS

I was reading this article called “CSS Sprites: Image Slicing’s Kiss of Death” which shows how we can animate images, using only CSS and no javascript. I decided to try it out for myself, and played with the code for a bit. I came up with this this example using an image. The amazing thing part is that only one image was used. The coding for this trick is very condensed and much shorter than a javascript. One advantage this has over using javascript is that it is much faster. There’s no delay with multiple image swapping. Instead, css displays a different part of one image.

Read more about this CSS trick and see if you can give your webpage a little more life. :)

Popularity: 23% [?]

Easter Date

March 29, 2004 by daynah  
Filed under Code Snippets

Are you wondering what day Easter falls on this year? Not to worry, a simple PHP script can figure it out faster than you flipping a calendar. heh Ok, maybe not, but it’s still a neat trick. :)

Just put this code in a php file, uploaded and see for yourself.
< ? echo date ("M-d-Y", easter_date(2004)); ?>

More information here.

Popularity: 21% [?]

RAND() function in MySql

July 20, 2003 by daynah  
Filed under Code Snippets

I was trying to use this query to get a random row from the database:

$myRandom = "SELECT * FROM MYTABLE ORDER BY RAND() LIMIT 1";

and I couldn’t figure out why it would continually get the previous number instead of some random number.

Ahh, but look what’s at the bottom of the page. ;)

“As of MySQL 3.23.52, MySQL changed the way RAND() functions, such that you MUST supply a SEED to get an actual random number. If you do not, each new connection will return close to the same number as the previous new connection. An example to test this would be to run the follow command multiple times in a row. mysql -u username -p -e’select rand()’ A basic way to seed this would be to run RAND(NOW()).”

So now I know, I must provide a random seed. ;)

Source: http://www.mysql.com

Popularity: 21% [?]

ipb Users Online Code Block

May 13, 2003 by daynah  
Filed under Code Snippets

I wrote a small ipb (Invision Power Board) code block last nite that I wanted to share. It’s really simple, but useful script. :)

If you look on the left side of http://php-princess.net , you will see a small “user online” block. It grabs the current users online on the ipb board and put it in that little table.

You can see another sample of the script here. And if you like it, you can download it here.

Popularity: 27% [?]

Getting Rid of MS Smart Quotes

April 11, 2003 by daynah  
Filed under Code Snippets

Ever have that problem with displaying Smart Quotes in the browser? Well, here is how I solved the little bug.

This problem has been bugging me for a while. See the image:

smart quotes

The problem is in the red circle. See how there’s junk around “Meet the Author?” Well, I was researching on the problem and it’s because the user copied and pasted from a Word Document. Microsoft adds these “Smart Quotes” to your documents which are just fancy close and open quotes. These replaces the straight quotes ( ” ) when the user enters the data.

Read more

Popularity: 24% [?]

Stacking Functions

April 10, 2003 by daynah  
Filed under Code Snippets

ucwords(eregi_replace(‘font’, ‘ font’, profileFont($the_lastlogin->fontsize)))

Oh my, this is an example of my coding now. I tend to throw a lot of functions at my variables. hehe

What exactly does this do in my program? Well, $the_lastlogin->fontsize is the variable I got my my query. The profileFont() function is a something I wrote that returns the font name according to the id I pass it. The eregi_replace() is there to display the font name as …”small font” rather than “smallfont.” And the ucwords() function capitalizes the first letter of each word, so the result would be “Small Font” rather than “small font.” Whew. All that in ONE line. :)

Popularity: 21% [?]

Add link to favorites

February 26, 2003 by daynah  
Filed under Code Snippets

Javascript code snippet for a link to add to favorites. ;)

<script>
<!–
{
var favoriteurl=”http://php-princess.net”
var favoritetitle=”PHP Princess”
document.write(“<a href=’javascript:window.external.AddFavorite(favoriteurl, favoritetitle);’>Add to Favorites!</a>”);
}
//–>
</script>

Popularity: 25% [?]

Function: number_format( )

February 24, 2003 by daynah  
Filed under Code Snippets

Here’s a nice function I learned, number_format().

I was looking for a way to add in the commas for the cost of an item since they were exceeding $1,000. The number $100000.00 is hard to read as opposed to $100,000.00. I thought some parsing would be involved, but I should have know that PHP would already have a function for this. ;)

Here’s a code snippet:
<?php

$value = 100000.00;
echo ‘The cost is $’ . number_format($value, 2) . ‘.’;

?>

Having a ‘2′ in the parameters tells the function to return 2 decimal spaces. :) Simple huh? The function comes in handy if you ever have to print out the cost of items in a project.

Popularity: 21% [?]

Output Control Functions

October 24, 2002 by daynah  
Filed under Code Snippets

I just learned what Output Control Functions are the other day, while reading about eval(). Here’s a small piece of my knowledge. :)

Popularity: 22% [?]

Regular Expression Library

October 16, 2002 by daynah  
Filed under Code Snippets

I’ve always had trouble with regular expressions. Then Al gave me this great link to the regular expressions library. :)

Popularity: 22% [?]

phpCountdown

May 13, 2002 by daynah  
Filed under Code Snippets

2 days til my bday… 7 days til graduation… do you think you need a countdown script? Why not try this phpCountdown script. :)

Popularity: 22% [?]

Date using mySQL

May 9, 2002 by daynah  
Filed under Code Snippets

Ever wonder how to get the date using mysql? Well, here’s how. :)

Popularity: 21% [?]

PHP Tutorials

May 8, 2002 by daynah  
Filed under Code Snippets

I had some time to write up a few tutorials. You may check them out here at the board. I’ll try to write a few everyday. :)

Popularity: 21% [?]

Random Splash Pages

April 26, 2002 by daynah  
Filed under Code Snippets, PHP

I was looking through my email and found this email from Grace:

Hi Daynah! It’s me, Grace. I would like to ask a question if you don’t mind -_-; Sorry if I am bothering you. I would like to ask if how can I make random splash pages with php? Or do you know any scripts I could download for
that? Thank you so much. And hope you are having a great week =)

Here is a piece of code that Albert (my boyfriend) wrote. It creates an array of random images to use. It’s pretty simple to modify if you want to create random splash pages. If you have comments/questions, please leave them below.

<?php

// Function name: randomimage($showimage)
// Purpose: Create an array with random data for an image
// Use: Please link http://php-princess.net/
function randomimage($showimage)
{

    // ARRAY OF SPLASH IMAGES
    $bgimages = array('images/splash1.jpg','images/splash2.jpg',
                      'images/splash3.jpg','images/splash4.jpg',
                      'images/splash1.jpg','images/splash2.jpg',
                      'images/splash3.jpg','images/splash4.jpg');

    $bgtext = array ('Picture of Splash 1','Picture of Splash 2',
                     'Picture of Splash 3','Picture of Splash 4',
                     'Picture of Splash 1', 'Picture of Splash 2',
                     'Picture of Splash 3', 'Picture of Splash 4');

    $bgmax = count($bgimages)-1;

    // Check if viewing additional image option is
    // set / look for non-integer value passing
    if ((!isset($showimage)) || (!ereg ("^[0-9]{1,2}$", $showimage)))
    {
        srand((double)microtime()*1000000);
        print_r($names);  

        srand ((double) microtime() * 10000000);

        $rand_keys = array_rand ($bgimages, 2);

        // obtain random image from array
        $bgimage = $bgimages[$rand_keys[0]];
        $bgalt   = $bgtext[$rand_keys[0]];
        $bgkey   = $rand_keys[0];
    }    

    return array($bgimage,$bgalt,$bgkey);
}

// Creates a list of the variables with random image
list($bgimage,$bgalt,$bgkey) = randomimage($showimage);

// Put printout into variable $mainbody
$mainbody = ''.$bgalt.'';

// Print out $mainbody
print "$mainbody";

?>

Popularity: 21% [?]

index.php?page=aboutme

April 26, 2002 by daynah  
Filed under Code Snippets

I recieved an email yesterday about this:
Hi,

I visited your site daynah.net, very nice site you got :) I very curious how do you ppl extract data from a
database like ‘index.php?page=aboutme’. I read through php.net which some of them refer me and i don’t find very good page on the site to teach me on that. I currently have a database (mySQL) so i can try it out :) but i need some guide, im very new to it =)

Would you mind to guide me with how to extract data on the database and do a link like ‘index.php?page=aboutme’? I really very curious about it..heh.

Hope to hear from you soon,
Edward

—————

Hello there curious Edward. ;) A lot of people have been asking me this, so I decided to post it up to share . The coding is pretty simple. And this is only one way of doing it.

In your index.php page, put in this:

<?
  if($page == 'aboutme')
    include('aboutme.php');
  else if($page == 'downloads')
    include('downloads.php');
  else
    include('main.php');

?>

now create other files called aboutme.php, downloads.php, and main.php. And put something in them like “this is the about me page,” “this is the downloads page,” etc.

Go to your url, http://yourdomain.com/index.php?page=aboutme What do you see?

So.. is that simple? :) Another note, the pages don’t have to be aboutme.php… it can also be aboutme.txt of aboutme.html, or rename it to anything else if you like. And a mysql database is not required at all. I hope that helps.

Popularity: 26% [?]

Next Page »