Foros del Web » Programando para Internet » PHP »

form con código php

Estas en el tema de form con código php en el foro de PHP en Foros del Web. Saludos a ver si me podeis ayudar con este código php, es que no veo donde está el fallo, pero lo cierto es que no ...
  #1 (permalink)  
Antiguo 13/02/2014, 05:34
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 11 años, 2 meses
Puntos: 0
form con código php

Saludos a ver si me podeis ayudar con este código php, es que no veo donde está el fallo, pero lo cierto es que no funciona; se trata de hacer lo siguiente:
-El usuario tiene que introducir 4 valores; dos valores seran si y los otros dos serán no; cuando el usuario introduzca los valores correctos, en los espacios adecuados, le saldrá un mensaje de: "ha introducido los valores correctos"; si los valores que ha introducido no son los correctos le saldrá el mensaje: "Los valores introducidos no son correctos.

El código que diseñe fue el siguiente:
html

<form method="post" name="esquema" action="esquema.php">
<input type="text" name="x1" align="center" >
<input type="text" name="x2" align="center" >
<input type="text" name="x3" align="center" >
<input type="text" name="x4" align="center" >


<?php
if ( isset($_POST['x1']) && !empty($_POST['x1']) &&
isset($_POST['x2']) && !empty($_POST['x2']) &&
isset($_POST['x3']) && !empty($_POST['x3']) &&
isset($_POST['x4']) && !empty($_POST['x4']) &&
isset($_POST['x4']) && !empty($_POST['x4']) )
{

$x1 = (int)$_POST['x1'];
$x2 = (int)$_POST['x2'];
$x3 = (int)$_POST['x3'];
$x4 = (int)$_POST['x4'];
$y1 = "si";
$y2 = "si";
$y3 = "no";
$y4 = "no";
$y1 = $x1;
$y2 = $x2;
$y3 = $x3;
$y4 = $x4;

echo "La seleccion es correcta";
} else {echo "La selección es incorrecta";}


html de nuevo:

<div id="boton"> <input type="submit" value="Comprobar" align="center"> </form>

A ver si me podeis ayudar con ello, gracias.
  #2 (permalink)  
Antiguo 13/02/2014, 07:38
Avatar de mili_07  
Fecha de Ingreso: febrero-2012
Mensajes: 58
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: form con código php

Podrías explicarlo más detalladamente para poder ayudarte, no me queda muy claro lo que necesitas hacer. Gracias!
__________________
...Si quieres que tu código funcione y tienes errores, borra todo y vuelve a empezar...
  #3 (permalink)  
Antiguo 13/02/2014, 07:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: form con código php

¿Fallo en qué sentido? ¿Que es lo que hace o no hace?
Trata de ser más específico, así evitamos andar adivinando.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 13/02/2014, 09:49
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: form con código php

sí claro os explico, es que el código que hice creí que estaba bien pero no me da el valor correcto para cada caso:

A las 4 variables x1, x2, x3, x4, el usuario asigna 4 valores (esos valores pueden ser solo si o no); por ejemplo el usuario introduce:
en input 1: si
en input 2: no
en input 3: no
en input 4:si

Imaginaos que la combinación correcta sería: si si no no; entonces si el usuario la introduce correctamente, quiero que me salga un mensaje de "bien realizado", en el caso de que no "vuelve a intentarlo o un mensaje semejante";

A ver si así os aclaro más, si no preguntadme las dudas gracias.

Otra duda, por rizar un poco más el rizo, es como quedaría el código php si en vez de usar inputs introduzco un cuadro de marcar (clickear), para qu el usuario no tenga que poner si o no sino solamente clickear (para si) o no clickear para no.
  #5 (permalink)  
Antiguo 13/02/2014, 09:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: form con código php

No me cierra esto que dices:
Cita:
por ejemplo el usuario introduce:
en input 1: si
en input 2: no
en input 3: no
en input 4:si
Porque cuando haces esto:
Código PHP:
Ver original
  1. $x1 = (int)$_POST['x1'];
  2. $x2 = (int)$_POST['x2'];
  3. $x3 = (int)$_POST['x3'];
  4. $x4 = (int)$_POST['x4'];
la conversión de cadenas de texto devuelve cero, y por otro lado, no veo que hagas otra cosa que verificar si puso algo:
Código PHP:
Ver original
  1. <?php
  2. if ( isset($_POST['x1']) && !empty($_POST['x1']) &&
  3. isset($_POST['x2']) && !empty($_POST['x2']) &&
  4. isset($_POST['x3']) && !empty($_POST['x3']) &&
  5. isset($_POST['x4']) && !empty($_POST['x4']) &&
  6. isset($_POST['x4']) && !empty($_POST['x4']) )
  7. {
  8.  
  9. $x1 = (int)$_POST['x1'];
  10. $x2 = (int)$_POST['x2'];
  11. $x3 = (int)$_POST['x3'];
  12. $x4 = (int)$_POST['x4'];
  13. $y1 = "si";
  14. $y2 = "si";
  15. $y3 = "no";
  16. $y4 = "no";
  17. $y1 = $x1;
  18. $y2 = $x2;
  19. $y3 = $x3;
  20. $y4 = $x4;
  21.  
  22. echo "La seleccion es correcta";
  23. } else {echo "La selección es incorrecta";}

