domingo, 24 de mayo de 2009

COTÁCTANOS...

/**
* - sending mail via form
*
* Author: Alex Scott
* Details: The installation file
* Release: 1.1 ($Revision: 1.6 $)
*
* A U T O R E S P O N D E D O R
*
*/

/*****************************************************************************
* *
* C O N F I G U R A C I O N *
* *
*****************************************************************************/

// MODIFICA TU EMAIL AQUÍ //////////////////////////////////////////
// si está vació usará el email del campo ('send_to')
$send_to = "";

// Configura $send_cc si deseas enviar otra copia de la orden de hosting a otro email
// por ejemplo: $send_cc = array('O.COM'');
$send_cc = array('fetopax@gmail.com');

// MODIFICA AQUÍ el Subject o Título del email que recibirás en tu correo
// Puedes modificarlo si deseas recibirlo con otro nombre
$subject = "Dejanos tu correo para avisarte de otras descargas de interes ";

// No modificar
$referrers = array();

// No modificar - Si deseas puedes incluir el envio de archivos, valor 1 si, 0 no.
$attachment_enabled = 0;

// No modificar - Database - write CSV file with data of submitted forms //////////////
$database_enabled = 0;
$database_file = 'email.csv';

// Fields to collect
// $database_fields = '*' - mean all fields, as in form
// $database_fields = array('from', 'subject') - only 'from', 'subject' fields
$database_fields = '*';

//////MODIFICA AQUÍ Dirección URL después de procesar el formulario
$redirect_url = 'http://descargas-eared.blogspot.com/';

////// AutoRespondedor
////// Puedes cambiar cualquiera de los campos usando...
////// %nombre_campo% en el email de respuesta.
//////
$autoresponder_enabled = 1;
$autoresponder_from = $send_to;
$autoresponder_subject = "Tu Mensaje ha Sido recibido ";
$autoresponder_message = <<
%nombre_req%:

Tu pregunta o comentario ha sido recibido

Te responderé en breve plazo.

Muchas Gracias.

http://ecologiaactivared.blogspot.com/

___________________
Tu mensaje fué:
%comentarios%



----------------------------------------------------------------------------


MSG;

/***************************************************************************/

function do_formmail(){
global $autoresponder_enabled, $database_enabled;
$form = get_form_data();
$errors = check_form($form);
if ($errors) {
display_errors($errors);
return;
}
send_mail($form);
if ($autoresponder_enabled)
auto_respond($form);
if ($database_enabled)
save_form($form);
redirect();
}

function redirect(){
global $redirect_url;
header("Location: $redirect_url");
exit();
}


function save_form($vars){
global $database_file, $database_fields;
$f = fopen($database_file, 'a');
if (!$f){
die("Cannot open db file for save");
}
foreach ($vars as $k=>$v) {
$vars[$k] = str_replace(array("|", "\r","\n"), array('_',' ',' '), $v);
}
if (is_array($database_fields)) {
$vars_orig = $vars;
$vars = array();
foreach ($database_fields as $k)
$vars[$k] = $vars_orig[$k];
}
$str = join('|', $vars);
fwrite($f, $str."\n");
fclose($f);
}

function auto_respond($vars){
global $autoresponder_from, $autoresponder_message, $autoresponder_subject;
/// replace all vars in message
$msg = $autoresponder_message;
preg_match_all('/%(.+?)%/', $msg, $out);
$s_vars = $out[1]; //field list to substitute
foreach ($s_vars as $k)
$msg = str_replace("%$k%", $vars[$k], $msg);
/// replace all vars in subject
$subj = $autoresponder_subject;
preg_match_all('/%(.+?)%/', $subj, $out);
$s_vars = $out[1]; //field list to substitute
foreach ($s_vars as $k)
$subj = str_replace("%$k%", $vars[$k], $subj);
//
$_send_to = "$vars[name_from] <".$vars[email_from].">";
$_send_from = $autoresponder_from;
mail($_send_to, $subj, $msg, "From: $_send_from");
}

