FAQ
Hola amigos, supongo que el error será bien absurdo pero definitivamente no lo veo.
Me han pasado un formulario de inscripción y aunque rellenes los campos sale siempre que no has rellenado los campos obligatorios.
Me puede ayudar alguien?
Gracias
Irantzu

Aqui pongo el código:
<?
if (!$HTTP_POST_VARS){
?>
</td>
</tr>
</table>
<form name="inscripcion" action="inscripcion.php" method="post">
<p align="center" class="titulo">INSCRIPCI&Oacute;N A LAS JORNADAS</p>
<table width="402" border="0" align="center" cellspacing="8">
<tr>
<td colspan="2" align="left" valign="middle">&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="left" valign="middle"><p>Rellena el formulario para que Gaztelan pueda recoger tus datos.</p>
</td>
</tr>
<tr>
<td colspan="2" align="left" valign="middle">&nbsp;</td>
</tr>
<tr>
<td width="194" align="left" valign="middle"><span class="datos">NOMBRE</span></td>
<td width="180" align="left" valign="middle"><input name="nombre" type="text" class="caja" id="nombre" size="30"></td>
</tr>
<tr>
<td align="left" valign="middle"><span class="datos">APELLIDOS</span></td>
<td align="left" valign="middle"><input name="apellidos" type="text" class="caja" id="apellidos" size="30">
</td>
</tr>
<tr>
<td align="left" valign="middle"><span class="datos">TEL&Eacute;FONO</span></td>
<td align="left" valign="middle"><div align="left">
<input name="telefono" type="text" class="caja" id="telefono" size="30">
</div></td>
</tr>
<tr>
<td align="left" valign="middle"><div align="left"><span class="Estilo17"><span class="datos">EMAIL</span> </span></div></td>
<td align="left" valign="middle"><input name="mail" type="text" class="caja" id="mail" size="30"></td>
</tr>
<tr>
<td align="left" valign="middle"><span class="datos">ENTIDAD* (opcional)</span></td>
<td align="left" valign="middle"><input name="entidad" type="text" class="caja" id="entidad" size="30"></td>
</tr>
<tr>
<td align="right" valign="middle"><span class="num">Enviar datos &gt;&gt;</span></td>
<td align="right" valign="middle"><div align="left">
<input name="enviar" type="image" class="boton" id="enviar" src="enviar.jpg" alt="ENVIAR" width="100" height="59" >
</div></td>
</tr>
<tr>
<td colspan="2" align="right" valign="middle"><div align="left"><span class="Estilo17">
<?
}else if (($nombre == "") . ($apellidos == "") . ($telefono == "") . ($mail == "")) {
echo "Faltan datos, por favor RETROCEDE Y RELLENA LOS CAMPOS OBLIGATORIOS. Tus datos no han sido enviados.";
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "NUEVA INSCRIPCIÓN:\n\n";
$cuerpo .= "Nombre: _____ " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Apellidos: _____ " . $HTTP_POST_VARS["apellidos"] . "\n";
$cuerpo .= "Telefono: _____ " . $HTTP_POST_VARS["telefono"] . "\n";
$cuerpo .= "Email: _____ " . $HTTP_POST_VARS["mail"] . "\n";
$cuerpo .= "Entidad: _____ " . $HTTP_POST_VARS["entidad"] . "\n";
$mailheaders = "From: jornadaGAZTELAN_junio08 <> \n";

//mando el correo...
mail("irantzu@dosalcubo.net","Inscripcion a la jornada",$cuerpo, $mailheaders);

//doy las gracias por el env&iacute;o
echo "Tus datos se han enviado correctamente, os esperamos el día 5 de junio. Gracias por tu participación.";
}
?>
</span></div></td>
</tr>
</table>
</form>

