Foros del Web » Programando para Internet » PHP »

Formulario

Estas en el tema de Formulario en el foro de PHP en Foros del Web. Una vez más solicitando vuestra inestimable ayuda. En mi formulario de inscripciones he incluido el campo "edad" para que php me calcule la "categoría" según ...
  #1 (permalink)  
Antiguo 15/08/2011, 01:19
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 6 meses
Puntos: 3
Formulario

Una vez más solicitando vuestra inestimable ayuda.
En mi formulario de inscripciones he incluido el campo "edad" para que php me calcule la "categoría" según unos tramos, pero me da error y no sé qué hago mal. Tened paciencia conmigo, soy abuelo con alzheimer y me cuesta mucho aclararme.
Para no copiaros el código fuente completo os remito a la URL:
http://www.corredorespopulares.es/in...nscripcion.php
  #2 (permalink)  
Antiguo 15/08/2011, 01:22
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Formulario

Ya veo el error, pero si no es mucha molestia podrías poner el código? según el error tienes una llave de más o de menos unexpected '{' coloca tu código para no estar adivinando. Saludos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 15/08/2011, 01:24
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 10 meses
Puntos: 261
Respuesta: Formulario

La verdad es que no es mucho códiigo...
Código PHP:
Ver original
  1. Parse error: syntax error, unexpected '{' in /htdocs/public/www/inscripciones/
  2.         circuito/inscripcion.php on line 60
Te está marcando que tiene un error de sintaxis en la línea 60 del archivo que te indica. Revísalo.

Saludos,

EDITO: Hemos contestado al mismo tiempo... Disculpen
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #4 (permalink)  
Antiguo 15/08/2011, 01:26
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Formulario

Cita:
Iniciado por Lutaj Ver Mensaje
Una vez más solicitando vuestra inestimable ayuda.
En mi formulario de inscripciones he incluido el campo "edad" para que php me calcule la "categoría" según unos tramos, pero me da error y no sé qué hago mal. Tened paciencia conmigo, soy abuelo con alzheimer y me cuesta mucho aclararme.
Para no copiaros el código fuente completo os remito a la URL:
http://www.corredorespopulares.es/in...nscripcion.php
Tenéis razón, disculpadme. Os agrego el código:
<?php
$state = false;
if ($_POST['action'] == "add") {
$conexion = mysql_connect("mysqlh5", "62cc2_lutaj", "XXX");
mysql_select_db("2862_corpor", $conexion);

$que = "INSERT INTO circuito (categoria, apellidos, nombre, sexo, edad, localidad, club, email, referencia) ";
$que.= "VALUES (
'".$_POST['categoria']."',
'".$_POST['apellidos']."',
'".$_POST['nombre']."',
'".$_POST['sexo']."',
'".$_POST['edad']."',
'".$_POST['localidad']."',
'".$_POST['club']."',
'".$_POST['email']."',
'".$_POST['referencia']."') ";
$res = mysql_query($que, $conexion) or die(mysql_error());
$state = true;
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>CIRCUITO/ inscripciones paso3</title>
<link rel="stylesheet" type="text/css" href="css/layout.css">
</head>

<body>

<div id="content">

