PDA

Ver la versión completa : Problemilla con FBML y PHP



warnoise
17-12-2010, 14:57
Estoy diseñando un formulario con nombre y email en FBML (el cual funciona 100%) el problema no me viene ahi (Creo! :¬¬)

<form action="http://YOURSITE/enviar.php" id="ContactForm" name="ContactForm" method="post">
<p><label>Nombre: <input type="text" tabindex="1" value="" name="name" id="name" size="15"/></label>
<label>Email: <input type="text" tabindex="2" value="" name="email" id="email" /></label>
<input type="button" class="submit" onclick="submitAJAXForm(this);" value="Enviar"/></p>
</form>



<script>
function submitAJAXForm(sub)
{
sub.setDisabled(false);

var ajax = new Ajax();
ajax.responseType = Ajax.FBML;

ajax.ondone = function(data)
{
var msgdialog = new Dialog();
msgdialog.showMessage('Confirmación', 'El formulario ha sido enviado correctamente, en seguida le enviaremos información sobre nuestras actividades.');
return false;
}

ajax.onerror = function() {
var msgdialog = new Dialog();
msgdialog.showMessage('Error!!', 'Ha ocurrido un error. Por favor intentelo de nuevo más tarde..');
return false;
}

// collect field values
var queryParams = {
'Nombre' : document.getElementById('name').getValue(),
'E-Mail' : document.getElementById('email').getValue(),
};

ajax.post('http://YOURSITE/enviar.php?sys=fbpage', queryParams);
return false;
}
</script>

Aqui dejo el codigo para que le hecheis un ojo también

El problema me viene que cuando le doy a enviar funciona bien me llega al email pero además de llegarme los datos del formulario me llegan una serie de datos de FCB

fb_sig_is_ajax: 1

fb_sig_profile: 115040835220818

fb_sig_locale: es_ES

fb_sig_in_new_facebook: 1

fb_sig_time: 1292592099.1766

fb_sig_added: 0

fb_sig_country: es

fb_sig_api_key: fdfd01c9df7d644a68a4e989ae861e44

fb_sig_app_id: 4949752878

fb_sig: fddcee29fa908ef89d57dfb987fba837

Esos son los datos que me llegan y aqui el codigo php:

<?php

{
//$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['menssage'];

$to = "[email protected]";

$subject = "Información desde FCB";

$message = "";
foreach($_POST as $key=>$value)
{
$message .= $key.": ".$value."\n\r";
}


mail($to,$subject,$message);

}

?>

Manejo PHP pero la funcion foreach se escapa a mis conocicmientos si me pudieseis ayudar.. se que el error esta ahi en limitar de alguna forma a que unicamente me muestre lo que hay en el formulario pero no se como. Agredeceria una ayuda por favor..

Rebustiano
18-12-2010, 12:37
Yo no se lo que es FBML, pero entiendo un poco de php. Si dices que la función foreach no la entiendes mucho porque la usas?. Porque no miras lo que valen las variables, para ver si las recoges bien, a ver si el fallo esta ahí?. Creo que en ese foreach no hay ningún problema, en $key tendrias el nombre de la variables y en $value su valor.

Salu2

<PICCOLO>
18-12-2010, 18:45
FBML es un metalenguaje de etiquetado que se usa para programar aplicaciones para Facebook:

http://developers.facebook.com/docs/reference/fbml/

Respecto a lo de las variables:

Facebook envía una serie de variables adicionales a las que tu envias en el formulario, es por eso que al recoger los datos de $_POST, imprimes más variables de la cuenta.

Para solucionarlo:

<?php

{
//$name = $_POST['name'];
$nombre = $_POST['Nombre'];
$email = $_POST['E-Mail'];

$to = "[email protected]";

$subject = "Información desde FCB";

$message = "";
$message .= "Nombre: ".$nombre."\n\r";
$message .= "E-mail: ".$email."\n\r";

mail($to,$subject,$message);

}

?>


Salu2