bradgrafelman;10878916 wrote:Also note a couple of things:
You should not just do extract($_POST);. This is replicating the behavior of register_globals, a directive that has long ago been identified as a security threat and is no longer available as of PHP6.
You should never place user-supplied data directly into a SQL query. As woodeye mentioned above, you should always run this data through a sanitizing function such as [man]mysql_real_escape_string/man.
Don't forget to mark this thread resolved (using the link on the Thread Tools menu).
Yeah, I'm trying to learn this piece by piece. I updated my code on Friday to the Following. Also this code is NOT going to be user submitted. However, I am still taking the extra precautions of Real Escapes and Password Protection.
Here's what I have before the Password Protection:
<?php
$dash = "-";
if (isset($_POST['e_phone_1a']) && isset($_POST['e_phone_1b']) && isset($_POST['e_phone_1c'])
&& isset($_POST['e_phone_2a']) && isset($_POST['e_phone_2b']) && isset($_POST['e_phone_2c'])
&& isset($_POST['e_phone_3a']) && isset($_POST['e_phone_3b']) && isset($_POST['e_phone_3c'])
&& isset($_POST['e_fax_1a']) && isset($_POST['e_fax_1b']) && isset($_POST['e_fax_1c'])
&& isset($_POST['e_title']) && isset($_POST['e_city']) && isset($_POST['e_state'])
&& isset($_POST['e_site']) && isset($_POST['e_mail']) && isset($_POST['e_contact'])
&& isset($_POST['e_desc']) && isset($_POST['e_vendor'])) {
// Connect
$link = mysql_connect('data', 'base', 'info');
$select = mysql_select_db('rmation', $link);
if(!is_resource($link)) {
echo "Failed to connect to the server";
} elseif(!$select) {
echo "Failed to select database";
} else {
// Reverse magic_quotes_gpc/magic_quotes_sybase effects on those vars if ON.
if(get_magic_quotes_gpc()) {
if(ini_get('magic_quotes_sybase')) {
$e_phone_1a = str_replace("''", "'", $_POST['e_phone_1a']);
$e_phone_1b = str_replace("''", "'", $_POST['e_phone_1b']);
$e_phone_1c = str_replace("''", "'", $_POST['e_phone_1c']);
$e_phone_2a = str_replace("''", "'", $_POST['e_phone_2a']);
$e_phone_2b = str_replace("''", "'", $_POST['e_phone_2b']);
$e_phone_2c = str_replace("''", "'", $_POST['e_phone_2c']);
$e_phone_3a = str_replace("''", "'", $_POST['e_phone_3a']);
$e_phone_3b = str_replace("''", "'", $_POST['e_phone_3b']);
$e_phone_3c = str_replace("''", "'", $_POST['e_phone_3c']);
$e_fax_1a = str_replace("''", "'", $_POST['e_fax_1a']);
$e_fax_1b = str_replace("''", "'", $_POST['e_fax_1b']);
$e_fax_1c = str_replace("''", "'", $_POST['e_fax_1c']);
$e_title = str_replace("''", "'", $_POST['e_title']);
$e_city = str_replace("''", "'", $_POST['e_city']);
$e_state = str_replace("''", "'", $_POST['e_state']);
$e_site = str_replace("''", "'", $_POST['e_site']);
$e_mail = str_replace("''", "'", $_POST['e_mail']);
$e_contact = str_replace("''", "'", $_POST['e_contact']);
$e_desc = str_replace("''", "'", $_POST['e_desc']);
$e_vendor = str_replace("''", "'", $_POST['e_vendor']);
} else {
$e_phone_1a = stripslashes($_POST['e_phone_1a']);
$e_phone_1b = stripslashes($_POST['e_phone_1b']);
$e_phone_1c = stripslashes($_POST['e_phone_1c']);
$e_phone_2a = stripslashes($_POST['e_phone_2a']);
$e_phone_2b = stripslashes($_POST['e_phone_2b']);
$e_phone_2c = stripslashes($_POST['e_phone_2c']);
$e_phone_3a = stripslashes($_POST['e_phone_3a']);
$e_phone_3b = stripslashes($_POST['e_phone_3b']);
$e_phone_3c = stripslashes($_POST['e_phone_3c']);
$e_fax_1a = stripslashes($_POST['e_fax_1a']);
$e_fax_1b = stripslashes($_POST['e_fax_1b']);
$e_fax_1c = stripslashes($_POST['e_fax_1c']);
$e_title = stripslashes($_POST['e_title']);
$e_city = stripslashes($_POST['e_city']);
$e_state = stripslashes($_POST['e_state']);
$e_site = stripslashes($_POST['e_site']);
$e_mail = stripslashes($_POST['e_mail']);
$e_contact = stripslashes($_POST['e_contact']);
$e_desc = stripslashes($_POST['e_desc']);
$e_vendor = stripslashes($_POST['e_vendor']);
}
} else {
$e_phone_1a = $_POST['e_phone_1a'];
$e_phone_1b = $_POST['e_phone_1b'];
$e_phone_1c = $_POST['e_phone_1c'];
$e_phone_2a = $_POST['e_phone_2a'];
$e_phone_2b = $_POST['e_phone_2b'];
$e_phone_2c = $_POST['e_phone_2c'];
$e_phone_3a = $_POST['e_phone_3a'];
$e_phone_3b = $_POST['e_phone_3b'];
$e_phone_3c = $_POST['e_phone_3c'];
$e_fax_1a = $_POST['e_fax_1a'];
$e_fax_1b = $_POST['e_fax_1b'];
$e_fax_1c = $_POST['e_fax_1c'];
$e_title = $_POST['e_title'];
$e_city = $_POST['e_city'];
$e_state = $_POST['e_state'];
$e_site = $_POST['e_site'];
$e_mail = $_POST['e_mail'];
$e_contact = $_POST['e_contact'];
$e_desc = $_POST['e_desc'];
$e_vendor = $_POST['e_vendor'];
}
//Event Phone Number
$e_phone_1 = $e_phone_1a. $dash. $e_phone_1b. $dash. $e_phone_1c;
$e_phone_2 = $e_phone_2a. $dash. $e_phone_2b. $dash. $e_phone_2c;
$e_phone_3 = $e_phone_3a. $dash. $e_phone_3b. $dash. $e_phone_3c;
$e_fax_1 = $e_fax_1a. $dash. $e_fax_1b. $dash. $e_fax_1c;
//Event Start Date
$e_start_y = $_POST['e_start_y'];
$e_start_m = $_POST['e_start_m'];
$e_start_d = $_POST['e_start_d'];
$e_start_date = $e_start_y. $dash. $e_start_m. $dash. $e_start_d;
//Event End Date
$e_end_y = $_POST['e_end_y'];
$e_end_m = $_POST['e_end_m'];
$e_end_d = $_POST['e_end_d'];
$e_end_date = $e_end_y. $dash. $e_end_m. $dash. $e_end_d;
//Event Bikes
$e_bike_nite = $_POST['e_bike_nite'];
$e_bike_cruiser = $_POST['e_bike_cruiser'];
$e_bike_goldwing = $_POST['e_bike_goldwing'];
$e_bike_bmw = $_POST['e_bike_bmw'];
$e_bike_street = $_POST['e_bike_street'];
$e_bike_dirt = $_POST['e_bike_dirt'];
//Event Page URL
$titlestrip = eregi_replace("[^a-z0-9.]", "-", $e_title);
$e_url = $e_start_date. $dash. $titlestrip;
// Make a safe query
$query = sprintf("INSERT INTO tablehere
(title, start_date, end_date, city, state, description, site, email, contact, phone1, phone2, phone3, fax, vendor, bike_nite, cruiser, goldwing, bmw, street, dirt, URL)
VALUES ('$e_title', '$e_start_date', '$e_end_date', '$e_city', '$e_state', '$e_desc', '$e_site', '$e_mail', '$e_contact', '$e_phone_1', '$e_phone_2', '$e_phone_3', '$e_fax_1', '$e_vendor', '$e_bike_nite', '$e_bike_cruiser', '$e_bike_goldwing', '$e_bike_bmw', '$e_bike_street', '$e_bike_dirt','$e_url')",
mysql_real_escape_string($e_title, $link),
mysql_real_escape_string($e_start_date, $link),
mysql_real_escape_string($e_end_date, $link),
mysql_real_escape_string($e_city, $link),
mysql_real_escape_string($e_state, $link),
mysql_real_escape_string($e_desc, $link),
mysql_real_escape_string($e_site, $link),
mysql_real_escape_string($e_mail, $link),
mysql_real_escape_string($e_contact, $link),
mysql_real_escape_string($e_phone_1, $link),
mysql_real_escape_string($e_phone_2, $link),
mysql_real_escape_string($e_phone_3, $link),
mysql_real_escape_string($e_fax_1, $link),
mysql_real_escape_string($e_vendor, $link),
mysql_real_escape_string($e_bike_nite, $link),
mysql_real_escape_string($e_bike_cruiser, $link),
mysql_real_escape_string($e_bike_goldwing, $link),
mysql_real_escape_string($e_bike_street, $link),
mysql_real_escape_string($e_bike_dirt, $link),
mysql_real_escape_string($e_url, $link)
);
mysql_query($query, $link);
if (mysql_affected_rows($link) > 0) {
echo "Event inserted\n";
}
}
} else {
echo "Fill the form properly\n";
}
?>