Autor Tema: PEDIR QUE RELLENEN MI FORMULARIO.  (Leído 2980 veces)

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #15 en: 07 de Mayo de 2010, 00:30:39 am »
Explícame por qué el "if(count($_POST)>=1))"

Comunidad PHPeros

Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #15 en: 07 de Mayo de 2010, 00:30:39 am »

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #16 en: 07 de Mayo de 2010, 00:43:08 am »
me tira error en la linea 2
Me puedes decir el error?
Explícame por qué el "if(count($_POST)>=1))"
Sabes lo que es un array?

Desconectado xGerald

  • PHPer@
  • **
  • Mensajes: 74
  • Karma: 2
  • Nuev@ PHPer@
    • Ver Perfil
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #17 en: 07 de Mayo de 2010, 00:47:02 am »
Me puedes decir el error?Sabes lo que es un array?

Yo se ke tiene ke ver algo con array pero soy muy n00b en esto de php.

Y el error es este :

Parse error: syntax error, unexpected ')' in /home/habbos/public_html/formulario.php  on line 2

PD : Pense ke se fueron todos xD

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #18 en: 07 de Mayo de 2010, 01:01:40 am »
Sabes lo que es un array?
Si sé. Primero, no sabía que "$_POST" te devolvía un array y segundo, no entiendo qué función le da con lo que quiere hacer xD

El error es este:

Antes: if(count($_POST)>=1)) {
Después: if(count($_POST)>=1) {

Elimina uno de los últimos paréntesis que están de más.

Desconectado xGerald

  • PHPer@
  • **
  • Mensajes: 74
  • Karma: 2
  • Nuev@ PHPer@
    • Ver Perfil
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #19 en: 07 de Mayo de 2010, 01:08:14 am »
AHORA SI GRACIAS PHYSLET Y MARCO Me funca perfecto pero ahora solo quiero que me tire un mensaje para todos.

Ejemplo :

Rellena todos los campos.

Por que sale asi :

El campo nick no debe de estar vacio. El campo web no debe de estar vacio. El campo banner no debe de estar vacio. El campo email no debe de estar vacio. El campo comentario no debe de estar vacio.

Compruebe:

http://www.habboschool.net/formulario.php

Muchas Gracias se pasaron.

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #20 en: 07 de Mayo de 2010, 01:12:54 am »
Me funca perfecto pero ahora solo quiero que me tire un mensaje para todos.
El que yo te había comentado al inciio del tema es perfecto para ello.

Código: [Seleccionar]
if(empty($nick) || empty($paginaweb) || empty($banner) || empty($email) || empty($categoria) || empty($comentario)){
echo "Debes rellenar todos los campos"; }
else {

Código: [Seleccionar]
<?php
if(count($_POST)>=1)) {
$nick $_POST['nick'];
$paginaweb $_POST['web'];
$banner $_POST['banner'];
$email $_POST['email'];
$categoria $_POST['radio'];
$comentario $_POST['comentario'];

if(empty(
$nick) || empty($paginaweb) || empty($banner) || empty($email) || empty($categoria) || empty($comentario)){
echo 
"Debes rellenar todos los campos"; }
else {
$mensaje "Nick: "$_POST['nick'] . "\n";
$mensaje .= "Pagina Web: "$_POST['web'] . "\n";
$mensaje .= "Banner: "$_POST['banner'] . "\n";
$mensaje .= "Email: "$_POST['email'] . "\n";
$mensaje .= "Comentario: "$_POST['comentario'] . "\n";
$mensaje .= "Categoria: "$_POST['radio'] . "\n";

$cabecera "From: $nick <$email> \r\n";
$cabecera .= "Reply-To: $email";

while (list(
$key) = each($_POST)) {
  if(
$_POST[$key]==NULL$error .= "El campo ".$key." no debe de estar   vacio. \n";
  }

if(isset(
$error)) {
echo 
$error;
} else {
if (
mail("elx.gerald@gmail.com""Formulario de Contacto"$mensaje$cabecera)){
   echo 
"<center>El mensaje fue enviado correctamente</center></br>";
}

else{
   echo 
"El Mensaje no fue enviado correctamente";
}
}
}
}
?>

Desconectado xGerald

  • PHPer@
  • **
  • Mensajes: 74
  • Karma: 2
  • Nuev@ PHPer@
    • Ver Perfil
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #21 en: 07 de Mayo de 2010, 01:20:44 am »
Man te pasaste encerio me sirvio mucho. Tengo todo exelente

Ahora si es posible y no mucha molestia, Seria ideal para terminar mi formulario. Que al enviar diga que se envio pero desapareska el formulario solo kede el mensajito.

Si es posible seria genial.

Pero igual muchas gracias se pasaron

+1 para todos jaja (NO ES BROMA) :)

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #22 en: 07 de Mayo de 2010, 01:39:16 am »
Bueno... Yo tengo una manera de hacerlo que es algo mala... Es que yo trato de buscar soluciones conforme a lo que yo conozco. Sino me equivoco esto se hace con AJAX, pero yo lo haría así:

1. Creo un nuevo archivo que contenga ese mensaje que quieres mostrar cuando se envíe. Digamos que lo llamas "success.php".
2. Agregarías un header("success.php"); a la parte del código donde antes tenías ese mensaje.

Por ejemplo:

if(isset($error)) {
echo 
$error;
} else {
if (
mail("elx.gerald@gmail.com""Formulario de Contacto"$mensaje$cabecera)){
     
header("success.php");
}

else{
   echo 
"El Mensaje no fue enviado correctamente";
}


Podrías probarla solamente, pero estoy seguro que hay otra forma, que no sé dominar.

Desconectado xGerald

  • PHPer@
  • **
  • Mensajes: 74
  • Karma: 2
  • Nuev@ PHPer@
    • Ver Perfil
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #23 en: 07 de Mayo de 2010, 01:46:07 am »
Bueno... Yo tengo una manera de hacerlo que es algo mala... Es que yo trato de buscar soluciones conforme a lo que yo conozco. Sino me equivoco esto se hace con AJAX, pero yo lo haría así:

1. Creo un nuevo archivo que contenga ese mensaje que quieres mostrar cuando se envíe. Digamos que lo llamas "success.php".
2. Agregarías un header("success.php"); a la parte del código donde antes tenías ese mensaje.

Por ejemplo:

if(isset($error)) {
echo 
$error;
} else {
if (
mail("elx.gerald@gmail.com""Formulario de Contacto"$mensaje$cabecera)){
     
header("success.php");
}

else{
   echo 
"El Mensaje no fue enviado correctamente";
}


Podrías probarla solamente, pero estoy seguro que hay otra forma, que no sé dominar.

Tal vez haya otra pero tu aportando me estas haciendo un gran favor.

Gracias y voy a intenar.

Thank you !

Desconectado xGerald

  • PHPer@
  • **
  • Mensajes: 74
  • Karma: 2
  • Nuev@ PHPer@
    • Ver Perfil
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #24 en: 07 de Mayo de 2010, 01:50:43 am »
Warning: Cannot modify header information - headers already sent by (output started at /home/habbos/public_html/afiliate.php:8) in /home/habbos/public_html/afiliate.php on line 190

sale eso

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #25 en: 07 de Mayo de 2010, 01:56:32 am »
Perdón, no era header("success.php");
Debía ser:
header("Location:success.php");

Obviamente el success.php lo cambias por el que usas :P

Desconectado Mixvice

  • PHPero Experto
  • *****
  • Mensajes: 687
  • Karma: 32
  • Sexo: Masculino
  • ¡Y Tu Papá Tambien!
    • Ver Perfil
    • Tuhabbo
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #26 en: 07 de Mayo de 2010, 05:31:25 am »
Puedes hacerlo tambien con un echo al final de todo antes del cierre del php osea ?> xD

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #27 en: 07 de Mayo de 2010, 08:53:46 am »
Perdón, no era header("success.php");
Debía ser:
header("Location:success.php");

Obviamente el success.php lo cambias por el que usas :P
Fijate bien lo que dice el error: Cannot modify header information - headers already sent by. Aunque pongas location te va a seguir tirando error. La solucion es poner ob_start() al principio (o antes de que se envien las cabeceras) y ob_end_flush() al final (o despues de que se envien las cabeceras).
Tambien he visto algo que me llamo la antencion! Por que pones
Código: [Seleccionar]
if(empty($nick) || empty($paginaweb) || empty($banner) || empty($email) || empty($categoria) || empty($comentario)){
echo "Debes rellenar todos los campos"; }
else {
y
Código: [Seleccionar]
while (list($key) = each($_POST)) {
  if($_POST[$key]==NULL) $error .= "El campo ".$key." no debe de estar   vacio. \n";
  }
En el mismo codigo?

Otra cosa: Xgerald, no entiendo porque defines todas estas variables si despues no las vas a usar:

$nick 
$_POST['nick'];
$paginaweb $_POST['web'];
$banner $_POST['banner'];
$email $_POST['email'];
$categoria $_POST['radio'];
$comentario $_POST['comentario'];

Ademas yo te recomendaria que siguieras usando mi codigo. Tambien se puede hacer para que salga un solo mensaje! El codigo final seria:
Código: [Seleccionar]
<?php
ob_start
();
if(
count($_POST)>=1) {
$mensaje "Nick: "$_POST['nick'] . "\n";
$mensaje .= "Pagina Web: "$_POST['web'] . "\n";
$mensaje .= "Banner: "$_POST['banner'] . "\n";
$mensaje .= "Email: "$_POST['email'] . "\n";
$mensaje .= "Comentario: "$_POST['comentario'] . "\n";
$mensaje .= "Categoria: "$_POST['radio'] . "\n";

$cabecera "From: $nick <".$_POST['email']."> \r\n";
$cabecera .= "Reply-To: ".$_POST['email'];

while (list(
$key) = each($_POST)) if($_POST[$key]==NULL$error 1;

if(
$error==1) {
echo 
"Debes rellenar todos los campos";
} else {
if (
mail("elx.gerald@gmail.com""Formulario de Contacto"$mensaje$cabecera)){
   echo 
"<center>El mensaje fue enviado correctamente</center></br>";
header("Location: success.php");
}

else{
   echo 
"El Mensaje no fue enviado correctamente";
}
}
}
ob_end_flush();
?>

Un saludo!

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.738
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #28 en: 10 de Mayo de 2010, 02:26:23 am »
Fijate bien lo que dice el error: Cannot modify header information - headers already sent by. Aunque pongas location te va a seguir tirando error. La solucion es poner ob_start() al principio (o antes de que se envien las cabeceras) y ob_end_flush() al final (o despues de que se envien las cabeceras).
Tambien he visto algo que me llamo la antencion! Por que pones
Código: [Seleccionar]
if(empty($nick) || empty($paginaweb) || empty($banner) || empty($email) || empty($categoria) || empty($comentario)){
echo "Debes rellenar todos los campos"; }
else {
y
Código: [Seleccionar]
while (list($key) = each($_POST)) {
  if($_POST[$key]==NULL) $error .= "El campo ".$key." no debe de estar   vacio. \n";
  }
En el mismo codigo?

Otra cosa: Xgerald, no entiendo porque defines todas estas variables si despues no las vas a usar:

$nick 
$_POST['nick'];
$paginaweb $_POST['web'];
$banner $_POST['banner'];
$email $_POST['email'];
$categoria $_POST['radio'];
$comentario $_POST['comentario'];

Ademas yo te recomendaria que siguieras usando mi codigo. Tambien se puede hacer para que salga un solo mensaje! El codigo final seria:
Código: [Seleccionar]
<?php
ob_start
();
if(
count($_POST)>=1) {
$mensaje "Nick: "$_POST['nick'] . "\n";
$mensaje .= "Pagina Web: "$_POST['web'] . "\n";
$mensaje .= "Banner: "$_POST['banner'] . "\n";
$mensaje .= "Email: "$_POST['email'] . "\n";
$mensaje .= "Comentario: "$_POST['comentario'] . "\n";
$mensaje .= "Categoria: "$_POST['radio'] . "\n";

$cabecera "From: $nick <".$_POST['email']."> \r\n";
$cabecera .= "Reply-To: ".$_POST['email'];

while (list(
$key) = each($_POST)) if($_POST[$key]==NULL$error 1;

if(
$error==1) {
echo 
"Debes rellenar todos los campos";
} else {
if (
mail("elx.gerald@gmail.com""Formulario de Contacto"$mensaje$cabecera)){
   echo 
"<center>El mensaje fue enviado correctamente</center></br>";
header("Location: success.php");
}

else{
   echo 
"El Mensaje no fue enviado correctamente";
}
}
}
ob_end_flush();
?>

Un saludo!

No se si soy yo pero... el header no debe de ir siempre al principio de la pagina?
Me "parece" que ese es el error... Corrijanme si no es así.

Y por que definió una variable por cada post del formulario... El nunca dijo que el código era suyo "creo".

Saludos
Twitter: @JoakoM010



Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:PEDIR QUE RELLENEN MI FORMULARIO.
« Respuesta #29 en: 10 de Mayo de 2010, 04:47:55 am »
No se si soy yo pero... el header no debe de ir siempre al principio de la pagina?
Me "parece" que ese es el error... Corrijanme si no es así.
Mmm no necesariamente. Al menos yo siempre lo he usado para cuando quiero mandar de un sitio a otro al cumplir una condición. Pero también pienso que no es la manera correcta de hacerlo xD