<?
if (!$HTTP_POST_VARS){
?>

<form name="frm" method="post" action="" >

<p>Referencia pago:&nbsp;&nbsp;&nbsp;
<input name="referencia" type="text" id="referencia" size="34" onkeyup="this.value=this.value.toUpperCase()" />
</p>

<p>Apellidos:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;
<input name="apellidos" type="text" id="apellidos" size="40" onkeyup="this.value=this.value.toUpperCase()" />
</p>

<p>Nombre:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;
<input name="nombre" type="text" id="nombre" size="40" onkeyup="this.value=this.value.toUpperCase()" />
</p>

<p>Sexo:
<input type="radio" name="sexo" value="H" checked />Hombre
<input type="radio" name="sexo" value="M"/>Mujer
</p>

<p>Fecha nacimiento:
<input type="text" name="edad" id="edad" size="34" />

<?
if(isset($_POST['submit']) {
$edad = $_POST['edad']
// Detectamos la edad y cargamos el valor de la categoria
if( $edad < 18) {
$categoria = "Sénior";
} elseif ($edad >= 18 && $edad <= 30) {
$categoria = "Veterano A";
} else {
$categoria = "Veterano B";
}
?>

</p>

<p>Localidad:
<input name="localidad" type="text" id="localidad" size="40" onkeyup="this.value=this.value.toUpperCase()" />
</p>

<p>Club:
<input name="club" type="text" id="club" size="40" onkeyup="this.value=this.value.toUpperCase()" />
</p>

<p>Email:
<input name="email" type="text" id="email" size="40" />
</p>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="Submit" value="Inscribirme" />
<input type="hidden" name="action" value="add" />

<?

}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "DATOS DE TU INSCRIPCIÓN:\n\n";
$cuerpo .= "Carrera: " . $HTTP_POST_VARS["carrera"] . "\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Apellidos: " . $HTTP_POST_VARS["apellidos"] . "\n";
$cuerpo .= "Edad: " . $HTTP_POST_VARS["edad"] . "\n";
$cuerpo .= "Localidad: " . $HTTP_POST_VARS["localidad"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Club: " . $HTTP_POST_VARS["club"] . "\n";
$headers = "From: Circuito <[email protected]>\r\n";

echo "<div align='center'><br /><br /><br /><br /><br /><p><h3>Estamos registrando tu inscripción.<br />
Recibirás un correo de confirmación en la cuenta que nos has facilitado.</h3></div>";
//mando el correo...
mail($email,"Inscripcion al Circuito",$cuerpo,$headers);
echo "<br><br><br><br>";
}

?>

</form>

</div>

</body>
</html>

Última edición por Lutaj; 15/08/2011 a las 01:31 Razón: Simplificar el código
  #5 (permalink)  
Antiguo 15/08/2011, 01:34
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Formulario

Te falta el punto y coma

$edad = $_POST['edad']


Te falta cerrar el primer condicional

Código PHP:
Ver original
  1. <?php
  2. $state = false;
  3. if ($_POST['action'] == "add") {
  4. $conexion = mysql_connect("mysqlh5", "62cc2_lutaj", "XXX");
  5. mysql_select_db("2862_corpor", $conexion);
  6.  
  7. $que = "INSERT INTO circuito (categoria, apellidos, nombre, sexo, edad, localidad, club, email, referencia) ";
  8. $que.= "VALUES (
  9. '".$_POST['categoria']."',
  10. '".$_POST['apellidos']."',
  11. '".$_POST['nombre']."',
  12. '".$_POST['sexo']."',
  13. '".$_POST['edad']."',
  14. '".$_POST['localidad']."',
  15. '".$_POST['club']."',
  16. '".$_POST['email']."',
  17. '".$_POST['referencia']."') ";
  18. $res = mysql_query($que, $conexion) or die(mysql_error());
  19. $state = true;
  20. }
  21. ?>

Te falta cerrar un paréntesis aqui if(isset($_POST['submit']) {

Además $HTTP_POST_VARS es absoleto se usa $_POST

y te recomiendo que no uses tags cortos <? ?> es mejor que uses <?php ?>
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 15/08/2011 a las 01:44
  #6 (permalink)  
Antiguo 15/08/2011, 01:45
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Formulario

Bien, gracias, haré estas correcciones, pero el problema no lo tengo ahí, el envío del correo me funciona. Mi problema está dentro del form, después del campo "fecha de nacimiento", quiero que introduciendo la edad (dos dígitos) me calcule una categoría, según el tramo que indico en un if.
Gracias.
  #7 (permalink)  
Antiguo 15/08/2011, 01:47
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Formulario

Cita:
Iniciado por Lutaj Ver Mensaje
Bien, gracias, haré estas correcciones, pero el problema no lo tengo ahí, el envío del correo me funciona. Mi problema está dentro del form, después del campo "fecha de nacimiento", quiero que introduciendo la edad (dos dígitos) me calcule una categoría, según el tramo que indico en un if.
Gracias.
Principalmente agrégale el paréntesis y el punto y coma a estas 2 líneas:

Código PHP:
Ver original
  1. if(isset($_POST['submit'])) {
  2. $edad = $_POST['edad'];

edit: también te falta cerrar el condicional de: if (!$HTTP_POST_VARS) { al final.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 15/08/2011 a las 01:58
  #8 (permalink)  
Antiguo 15/08/2011, 01:59
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Formulario

Gracias por tu paciencia andresdzphp, ahora he visto el error, pero ahora me da un nuevo error en la última línea del código: unexpected $end que corresponde al cierre de la página: </html>
Estoy perdido !!!
  #9 (permalink)  
Antiguo 15/08/2011, 02:02
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Formulario

Cita:
Iniciado por Lutaj Ver Mensaje
Gracias por tu paciencia andresdzphp, ahora he visto el error, pero ahora me da un nuevo error en la última línea del código: unexpected $end que corresponde al cierre de la página: </html>
Estoy perdido !!!
Si haces los pasos que te dije se solucionan todos, copia el código como lo llevas a ver que te falta
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #10 (permalink)  
Antiguo 15/08/2011, 02:18
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Formulario

Ahora mismo no me devuelve ningún error, pero tampoco me guarda la variable $categoria
Éste es el código que tengo ahora mismo:


Código PHP:
<?php
$state 
false;
if (
$_POST['action'] == "add") { 
    
$conexion mysql_connect("mysqlhost5""622862_lutaj""ltapia");
    
mysql_select_db("622862_corpor"$conexion);
    
$que "INSERT INTO circuito (categoria, apellidos, nombre, sexo, edad, localidad, club, email, referencia) ";
$que.= "VALUES (
'"
.$_POST['categoria']."', 
'"
.$_POST['apellidos']."', 
'"
.$_POST['nombre']."', 
'"
.$_POST['sexo']."', 
'"
.$_POST['edad']."', 
'"
.$_POST['localidad']."', 
'"
.$_POST['club']."', 
'"
.$_POST['email']."',
'"
.$_POST['referencia']."') ";
$res mysql_query($que$conexion) or die(mysql_error());
$state true;
}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html>
    <head>
        <title>CIRCUITO/ inscripciones paso3</title>
        <link rel="stylesheet" type="text/css" href="css/layout.css">
    </head>
    
    <body>

        <div id="content">

            <? 
            
if (!$HTTP_POST_VARS){ 
            
?> 

            <form name="frm" method="post" action="" > 

                <p>Referencia pago:&nbsp;&nbsp;&nbsp;
                <input name="referencia" type="text" id="referencia" size="34" onkeyup="this.value=this.value.toUpperCase()" />
                </p>
                
                <p>Apellidos:
                <input name="apellidos" type="text" id="apellidos" size="40" />
                </p>
                
                <p>Nombre:
                <input name="nombre" type="text" id="nombre" size="40" />
                </p>
                
                <p>Sexo:
                <input type="radio" name="sexo" value="H" checked />Hombre
                <input type="radio" name="sexo" value="M"/>Mujer
                </p>
                
                <p>Fecha nacimiento:
                <input type="text" name="edad" id="edad" size="34" />
  
                  <?
                  
if(isset($_POST['submit'])) {
                  
$edad $_POST['edad']; 

                  
// Detectamos la edad y cargamos el valor de la categoria
                  
if( $edad 18) {
                    
$categoria "Sénior"; }
                  } elseif (
$edad >= 18 && $edad <= 30) {
                    
$categoria "Veterano A";
                  } else {
                     
$categoria "Veterano B";
                  }
                  
                  
?>

                </p>
            
                <p>Localidad:
                <input name="localidad" type="text" id="localidad" size="40" />
                </p>
                
                <p>Club:
                <input name="club" type="text" id="club" size="40" />
                </p> 
                
                <p>Email:
                <input name="email" type="text" id="email" size="40" />
                </p>                
            
                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                  <input type="submit" name="Submit" value="Inscribirme" />
                  <input type="hidden" name="action" value="add" />

                  <?php
                    
                
}else{ 
                    
//Estoy recibiendo el formulario, compongo el cuerpo 
                    
$cuerpo "DATOS DE TU INSCRIPCIÓN:\n\n"
                    
$cuerpo .= "Carrera: " $HTTP_POST_VARS["carrera"] . "\n"
                    
$cuerpo .= "Nombre: " $HTTP_POST_VARS["nombre"] . "\n"
                    
$cuerpo .= "Apellidos: " $HTTP_POST_VARS["apellidos"] . "\n"
                    
$cuerpo .= "Edad: " $HTTP_POST_VARS["edad"] . "\n"
                    
$cuerpo .= "Localidad: " $HTTP_POST_VARS["localidad"] . "\n"
                    
$cuerpo .= "Categoria: " $HTTP_POST_VARS["categoria"] . "\n"
                    
$cuerpo .= "Email: " $HTTP_POST_VARS["email"] . "\n"
                    
$cuerpo .= "Club: " $HTTP_POST_VARS["club"] . "\n";  
                    
$headers "From: Circuito <[email protected]>\r\n"

                      echo 
"<div align='center'><br /><br /><br /><br /><br /><p><h3>Estamos registrando tu inscripción.<br />
                     Recibirás un correo de confirmación en la cuenta que nos has facilitado.</h3></div>"
;      
                    
//mando el correo... 
                    
mail($email,"Inscripcion al Circuito",$cuerpo,$headers); 
                    echo 
"<br><br><br><br>";  
                } 
                 
                
?> 

            </form>

        </div>
        
    </body>
</html>
  #11 (permalink)  
Antiguo 15/08/2011, 02:29
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Formulario

Tienes como nombre de tu botón Submit y en el condicional submit

Código HTML:
Ver original
  1. <input type="submit" name="Submit" value="Inscribirme" />

Código PHP:
Ver original
  1. if(isset($_POST['submit'])) {
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #12 (permalink)  
Antiguo 15/08/2011, 02:34
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Formulario

Lo he modificado, pero sigue sin guardarme $categoria en mi base de datos y tampoco lo envía en el correo de comprobación.
¿Alguna otra sugerencia? Te agradezco enormemente la mano que me estás echando.

Etiquetas: formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:43.