So much of SEO advice around the internet, well what I've found anyway, is based on bloggers or people with content heavy sites. This is making it a little hard to find what I'm after.

I can't see websites like Amazon, eBay, DaniWeb even, following this kind of SEO.

So the question is, how do websites that provide more of a service, particularly sites where the user comes to do something instead of reading something, perform SEO (offsite) and marketing?

Can anyone share some knowledge (perhaps Dani herself?), and try to avoid mentioning paid advertising please -- it's something I want to avoid.

raajvengadesan commented: 2 +0

The first thing that stands out is :

if(!$insert = mysql_query("INSERT INTO VALUES(NULL, '', '$image', '$image_full_name', '', '', '', '')"))

INSERT INTO ... what, you've forgotten the table name.

Should be INSERT INTO tbl_name VALUES...

Also, consider using some other syntax to keep it a little cleaner (in my eyes), get rid of the empty values, e.g.

INSERT INTO tbl_name (User_ID, Image_File, Name) VALUES (23, 'TMP.JPG', 'Monkey');

That way you only insert what you need to, but make sure you have defaults set in your table denfinitions or things unexpected may happen.

Wrong use of if(isset($_POST['submit'])) here, what you're looking for is:


    if($_SERVER['REQUEST_METHOD'] == 'POST') {

        // Validate and Execute Password Change Code ...

    } else {

        // Display Form



Being good at programming is not about how many languages you know, it's about being able to design efficient algorithms, languages are only tools.

WaltP commented: Well said +0

I second the mysql_real_escape_string() ...

Not had much time to look but one thing that pops out is you're inserting a blank ID, just remove the ID field from the query and make sure it's set to auto_increment in the DB.

And I think from what you're asking, is you need to create additional age groups in the DB, Age_Group_Opt_1, Age_Group_Opt_2, Age_Group_Opt_3 and insert the values into those and if the user didn't give a value, then insert a NULL

Change functions.c to functions.h , it should be a header file unless you have a very good reason not to.

Then include the functions.h in the first file and remove the #include from the second file otherwise you will be pulling that in twice.

Then remove int fun1(); and int fun2(); from the first file -- that's called prototyping, done only when you call a function before it's been declared, in this case you declare it in the header file so any attempt to redeclare it will throw an error.

/ functions.h /

int i;

int fun1(){
printf ("\n %d", i);
return 0;

int fun2(){
printf ("\n %d", i);
return 0;


include "functions.h"

int main(){
i = 35; / set, don't declare /
printf ("\n %d", i);
return 0;

Finally, compile with : gcc -o Program.exe functions.c

hkdani commented: Adds insightful comments suggesting improvement on user methodology. +5