Search Discussions

  • Carlos at May 20, 2009 at 2:05 pm
    Hola, yo veo 2 problemas:

    1. En lugar de usar $HTTP_POST_VARS creo que sería mejor que uses
    $_POST, más moderna, creo que algunas versiones de php no soportan ya
    HTTP_POST...

    y 2. Creo que el problema es que estás revisando las variables sin
    nombrarlas con $HTTP_POST_VARS[]

    es decir, en lugar de }else if (($nombre == "") ...
    debería ser }else if (($HTTP_POST_VARS["nombre "]== "") ...


    Saludos
    Carlos


    ----- Original Message -----
    From: "Irantzu Leunda Biskarret" <irantzu@dosalcubo.net>
    To: <php-es@lists.php.net>
    Sent: Wednesday, May 20, 2009 3:07 PM
    Subject: [PHP-ES] problemas con un formulario


    Hola amigos, supongo que el error será bien absurdo pero definitivamente no
    lo veo.
    Me han pasado un formulario de inscripción y aunque rellenes los campos sale
    siempre que no has rellenado los campos obligatorios.
    Me puede ayudar alguien?
    Gracias
    Irantzu

    Aqui pongo el código:
    <?
    if (!$HTTP_POST_VARS){
    ?>
    </td>
    </tr>
    </table>
    <form name="inscripcion" action="inscripcion.php"
    method="post">
    <p align="center" class="titulo">INSCRIPCI&Oacute;N A
    LAS JORNADAS</p>
    <table width="402" border="0" align="center"
    cellspacing="8">
    <tr>
    <td colspan="2" align="left"
    valign="middle">&nbsp;</td>
    </tr>
    <tr>
    <td colspan="2" align="left"
    valign="middle"><p>Rellena el formulario para que Gaztelan pueda recoger tus
    datos.</p>
    </td>
    </tr>
    <tr>
    <td colspan="2" align="left"
    valign="middle">&nbsp;</td>
    </tr>
    <tr>
    <td width="194" align="left" valign="middle"><span
    class="datos">NOMBRE</span></td>
    <td width="180" align="left" valign="middle"><input
    name="nombre" type="text" class="caja" id="nombre" size="30"></td>
    </tr>
    <tr>
    <td align="left" valign="middle"><span
    class="datos">APELLIDOS</span></td>
    <td align="left" valign="middle"><input
    name="apellidos" type="text" class="caja" id="apellidos" size="30">
    </td>
    </tr>
    <tr>
    <td align="left" valign="middle"><span
    class="datos">TEL&Eacute;FONO</span></td>
    <td align="left" valign="middle"><div align="left">
    <input name="telefono" type="text" class="caja"
    id="telefono" size="30">
    </div></td>
    </tr>
    <tr>
    <td align="left" valign="middle"><div
    align="left"><span class="Estilo17"><span class="datos">EMAIL</span>
    </span></div></td>
    <td align="left" valign="middle"><input name="mail"
    type="text" class="caja" id="mail" size="30"></td>
    </tr>
    <tr>
    <td align="left" valign="middle"><span
    class="datos">ENTIDAD* (opcional)</span></td>
    <td align="left" valign="middle"><input
    name="entidad" type="text" class="caja" id="entidad" size="30"></td>
    </tr>
    <tr>
    <td align="right" valign="middle"><span
    class="num">Enviar datos &gt;&gt;</span></td>
    <td align="right" valign="middle"><div align="left">
    <input name="enviar" type="image" class="boton"
    id="enviar" src="enviar.jpg" alt="ENVIAR" width="100" height="59" >
    </div></td>
    </tr>
    <tr>
    <td colspan="2" align="right" valign="middle"><div
    align="left"><span class="Estilo17">
    <?
    }else if (($nombre == "") . ($apellidos == "") . ($telefono == "") . ($mail
    == "")) {
    echo "Faltan datos, por favor RETROCEDE Y RELLENA LOS CAMPOS OBLIGATORIOS.
    Tus datos no han sido enviados.";
    }else{
    //Estoy recibiendo el formulario, compongo el cuerpo
    $cuerpo = "NUEVA INSCRIPCIÓN:\n\n";
    $cuerpo .= "Nombre: _____ " . $HTTP_POST_VARS["nombre"] . "\n";
    $cuerpo .= "Apellidos: _____ " . $HTTP_POST_VARS["apellidos"] . "\n";
    $cuerpo .= "Telefono: _____ " . $HTTP_POST_VARS["telefono"] . "\n";
    $cuerpo .= "Email: _____ " . $HTTP_POST_VARS["mail"] . "\n";
    $cuerpo .= "Entidad: _____ " . $HTTP_POST_VARS["entidad"] . "\n";
    $mailheaders = "From: jornadaGAZTELAN_junio08 <> \n";

    //mando el correo...
    mail("irantzu@dosalcubo.net","Inscripcion a la jornada",$cuerpo,
    $mailheaders);

    //doy las gracias por el env&iacute;o
    echo "Tus datos se han enviado correctamente, os esperamos el día 5 de
    junio. Gracias por tu participación.";
    }
    ?>
    </span></div></td>
    </tr>
    </table>
    </form>


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



    No virus found in this incoming message.
    Checked by AVG - www.avg.com
    Version: 8.5.339 / Virus Database: 270.12.35/2123 - Release Date: 05/19/09
    17:59:00
  • Jorge Eduardo Olaya Perdomo at May 20, 2009 at 2:20 pm
    Revisa el contenido de las variables que trae el formulario, y asi usted
    estar seguro realmente que tienen almacenado algun dato. Esto lo puede hacer
    antes de el if que verifica si las variables estan en blanco o no.

    Utiliza otra opcion de comprobacion, en vez de utilizar == "" utiliza por
    ejemplo las funciones is_null ($nombre_variable) o empty ($nombre_variable)


    Jorge Eduardo Olaya Perdomo
  • David Figueres at May 20, 2009 at 5:45 pm
    Hola,
    Creo que deberías cambiar esto así:

    }else if (empty$_POST["nombre"]) || empty($_POST["apellidos"]) ||
    empty($_POST["telefono"]) || empty($mail)) {
    echo "Faltan datos, por favor RETROCEDE Y RELLENA LOS CAMPOS OBLIGATORIOS.
    Tus datos no han sido enviados.";

    Además, todos los $HTTP_POST_VARS cambialos por $_POST, que es la versión
    que se debe usar por compatibilidad con la últimas versiones de PHP.

    Espero que te sirva,

    David Figueres Villaró

    2009/5/20 Jorge Eduardo Olaya Perdomo <jorgeeolayap@gmail.com>
    Revisa el contenido de las variables que trae el formulario, y asi usted
    estar seguro realmente que tienen almacenado algun dato. Esto lo puede
    hacer
    antes de el if que verifica si las variables estan en blanco o no.

    Utiliza otra opcion de comprobacion, en vez de utilizar == "" utiliza por
    ejemplo las funciones is_null ($nombre_variable) o empty ($nombre_variable)


    Jorge Eduardo Olaya Perdomo
  • Ricardo Vila at May 22, 2009 at 4:06 pm
    Aparte de lo que mencionan, disculpen la consulta pero se puede poner :

    else if (($nombre == "") . ($apellidos == "") . ($telefono == "") . ($mail
    == "")) {

    Asi con el simbolo "." , nunca habia visto esta manera en caso de ser
    afirmativo el punto seria como poner un and o un or?

    Agradesco de antemano su respuesta

    Saludos

    Ricardo Vila

    2009/5/20 David Figueres <david.figueres@gmail.com>
    Hola,
    Creo que deberías cambiar esto así:

    }else if (empty$_POST["nombre"]) || empty($_POST["apellidos"]) ||
    empty($_POST["telefono"]) || empty($mail)) {
    echo "Faltan datos, por favor RETROCEDE Y RELLENA LOS CAMPOS OBLIGATORIOS.
    Tus datos no han sido enviados.";

    Además, todos los $HTTP_POST_VARS cambialos por $_POST, que es la versión
    que se debe usar por compatibilidad con la últimas versiones de PHP.

    Espero que te sirva,

    David Figueres Villaró

    2009/5/20 Jorge Eduardo Olaya Perdomo <jorgeeolayap@gmail.com>
    Revisa el contenido de las variables que trae el formulario, y asi usted
    estar seguro realmente que tienen almacenado algun dato. Esto lo puede
    hacer
    antes de el if que verifica si las variables estan en blanco o no.

    Utiliza otra opcion de comprobacion, en vez de utilizar == "" utiliza por
    ejemplo las funciones is_null ($nombre_variable) o empty
    ($nombre_variable)

    Jorge Eduardo Olaya Perdomo
  • Luis Esteban de Dios Núñez at Jun 1, 2009 at 7:26 pm
    Hola,

    Tengo un problema que he ido dejando para lo último y consiste en lo
    siguiente.

    Estoy terminando un sitio que posee un foro y quiero que cuando un usuario
    se loguee poder contar la cantidad de visitas. Esto ya lo tengo hecho pero
    sucede que una vez logueado y caes en la próxima página, cuando presionas
    F5(actualizar) me vuelve a incrementar el número de visitas. También me
    está pasando cuando ese usuario inserta un comentario, como la página se
    llama a si misma, cuando presionas F5 inserta el mismo comentario y sin
    embargo, el textarea ya no tiene nada, je je je, ¿qué lio?.

    ¿Me podéis hechar una mano?.

    Desde ya, muchas gracias.

    --
    Saludos,

    Luis Esteban de Dios Núñez

    ---------------------------------------
    Red Telematica de Salud - Cuba
    CNICM - Infomed
  • Usuario at Jun 1, 2009 at 7:39 pm
    Y si pones un campo en la base de datos como variable temporal, de tal
    manera que cuente tu script unicamente cuando el usuario esta
    desbloqueado. Y hasta que no salga del sistema se quite el bloqueo.?
  • Luis Esteban de Dios Núñez at Jun 2, 2009 at 6:38 pm
    ¿Cómo es eso del bloqueo?

    En Mon, 01 Jun 2009 15:39:34 -0400, Usuario <vlomasb@gmail.com> escribió:
    Y si pones un campo en la base de datos como variable temporal, de tal
    manera que cuente tu script unicamente cuando el usuario esta
    desbloqueado. Y hasta que no salga del sistema se quite el bloqueo.?
    --
    Saludos,

    Luis Esteban de Dios Núñez

    ---------------------------------------
    Red Telematica de Salud - Cuba
    CNICM - Infomed
  • Felipe fernandez at Jun 1, 2009 at 8:28 pm
    Pues controla que venga algo en el textarea. Si no viene nada, no grabas
    nada y le das un mensaje tipo "A ver, que necesito que escribas algo .... o
    algo así (es coña)"

    Saludos a los pinareños ...

    El 1 de junio de 2009 14:24, Luis Esteban de Dios Núñez <
    esteban@princesa.pri.sld.cu> escribió:
    Hola,

    Tengo un problema que he ido dejando para lo último y consiste en lo
    siguiente.

    Estoy terminando un sitio que posee un foro y quiero que cuando un usuario
    se loguee poder contar la cantidad de visitas. Esto ya lo tengo hecho pero
    sucede que una vez logueado y caes en la próxima página, cuando presionas
    F5(actualizar) me vuelve a incrementar el número de visitas. También me está
    pasando cuando ese usuario inserta un comentario, como la página se llama a
    si misma, cuando presionas F5 inserta el mismo comentario y sin embargo, el
    textarea ya no tiene nada, je je je, ¿qué lio?.

    ¿Me podéis hechar una mano?.

    Desde ya, muchas gracias.

    --
    Saludos,

    Luis Esteban de Dios Núñez

    ---------------------------------------
    Red Telematica de Salud - Cuba
    CNICM - Infomed

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php

    --
    Salu2


    Felipe Fernández
    "Linux is for people who hate Windows,
    Debian is for people who love Linux,".

    "Documentation is like sex: when it is good, it is very, very good; and when
    it is bad, it is better than nothing."
  • Luis Esteban de Dios Núñez at Jun 2, 2009 at 6:38 pm
    Hola Felipe,
    Pues controla que venga algo en el textarea. Si no viene nada, no grabas
    nada y le das un mensaje tipo "A ver, que necesito que escribas algo
    .... o
    algo así (es coña)"
    Eso hago, así...

    if ($comentarios && $enviar){

    --guardo en la base de datos--

    }

    Nota: comentarios es el nombre del textarea.

    <<Veo que conoces bien el dominio, ¿eres cubano?>>

    --
    Saludos,

    Luis Esteban de Dios Núñez

    ---------------------------------------
    Red Telematica de Salud - Cuba
    CNICM - Infomed
  • Jaime Jose Perera Merino at Jun 1, 2009 at 9:53 pm
    Hola Luis.

    El problema de las visitas de arregla con variables de sesión. Puedes crear
    una variable de sesión que se llame 'visitado'. Si no existe, aumentas el
    contador, si existe, no lo haces.

    El tema del formulario no es muy preocupante. Si alguien recarga la página a
    la que le ha llegado el formulario el navegador le preogunta "¿Quieres
    reenviar los datos del formulario?". Si contesta que sí creo que es un
    problema del usuario no es cosa tuya. Aún así, si te preocupa mucho, puedes
    implementarlo con AJAX de manera que la página no cambie al enviar el
    formulario.

    Espero que te sirva.
    Saludos,

    Jaime Perera

    El 1 de junio de 2009 15:24, Luis Esteban de Dios Núñez <
    esteban@princesa.pri.sld.cu> escribió:
    Hola,

    Tengo un problema que he ido dejando para lo último y consiste en lo
    siguiente.

    Estoy terminando un sitio que posee un foro y quiero que cuando un usuario
    se loguee poder contar la cantidad de visitas. Esto ya lo tengo hecho pero
    sucede que una vez logueado y caes en la próxima página, cuando presionas
    F5(actualizar) me vuelve a incrementar el número de visitas. También me está
    pasando cuando ese usuario inserta un comentario, como la página se llama a
    si misma, cuando presionas F5 inserta el mismo comentario y sin embargo, el
    textarea ya no tiene nada, je je je, ¿qué lio?.

    ¿Me podéis hechar una mano?.

    Desde ya, muchas gracias.

    --
    Saludos,

    Luis Esteban de Dios Núñez

    ---------------------------------------
    Red Telematica de Salud - Cuba
    CNICM - Infomed

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php
  • Luis Esteban de Dios Núñez at Jun 2, 2009 at 6:38 pm
    Hola Jaime,

    Yo propago -transfiero- los valores de las variables que me interesan, a
    través de las páginas php, con input tipo hidden pues no se hacerlo con
    variables de sesión. Me gustaría ver un ejemplo sencillo de cómo hacerlo
    así. Tampoco se nada de AJAX. Me gustaría también conocer de esto. ¿Tienes
    ejemplos a mano de estas cosas?. Tampoco tengo internet, ja ja ja, estoy
    casi frito.

    --
    Saludos,

    Luis Esteban de Dios Núñez

    En Mon, 01 Jun 2009 17:53:36 -0400, Jaime Jose Perera Merino
    <jaimejperera@gmail.com> escribió:
    Hola Luis.

    El problema de las visitas de arregla con variables de sesión. Puedes
    crear
    una variable de sesión que se llame 'visitado'. Si no existe, aumentas el
    contador, si existe, no lo haces.

    El tema del formulario no es muy preocupante. Si alguien recarga la
    página a
    la que le ha llegado el formulario el navegador le preogunta "¿Quieres
    reenviar los datos del formulario?". Si contesta que sí creo que es un
    problema del usuario no es cosa tuya. Aún así, si te preocupa mucho,
    puedes
    implementarlo con AJAX de manera que la página no cambie al enviar el
    formulario.

    Espero que te sirva.
    Saludos,

    Jaime Perera

    El 1 de junio de 2009 15:24, Luis Esteban de Dios Núñez <
    esteban@princesa.pri.sld.cu> escribió:
    Hola,

    Tengo un problema que he ido dejando para lo último y consiste en lo
    siguiente.

    Estoy terminando un sitio que posee un foro y quiero que cuando un
    usuario
    se loguee poder contar la cantidad de visitas. Esto ya lo tengo hecho
    pero
    sucede que una vez logueado y caes en la próxima página, cuando
    presionas
    F5(actualizar) me vuelve a incrementar el número de visitas. También me
    está
    pasando cuando ese usuario inserta un comentario, como la página se
    llama a
    si misma, cuando presionas F5 inserta el mismo comentario y sin
    embargo, el
    textarea ya no tiene nada, je je je, ¿qué lio?.

    ¿Me podéis hechar una mano?.

    Desde ya, muchas gracias.

    --
    Saludos,

    Luis Esteban de Dios Núñez

    ---------------------------------------
    Red Telematica de Salud - Cuba
    CNICM - Infomed

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php


    ---------------------------------------
    Red Telematica de Salud - Cuba
    CNICM - Infomed

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedMay 20, '09 at 1:07p
activeJun 2, '09 at 6:38p
posts12
users9
websitephp.net

People

Translate

site design / logo © 2022 Grokbase