Francamente creo que tu problema no deberías resolverlo por PHP, sino por JavaScript...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 13/02/2014, 12:10
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: form con código php

si mira con los 4 inputs me refiero a que hay cuatro cajas de inputs para que el usuario en cada una de ellas ponga un único valor (que puede ser si o no); seria algo así:

Caja 1: (valor a poner si o no) Caja 2: (valor a poner si o no)
Caja 3: (valor a poner si o no) Caja 4: (valor a poner si o no)

Entonces a esos 4 inputs los envio y asocio a 4 variables (x1, x2, x3, x4);
que luego comparo con otras 4 variables distintas establecidas con los valores correctos asociados a esas entradas (y1, y2, y3, y4);
De tal manera que si x1=y1, x2=y2...hasta el cuarto valor; de tal modo que si los valores introducidos son iguales sale un mensaje de los valores introducidos son correctos, si son distintos sale un mensaje de vuelvelo a intentar.

He vuelto a intentar modificar el código para que funcione, pero aún así no va, a ver que os parece y si me podeis plantear una alternativa porque al probar introduciendo valores de si o no, no me da ningun mensaje o resultado:

<form method="post" name="esquema" action="esquema.php">
<input type="text" name="x1" align="center" >
<input type="text" name="x2" align="center" >
<input type="text" name="x3" align="center" >
<input type="text" name="x4" align="center" >


<?php
if ( isset($_POST['x1']) &&
isset($_POST['x2']) &&
isset($_POST['x3']) &&
isset($_POST['x4']) &&

{
$x1 = (int)$_POST['x1'];
$x2 = (int)$_POST['x2'];
$x3 = (int)$_POST['x3'];
$x4 = (int)$_POST['x4'];
$y1 = "si";
$y2 = "si";
$y3 = "no";
$y4 = "no";
$y1 = $x1;
$y2 = $x2;
$y3 = $x3;
$y4 = $x4;

echo "La seleccion es correcta";
} else {echo "La selección es incorrecta";}


?>
  #7 (permalink)  
Antiguo 13/02/2014, 12:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: form con código php

Cita:
Entonces a esos 4 inputs los envio y asocio a 4 variables (x1, x2, x3, x4);
que luego comparo con otras 4 variables distintas establecidas con los valores correctos asociados a esas entradas (y1, y2, y3, y4);
Ajá... ¿y dónde haces esa "comparación"?
Porque en el script que posteas no está...

Nota: Usa los highlights, por favor, para poner el código. Hay uno específico para PHP.
De ese modo lo que posteas será más legible.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 13/02/2014, 12:40
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: form con código php

Perdona por no poner las citas, es que no se como se hacen, entro poco por aqui:

entonces la comparación que no hago tendría sería introduciendo un if, en esta parte???:



if
$y1 = $x1;
$y2 = $x2;
$y3 = $x3;
$y4 = $x4;

echo "La seleccion es correcta";
} else {echo "La selección es incorrecta";}
  #9 (permalink)  
Antiguo 13/02/2014, 12:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: form con código php

Tampoco...
Estás necesitando leer un manual de PHP sino sabes eso, sin ofender.

Si ya estás cosntruyendo bien el if() validando si los datos llegan, un poco más arriba, ¿por qué estás escribiéndolo mal en esa parte?
Es simplemente un IF() anidad, es decir, un if() dentro de otro if(). Nada más.
Por otro lado, con esto:
Código PHP:
Ver original
  1. $y1 = $x1;
  2. $y2 = $x2;
  3. $y3 = $x3;
  4. $y4 = $x4;
Estás asignando lo que está en $x1, por ejemplo, a la variable $y1. No comparándolo.

La comparación por igualdad se hace:
Código PHP:
Ver original
  1. if($y1 == $x1)

En cuanto al código, es simple: ¿Ves ese combobox que dice "Highligh"?
Bueno, úsalo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 13/02/2014, 15:31
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: form con código php

Bueno probe con está opción y tampoco me da ninguna respuesta, al pulsar comprobar, tras rellenar los inputs; alguien tiene alguna solución o correción definitiva??, graciasss.



<form method="post" name="esquema" action="esquema.php">
<input type="text" name="x1" align="center" >
<input type="text" name="x2" align="center" >
<input type="text" name="x3" align="center" >
<input type="text" name="x4" align="center" >


