Categories
Joomla!

Removing or changing the GENERATOR meta tag

You may prefer not to have the generator meta tag in the <head> section of your source code reveal what you've used to create your website.

To change this, insert the following  line immediately above the <head> line in the index.php file of your template, where text is your preferred text. You can also choose to leave it blank.

<?php $this->setGenerator('text'); ?>

Doing this in the template means your changes will not be overwritten when you upgrade the Joomla! core, but if you change templates make sure to change your new template.

Applies to Joomla! 1.5.

Categories
Joomla!

Removing 'Welcome to the Frontpage' from Joomla

A steady frustration for new Joomla users is the "Welcome to the Frontpage" text that appears on the site.

To remove this, go to Menu Manager (or the "Menu" Dropdown menu in your site's Control Panel), select Main Menu, then click on the Home link.

Click on Parameters (System) and you'll see Page Title controls which will allow you to change or suppress the page title.

There are two controls to be concerned with here:

  1. Page Title: This sets the page title, which may appear on the page itself (This causes the most frustration) but also appears in the title bar.  Typically you don't want to remove this as you want your page title to appear in the titlebar of the browser
  2. Show Page Title: This determines whether the page title appears on the page itself.
Categories
MySQL PHP

Prevent SQL Injection attacks in PHP and MySQL

Place this code in your database connect include, just before the database connection is made.

This ensures that SQL injection attempts are handled before the database is opened.

By doing it up front like this, the input is already escaped and we don't have to deal with it in our other scripts as we use input data.

1
2
3
4
5
6
7
8
9
10
11
12
// ~~~~~~~~~~~~~~~~~~~~ SECURE ALL INPUT FROM SQL INJECTION ~~~~~~~~~~~~~~~~~~~~~~~~ //
// --- escape special characters in input data to prevent SQL injection attacks ---- //
 
// Prevent SQL Injection attacks in POST vars
foreach ($_POST as $key => $value) {
  $_POST[$key] = mysql_real_escape_string($value);
}
// Prevent SQL Injection attacks in GET vars
foreach ($_GET as $key => $value) {
  $_GET[$key] = mysql_real_escape_string($value);
}
// ~~~~~~~~~~~~~~~~~~~ /secure all input from sql injection ~~~~~~~~~~~~~~~~~~~~~~~~ //
Categories
Database MySQL

Resetting a MySQL Password

Resetting a MySQL root password (or other password, for that matter) is easy enough if you have admin access to the server.

First go to the command line (Start > Run > "cmd") and type "mysqladmin" – and see a bunch of output text, you're good to go. otherwise you'le need to locate mysqladmin.exe and navigate to that folder.

Once there, enter the following command:

mysqladmin -u root password NEWPASSWORD

and you're good to go!

Categories
MySQL

Importing a Spreadsheet or .CSV file into MySQL

Importing a spreadsheet, or its comma separated (CSV) equivalent, into a MySQL database can be enormously challenging and frustrating.

After many attempts at the solutions available through online searches, I determined that the most effective way was to save the spreadsheet in comma-separated format and write a PHP script to read the file row by row and insert the records in the database.

You'll need to adapt this script to your situation, the example below is keyed to the table I've been working with.
[sourcecode language="php"]
";
// ~~~~~~~~~~~~~~~~~~~~~~~~~ /create attribute list ~~~~~~~~~~~~~~~~~~~~~~~~~ //
// ~~~~~~~~~~~~~~~~~~~~~~~~~ PROCESS DATA LINES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
foreach($lines as $line_num => $line) {
 // trim the line – any whitespace can complicate life later
 $line = trim($line);

 // explode the line into an array, splitting it on the commmas in the csv.
 $values = explode(",",$line);
 // prepare the beginning of the INSERT statement
 $insert_statement = "INSERT INTO packages ($attribute_list) VALUES (";
 $insert_statement = "INSERT INTO packages (attribute_one,attribute_two,attribute_three,attribute_4,attribute_5) VALUES (";
 // now loop through the array, adding the elements to the values() section of the insert statement
 foreach ($values as &$value) {
  // according to
  //  http://bytes.com/groups/php/1146-insert-null-not-blank-into-mysql-php-script
  // this will insert null for empty elements
  if ($value) {
   $insert_statement .= "'" . mysql_escape_string($value) . "'";
  } else {
   $insert_statement .= "NULL"; // in the SQL query "NULL" will NOT be quoted
  }
  $insert_statement .= ",";
 }
 // now lop off the trailing string…
 $insert_statement = substr($insert_statement,0,-1);
 // … and close the statement
 $insert_statement .= ");";

 // now we'll either execute the statement or display it onscreen
 // (by default we only display onscreen for debugging – user must pass query string to execute)
 if ($_GET['execute'] == "1") {
  // if the execute instruction is passed in the query string, "?execute=true", execute the insert statement against the database
  $result = mysql_query($insert_statement);
  echo "Inserted record
";
 } else {
  // otherwise, display the insert statement onscreen for debug purposes
  echo $insert_statement;
  echo "
";
 }

}
// ~~~~~~~~~~~~~~~~~~~~~~~~~ /process data lines ~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
?>
[/sourcecode]