function _build_fields($vars){
$skip_fields = array(
'name_from',
'email_from',
'email_to',
'name_to',
'subject');
// order by numeric begin, if it exists
$is_ordered = 0;
foreach ($vars as $k=>$v)
if (in_array($k, $skip_fields)) unset($vars[$k]);

$new_vars = array();
foreach ($vars as $k=>$v){
// remove _num, _reqnum, _req from end of field names
$k = preg_replace('/_(req|num|reqnum)$/', '', $k);
// check if the fields is ordered
if (preg_match('/^\d+[ \:_-]/', $k)) $is_ordered++;
//remove number from begin of fields
$k = preg_replace('/^\d+[ \:_-]/', '', $k);
$new_vars[$k] = $v;
}
$vars = $new_vars;

$max_length = 10; // max length of key field
foreach ($vars as $k=>$v) {
$klen = strlen($k);
if (($klen > $max_length) && ($klen < 40))
$max_length = $klen;
}

if ($is_ordered)
ksort($vars);

// make output text
$out = "";
foreach ($vars as $k=>$v){
$k = str_replace('_', ' ', $k);
$k = ucfirst($k);
$len_diff = $max_length - strlen($k);
if ($len_diff > 0)
$fill = str_repeat('.', $len_diff);
else
$fill = '';
$out .= $k."$fill...: $v\n";
}
return $out;
}


function send_mail($vars){
global $send_to, $send_cc;
global $subject;
global $attachment_enabled;
global $REMOTE_ADDR;

global $HTTP_POST_FILES;
$files = array(); //files (field names) to attach in mail
if (count($HTTP_POST_FILES) && $attachment_enabled){
$files = array_keys($HTTP_POST_FILES);
}

// build mail
$date_time = date('Y-m-d H:i:s');
$mime_delimiter = md5(time());
$fields = _build_fields($vars);
$mail = <<This is a MIME-encapsulated message

--$mime_delimiter
Content-type: text/plain
Content-Transfer-Encoding: 8bit

El mensaje enviado es:
$fields
--------------------
Numero IP : $REMOTE_ADDR
Fecha y Hora : $date_time
EOF;

if (count($files)){
foreach ($files as $file){
$file_name = $HTTP_POST_FILES[$file]['name'];
$file_type = $HTTP_POST_FILES[$file]['type'];
$file_tmp_name = $HTTP_POST_FILES[$file]['tmp_name'];
$file_cnt = "";
$f=@fopen($file_tmp_name, "rb");
if (!$f)
continue;
while($f && !feof($f))
$file_cnt .= fread($f, 4096);
fclose($f);
if (!strlen($file_type)) $file_type="applicaton/octet-stream";
if ($file_type == 'application/x-msdownload')
$file_type = "applicaton/octet-stream";

$mail .= "\n--$mime_delimiter\n";
$mail .= "Content-type: $file_type\n";
$mail .= "Content-Disposition: attachment; filename=\"$file_name\"\n";
$mail .= "Content-Transfer-Encoding: base64\n\n";
$mail .= chunk_split(base64_encode($file_cnt));
}
}
$mail .= "\n--$mime_delimiter--";


//send to
$_send_to = $send_to ? $send_to : "$vars[name_to] <".$vars[email_to].">";
$_send_from = "$vars[name_from] <".$vars[email_from].">";
$_subject = $subject ? $subject : $vars['subject'];

mail($_send_to, $_subject, $mail,
"Mime-Version: 1.0\r\nFrom: $_send_from\r\nContent-Type: multipart/mixed;\n boundary=\"$mime_delimiter\"\r\nContent-Disposition: inline");

foreach ($send_cc as $v){
mail($v, $_subject, $mail,
"Mime-Version: 1.0\r\nFrom: $_send_from\r\nContent-Type: multipart/mixed;\n boundary=\"$mime_delimiter\"\r\nContent-Disposition: inline");
}

}

function get_form_data(){
global $REQUEST_METHOD;
global $HTTP_POST_VARS;
global $HTTP_GET_VARS;

$vars = ($REQUEST_METHOD == 'GET') ? $HTTP_GET_VARS : $HTTP_POST_VARS;
//strip spaces from all fields
foreach ($vars as $k=>$v) $vars[$k] = trim($v);
return $vars;
}

function check_form($vars){
global $referrers;
global $send_to;
global $subject;
global $HTTP_REFERER;

$errors = array();

// checkear email
if (!strlen($vars['email_from'])){
$errors[] = "El campo Email está vacio";
} else if (!check_email($vars['email_from'])){
$errors[] = "El formato del Email es incorrecto";
}
if (!strlen($send_to) && !strlen($vars['email_to'])){
$errors[] = "El campo Email está vacio (mal configurado)";
} else if (!strlen($send_to) && !check_email($vars['email_to'])){
//if to email specified in form, check it and display error
$errors[] = "El formato del Email es incorrecto";
}
if (!strlen($vars['subject']) && !strlen($subject)){
$errors[] = "Subject vacio, posible error en la configuración";
}
foreach ($vars as $k=>$v){
// checkaer campos requeridos (Terminación req , ejemplo: campo_req)
if (preg_match('/^(.+?)_req$/i', $k, $m) && !strlen($v)){
$field_name = ucfirst($m[1]);
$errors[] = "El campo $field_name está vacio";
}
// checkear campos numéricos (terminan con _num )
if (preg_match('/^(.+?)_num$/i', $k, $m) && strlen($v) && !is_numeric($v)){
$field_name = ucfirst($m[1]);
$errors[] = "El campo $field_name debe contener solo digitos o estar vacio";
}
// checkear por campos numéricos y campos requeridos, ambos; (terminan _reqnum)
if (preg_match('/^(.+?)_reqnum$/i', $k, $m) && !is_numeric($v)){
$field_name = ucfirst($m[1]);
$errors[] = "El campo $field_name debe contener solo digitos";
}
}

//check referrer
if (is_array($referrers) && count($referrers)){
$ref = parse_url($HTTP_REFERER);
$host = $ref['host'];
$host_found = 0;
foreach ($referrers as $r){
if (strstr($host, $r))
$host_found++;
}
if (!$host_found){
$errors[] = "Unknown Referrer: $host";
}
}
return $errors;
}