<?php
if (isset($_POST['x1']) &&
isset($_POST['x2']) &&
isset($_POST['x3']) &&
isset($_POST['x4']) )

{
$x1 = $_POST['x1'];
$x2 = $_POST['x2'];
$x3 = $_POST['x3'];
$x4 = $_POST['x4'];
$y1 = "si";
$y2 = "si";
$y3 = "no";
$y4 = "no";
if
($y1 == $x1)
($y2 == $x2);
($y3 == $x3);
($y4 == $x4);
{
echo "La seleccion es correcta" ;
} else {echo "La selección es incorrecta" ;}


?>


<div id="boton"> <input type="submit" value="Comprobar" align="center"> </form> </div>
  #11 (permalink)  
Antiguo 13/02/2014, 15:40
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: form con código php

Creo que estas muy verde y te estas liando un poco. Esto son cosas basicas.

Empieza por mirar la documentacion.

if
http://www.php.net/manual/es/control-structures.if.php
if - elseif - else
http://www.php.net/manual/es/control...res.elseif.php
Operadores de comparacion
http://www.php.net/manual/es/languag...comparison.php
Operadores logicos
http://www.php.net/manual/es/languag...rs.logical.php
  #12 (permalink)  
Antiguo 13/02/2014, 15:50
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: form con código php

mmm, no me podrías orientar más sobre la respuesta, y luego miro eso, es que es una cosa que me corre prisa y lo tengo que entregar el sábado,
  #13 (permalink)  
Antiguo 13/02/2014, 16:05
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: form con código php

Cita:
Iniciado por jesus_spanishteacher Ver Mensaje
mmm, no me podrías orientar más sobre la respuesta, y luego miro eso, es que es una cosa que me corre prisa y lo tengo que entregar el sábado,

Si te digo la respuesta no vas a mirar eso y no vas a aprender. tampoco puedes esperar que te hagamos aqui los ejercicios.


No vas mal encaminado del todo

mirate sobre todo esta parte
Código PHP:
Ver original
  1. if
  2. ($y1 == $x1)
  3. ($y2 == $x2);
  4. ($y3 == $x3);
  5. ($y4 == $x4);
  6. {
  7. echo  "La seleccion es correcta" ;
  8. } else {echo "La selección es incorrecta" ;}

y tu form tampoco esta completo, revisalo.
  #14 (permalink)  
Antiguo 13/02/2014, 16:42
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: form con código php

Ok, gracias; lo comprobaré, y te consultaré las dudas que tenga; es curioso lo del form, no sé que me puede faltar ahí, a ver si me orientas sobre ello un poco; gracias!!!
  #15 (permalink)  
Antiguo 13/02/2014, 16:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: form con código php

Vamos a ver si lo pescas, con ejemplos del manual de referencia:
Código PHP:
Ver original
  1. <?php if ($a == 5): ?>
  2. A es igual a 5
  3. <?php endif; ?>

Como mínimo deberías buscar algún tutorial de PHP sobre el if() y leerlo, antes de plantear un problema con graves errores de lógica y programación. Es decir, no nos importa ayudar, pero al menos trata de programar las cosas respetando la sintaxis correcta.
Tratar de ayudarte cuando no conoces nada de PHP, como parece ser, resulta difícil, porque primero debemos explicarte la sintaxis más básica antes de intentar resolver un ejercicio puntual.

De ese tutorial:
Código PHP:
Ver original
  1. if (condicion1=a AND condicion2=b AND condicion3=c)
  2. {
  3.    // sentencias por TRUE
  4. }
  5. else
  6. {
  7.    //sentencias por FALSE
  8. }

Compara esto con lo que hiciste y si no notas cuál es el error, es que aún te falta más.

Por cierto, por favor, usa los Highlights. Es molesto leer el código posteado como texto plano.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #16 (permalink)  
Antiguo 13/02/2014, 17:07
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: form con código php

Cita:
Iniciado por jesus_spanishteacher Ver Mensaje
Ok, gracias; lo comprobaré, y te consultaré las dudas que tenga; es curioso lo del form, no sé que me puede faltar ahí, a ver si me orientas sobre ello un poco; gracias!!!

Perdon el form esta bien, lo que pasa que al estar puesta esta linea despues del codigo PHP no lo habia visto.
Código HTML:
Ver original
  1. <div id="boton">   <input type="submit" value="Comprobar" align="center"> </form> </div>
  #17 (permalink)  
Antiguo 13/02/2014, 17:13
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: form con código php

para poner el codigo coloreado, usa el desplegable que hay en la caja para comentar con el texto:

Highlight

Selecionas el tipo de codigo y te autoescribe dos etiquetas,el codigo lo tienes que escribir entre esas 2 etiquetas.
  #18 (permalink)  
Antiguo 14/02/2014, 03:23
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: form con código php

Hola chicos, sigo haciendo esto y miré los siguientes aspectos del manual:


Código PHP:
Ver original
  1. $a === $b   Idéntico    TRUE si $a es igual a $b, y son del mismo tipo.

he añadido tb los AND:

Código PHP:
Ver original
  1. if
  2. ($y1 === $x1 AND
  3. $y2 === $x2 AND
  4. $y3 === $x3 AND
  5.  $y4 === $x4):


y en el mismo manual, he visto lo siguiente del endif, opinais que se puede aplicar así, en este caso:

Código PHP:
Ver original
  1. http://php.net/manual/es/control-structures.alternative-syntax.php

No obstante sigo teniendo algún error, a ver si me lo podéis corregir, me queda esto:

Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST['x1']) &&
  3. isset($_POST['x2']) &&
  4. isset($_POST['x3']) &&
  5. isset($_POST['x4']) );
  6.  {
  7. $x1 = $_POST['x1'];
  8. $x2 = $_POST['x2'];
  9. $x3 = $_POST['x3'];
  10. $x4 = $_POST['x4'];
  11. $y1 == "si";
  12. $y2 == "si";
  13. $y3 == "no";
  14. $y4 == "no";
  15. }
  16. if
  17. ($y1 === $x1 AND
  18. $y2 === $x2 AND
  19. $y3 === $x3 AND
  20.  $y4 === $x4):
  21. echo  "La seleccion es correcta" ;
  22. else: echo "La selección es incorrecta";
  23. endif;
  24. ?>
  25.  
  26. <div id="boton">   <input type="submit" value="Comprobar" align="center"> </form> </div>

