Comunidad de diseño web y desarrollo en internet online

Problema al añadir nuevos campos a formulario PHP

Citar            
MensajeEscrito el 22 Jun 2011 07:59 pm
Hola buenas;

Tengo una web en Wordpress en la cual tengo un formulario de contacto.

Tengo que añadir unos campos a un formulario, el cual hasta el momento solo tenía 3, nombre, email y mensaje (ahora tendrá además empresa y teléfono)

En el formulario ya he añadido los input pero en el archivo post.php que es el que procesa el formulario no logro que lleguen al correo esos nuevos campos. No soy ningún experto en PHP así que me imagino que será algo evidente pero llevo un tiempo mirándolo y la verdad es que no soy capaz.

Os pongo el código del archivo post.php:

Código PHP :

<?php

// CONFIGURATION --------------------------------------------------------------

// This is the email where the contact mails will be sent to. 
// In WordPress Edition, it will be done via the theme admin. You don't need to modify this file under WP Edition.
$config['recipient'] = isset($_POST['c_email']) ? trim($_POST['c_email']) : '';

// This is the subject line for contact emails.
// The variable %name% will be replaced with the name of the sender.
$config['subject'] = 'Nuevo mensaje desde la web de: %name%';

// These are the messages displayed in case of form errors.
$config['errors'] = array
(
   'no_name'       => 'El nombre est&aacute; vac&iacute;o',
   'no_email'      => 'El e-mail est&aacute; vaci&iacute;o',
   'invalid_email' => 'Direcci&oacute;n de e-mail no v&aacute;lida',
   'no_message'    => 'El mensaje est&aacute; vac&iacute;o',
);

// END OF CONFIGURATION -------------------------------------------------------


// Ignore non-POST requests
if ( ! $_POST)
   exit('Por favor, vuelve a la ra&iacute;z del sitio web.');

// Was this an AJAX request or not?
$ajax = (isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');

// Set the correct HTTP headers
header('Content-Type: text/'.($ajax ? 'plain' : 'html').'; charset=utf-8');

// Extract and trim contactform values
$name    = isset($_POST['name']) ? trim($_POST['name']) : '';
$email   = isset($_POST['email']) ? trim($_POST['email']) : '';
$empresa   = isset($_POST['empresa']) ? trim($_POST['empresa']) : '';
$telefono   = isset($_POST['telefono']) ? trim($_POST['telefono']) : '';
$message = isset($_POST['message']) ? trim($_POST['message']) : '';

// Take care of magic quotes if needed (you really should have them disabled)
if (get_magic_quotes_gpc())
{
   $name    = stripslashes($name);
   $email   = stripslashes($email);
   $empresa   = stripslashes($empresa);
   $telefono   = stripslashes($telefono);
   $message = stripslashes($message);
}

// Initialize the errors array which will also be sent back as a JSON object
$errors = NULL;

// Validate name
if ($name == '' || strpos($name, "\r") || strpos($name, "\n"))
{
   $errors['name'] = $config['errors']['no_name'];
}

// Validate email
if ($email == '')
{
   $errors['email'] = $config['errors']['no_email'];
}
elseif ( ! preg_match('/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD', $email))
{
   $errors['email'] = $config['errors']['invalid_email'];
}

// Validate message
if ($message == '')
{
   $errors['message'] = $config['errors']['no_message'];
}

// Validation succeeded
if (empty($errors))
{
   // Prepare subject line
   $subject = str_replace('%name%', $name, $config['subject']);

   // Additional mail headers
   $headers  = 'Content-Type: text/plain; charset=utf-8'."\r\n";
   $headers .= 'From: '.$email;

   // Send the mail
   if ( ! mail($config['recipient'], $subject, $message, $headers))
   {
      $errors['server'] = 'Parece que existen problemas t&eacute;cnicos con nuestro servidor. Por favor, vuelve a probar pasados unos minutos. '.
                          'Si lo prefieres, puedes enviarnos un mail a '.$config['recipient'].'.Muchas gracias.';
   }
}

if ($ajax)
{
   // Output the possible errors as a JSON object
   echo json_encode($errors);
}
else
{
   // Show a simple HTML feedback message in case of non-javascript support
   if (empty($errors))
   {
      echo '<h4>Muchas gracias!</h4>';
      echo '<p>Tu mensaje ha sido enviado con &eacute;xito. Nos pondremos en contacto tan pronto nos sea posible.</p>';
   }
   else
   {
      echo '<h4>Oops!</h4>';
      echo '<p>Por favor, vuelve atr&aacute;s y comprueba los siguientes errores:</p>';
      echo '<ul><li>';
      echo implode('</li><li>', $errors);
      echo '</li></ul>';
   }
}

?>



El problema es que únicamente me llega al correo el nombre, el mail, y en el cuerpo del mail únicamente el mensaje, cuando lo que quiero que me llegue además de éste es la empresa y el teléfono.

Espero haberme explicado bien.

Muchas gracias y un saludo!

mnieto

Por mnieto

16 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 03:44 am
Estimado entre esto

Código PHP :

if ($message == '') 
{ 
   $errors['message'] = $config['errors']['no_message']; 
} 


y

Código PHP :

// Validation succeeded 


Intenta concatenar la empresa y el telefono. Te va a quedar junto pero para probar hazlo asi.

Código PHP :

$message = $mesagge."\n".$empresa."\n".$telefono;


Ojala te resulte

Saludos

Por nethost_cl

36 de clabLevel



Genero:Masculino  

CHILE

chrome
Citar            
MensajeEscrito el 23 Jun 2011 03:46 am
Sorry me equivoque en una ggggggggg.

Código PHP :

$message = $message."\n".$empresa."\n".$telefono;

Por nethost_cl

36 de clabLevel



Genero:Masculino  

CHILE

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.