function display_errors($errors){
$errors = '
  • ' . join('
  • ', $errors);
    print <<
    Error

    Un Error ha Ocurrido





    $errors


    Por favor presiona volver para solucionar este error.







    EOF;
    }


    /**
    * Check email using regexes
    * @param string email
    * @return bool true if email valid, false if not
    */
    function check_email($email) {
    #characters allowed on name: 0-9a-Z-._ on host: 0-9a-Z-. on between: @
    if (!preg_match('/^[0-9a-zA-Z\.\-\_]+\@[0-9a-zA-Z\.\-]+$/', $email))
    return false;

    #must start or end with alpha or num
    if ( preg_match('/^[^0-9a-zA-Z]|[^0-9a-zA-Z]$/', $email))
    return false;

    #name must end with alpha or num
    if (!preg_match('/([0-9a-zA-Z_]{1})\@./',$email) )
    return false;

    #host must start with alpha or num
    if (!preg_match('/.\@([0-9a-zA-Z_]{1})/',$email) )
    return false;

    #pair .- or -. or -- or .. not allowed
    if ( preg_match('/.\.\-.|.\-\..|.\.\..|.\-\-./',$email) )
    return false;

    #pair ._ or -_ or _. or _- or __ not allowed
    if ( preg_match('/.\.\_.|.\-\_.|.\_\..|.\_\-.|.\_\_./',$email) )
    return false;

    #host must end with '.' plus 2-5 alpha for TopLevelDomain
    if (!preg_match('/\.([a-zA-Z]{2,5})$/',$email) )
    return false;

    return true;
    }

    do_formmail();
    ?>
  • sábado, 23 de mayo de 2009

    Los arietes hidráulicos, son...

    Los arietes hidráulicos, son uno de los tipos de bomba de agua|bomba de agua que funcionan aprovechando la energía hidráulica, sin requerir otra energía externa.

    Mediante un ariete hidráulico, se puede conseguir elevar parte del agua de un arroyo o acequia a una altura superior. También se puede emplear para riego por aspersión.

    El ariete hidráulico fue patentado en 1796, por Joseph Montgolfier (1749-1810), consiste en una máquina que aprovecha únicamente la energía de un pequeño salto de agua para elevar parte de su caudal a una altura superior.

    A partir de su invención, el ariete hidráulico tuvo...
    Más Información...

    lunes, 4 de mayo de 2009

    Calcula tu huella ecológica

    Interesante página web para el calculo de tu Huella Ecológica que nos permite calcular nuestra huella ecológica a través de unas preguntas y saber cuantos planetas serían necesarios si todo el mundo fuera como nosotros.

    La huella ecológica es un indicador agregado definido como «el área de territorio ecológicamente productivo (cultivos, pastos, bosques o ecosistemas acuáticos) necesaria para producir los recursos utilizados y para asimilar los residuos producidos por una población dada con un modo de vida específico de forma indefinida». A cada Humano le corresponde 1,5 hectáreas.

    Su objetivo fundamental consiste en evaluar el impacto sobre el planeta de un determinado modo o forma de vida y, consecuentemente, su grado de sostenibilidad, analizando 4 aspectos:

    1.- Emisión de CO2.
    2.- Por alimentación.
    3.- Por tipo de vivienda.
    4.- Por Consumo de bienes y servicios.

    La ventaja de la huella ecológica para entender la apropiación humana está en aprovechar la habilidad para hacer comparaciones. Es posible comparar desde las emisiones de transportar un bien en particular con la energía requerida para el producto sobre la misma escala (hectáreas).

    Haz click aquí para calcular tu huella ecológica.
    más información...
    Más informacion en Wikipedia.