Varias consultas en relación al doble if, porque tengo dudas de la sintaxis de la primera condición (de la parte entre corchetes), ya que me da el siguiente error:

Código PHP:
Ver original
  1. Notice: Undefined index: x1 in C:\xampp\htdocs\esquema.php on line 57

Y al darle al comprobar:
Código PHP:
Ver original
  1. Notice: Undefined variable: y1 in C:\xampp\htdocs\esquema.php on line 61

- Luego volví a mirar en el manual y cambié $y1 =="si" por $y1 ="si"; para definir bien la variable, pero aún así no iba, a ver si me podeis dar unas correcciones finales que me lo solucione estos problemillas, graciasss!!!
  #19 (permalink)  
Antiguo 14/02/2014, 05:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: form con código php

Consejo: Usa un editor con corrector sintáctico para programar (por ejemplo, NetBeans). Ayuda a hacer que el script sea más legible.

Esto está mal:
Código PHP:
Ver original
  1. $y1 == "si";
  2.     $y2 == "si";
  3.     $y3 == "no";
  4.     $y4 == "no";

Esa no son asignaciones, sino comparaciones, ya te lo dije un poco más arriba.

Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST['x1']) &&
  3.         isset($_POST['x2']) &&
  4.         isset($_POST['x3']) &&
  5.         isset($_POST['x4'])
  6.     ); {
  7.     $x1 = $_POST['x1'];
  8.     $x2 = $_POST['x2'];
  9.     $x3 = $_POST['x3'];
  10.     $x4 = $_POST['x4'];
  11.     $y1 == "si";
  12.     $y2 = "si";
  13.     $y3 = "no";
  14.     $y4 = "no";
  15. }
  16. if
  17.  ($y1 == $x1 AND
  18.         $y2 == $x2 AND
  19.         $y3 == $x3 AND
  20.         $y4 == $x4):
  21.     echo "La seleccion es correcta";
  22. else: echo "La selección es incorrecta";
  23. endif;
  24. ?>
Ten cuidado con los "===". Se usan de un modo diferente al "==".
Prueba esto y verás la diferencia:
Código PHP:
Ver original
  1. <?php
  2.     $a = 1;
  3.     $b = "1";
  4.     if($a == $b)
  5.         {echo "TRUE: $a es igual a $b.<br>";}
  6.     if($a === $b)
  7.         {echo "TRUE: $a es identico a $b.\n";}
  8.     else
  9.         {echo "FALSE: $a es de diferente tipo a $b.\n";}
  10. ?>

Cita:
Notice: Undefined index: x1 in C:\xampp\htdocs\esquema.php on line 57
Eso quiere decir que el indice "x1" de $_post no existe. Al menos no existe en el contexto de ejecución de tu script.
Cita:
Notice: Undefined variable: y1 in C:\xampp\htdocs\esquema.php on line 61
La variable $y1 no existe. Probablemente porque estás comparando y no asignando...

¿Por qué no separas el HTML del PHP en scripts separados, como para probar las cosas de modo más ortodoxo? Por allí eso ayuda.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: form, html
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 11:29.