Foros del Web » Programando para Internet » PHP »

quiero entender

Estas en el tema de quiero entender en el foro de PHP en Foros del Web. Buenas tardes amigos vuelvo aquí porque ustedes si pueden ayudarme con esto como ya lo hicieron en la ocasión anterior yo les tengo confianza. Entonces ...
  #1 (permalink)  
Antiguo 26/09/2010, 16:43
 
Fecha de Ingreso: abril-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 0
quiero entender

Buenas tardes amigos vuelvo aquí porque ustedes si pueden ayudarme con esto como ya lo hicieron en la ocasión anterior yo les tengo confianza.

Entonces mi duda es esta:

Tengo este codigo:
Código:
<?php

$try = $_POST['respuesta'];

if($try == 'calor')
{
		echo 'ahora continua con la sgte prueba';
}
else
{
	echo 'vas por tu segundo intento';
};

?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>tres intentos y hasta mañana</title>
</head>

<body>
<p>¿Que pasa si estas mucho tiempo al sol?</p>
<form name="formulario_1" action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
	<label for="textfield">Dame tu respuesta</label>
		<input type="text" name="respuesta" id="textfield">
    <label for="textfield">Enviar</label>
		<input type="submit" name="enviar" id="textfield" value="enviar">
</form>
</body>
</html>
cuando veo la pagina en el navegador se aprecia esto

Código:
vas por tu segundo intento
¿Que pasa si estas mucho tiempo al sol?

Dame tu respuesta   Enviar
la frase "vas por tu segundo intento" no debería aparecer cuando se carga por primera vez la pagina si cuando se envía la respuesta en el formulario y ademas que sea incorrecta. Y porque se muestra el segundo echo si lo lógico seria que mostrara el primer echo.

ahora si separo el código php y el html en archivos distintos funciona sin ningún problema.

quisiera saber como solucionarlo y ademas porque pasa eso cuando el código esta en la misma pagina.
  #2 (permalink)  
Antiguo 26/09/2010, 16:54
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: quiero entender

te explico la primera vez tu no tienes respuesta x lo que la condicion es falsa
Cita:
$try = $_POST['respuesta'];

if($try == 'calor')
{
echo 'ahora continua con la sgte prueba';
}
else
{
echo 'vas por tu segundo intento';
};
y te dise tu segundo intento, que hacer esto
Código PHP:
Ver original
  1. if(isset($_POST['respuesta¡])){
  2.    $try = $_POST['respuesta'];
  3.    if($try == 'calor')
  4.    {
  5.         echo 'ahora continua con la sgte prueba';
  6.    }
  7.    else
  8.    {
  9.     echo 'vas por tu segundo intento';
  10.  }
  11. }
  12. ?>
que hiciste verificaste que halla una respuesta si la hay verificas si es correcta o no, si no hay respuesta no te escribe nada saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 26/09/2010, 16:58
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: quiero entender

Pasa que entra al else siempre porque no esta definida la variable $_POST


Intenta:
Código:
<?php

if (isset($_POST['respuesta'])){

$try = $_POST['respuesta'];

if($try == 'calor')
{
		echo 'ahora continua con la sgte prueba';
}
else
{
	echo 'vas por tu segundo intento';
};

}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>tres intentos y hasta mañana</title>
</head>

<body>
<p>¿Que pasa si estas mucho tiempo al sol?</p>
<form name="formulario_1" action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
	<label for="textfield">Dame tu respuesta</label>
		<input type="text" name="respuesta" id="textfield">
    <label for="textfield">Enviar</label>
		<input type="submit" name="enviar" id="textfield" value="enviar">
</form>
</body>
</html>
Saludos.
  #4 (permalink)  
Antiguo 26/09/2010, 17:04
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: quiero entender

Cita:
Iniciado por sandinosaso Ver Mensaje
Pasa que entra al else siempre porque no esta definida la variable $_POST
el entra al else xq nunk laq primera vez $try va a ser igual a calor no necesariamete xq no este definido el $_POST xq si yo coloco esto

Código PHP:
//$try = $_POST['respuesta'];
$try="calor";
if(
$try == 'calor')
{
        echo 
'ahora continua con la sgte prueba';
}
else
{
    echo 
'vas por tu segundo intento';
}; 
ahi entraria automaticamente o no?? el echo es que en verdad no esta validando su entrada x eso tanto tu como yo le idicamos que verifique si se envio respuesta para que haga la verificacion sino que no entre en el condicional saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 26/09/2010, 19:27
 
Fecha de Ingreso: abril-2007
Mensajes: 26
Antigüedad: 17 años
Puntos: 0
Respuesta: quiero entender

Muchas gracias ustedes siempre rápidos y aun mejor muy atentos, espero no molestar por preguntar tanto pero quisiera saber mas, ya que preguntando aprendo si no les pregunto no aprendo cierto :).

Bueno ahí voy nuevamente.

despues de darme la respuesta a mi pregunta anterior es notable lo siguiente:
Código:
ahora continua con la sgte prueba
¿Que pasa si estas mucho tiempo al sol?

Dame tu respuesta   Enviar
La página se recarga mostrando un mensaje especifico de acuerdo a la respuesta dada sin embargo se sigue mostrando el formulario de la primera pregunta. en el supuesto caso no debería mostrar ningún formulario o mostrar el formulario de la segunda pregunta, el código es el mismo que me corrigieron´.
Código:
<?php
if (isset($_POST['respuesta'])) 
{
$try = $_POST['respuesta'];

	if ($try == 'calor')
{
		echo 'ahora continua con la sgte prueba';
}
    else
{
		echo 'vas por tu segundo intento';
};
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>tres intentos y hasta mañana</title>
</head>

<body>
<p>¿Que pasa si estas mucho tiempo al sol?</p>
<form name="formulario_1" action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
	<label for="textfield">Dame tu respuesta</label>
		<input type="text" name="respuesta" id="textfield">
    <label for="textfield">Enviar</label>
		<input type="submit" name="enviar" id="textfield" value="enviar">
</form>
</body>
</html>
  #6 (permalink)  
Antiguo 27/09/2010, 06:04
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: quiero entender

Seria algo asi estimado:

Código:
<?php
if (isset($_POST['respuesta'])) 
{
$try = $_POST['respuesta'];

	if ($try == 'calor')
{
		echo 'ahora continua con la sgte prueba';
}
    else
{
		echo 'vas por tu segundo intento';
};
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>tres intentos y hasta mañana</title>
</head>

<body>

<?php

if (!isset($_POST["respuesta"])){
//Si no respondio ninguna Pregunta: Muestro primer formulario
?>

<p>¿Que pasa si estas mucho tiempo al sol?</p>
<form name="formulario_1" action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
	<label for="textfield">Dame tu respuesta</label>
		<input type="text" name="respuesta" id="textfield">
    <label for="textfield">Enviar</label>
		<input type="submit" name="enviar1" id="textfield" value="enviar">
</form>

<?php
}else{
         if (isset($_POST["enviar1"])){
           //si ya contesto la 1 le muestro el formulario2
?>

<p>¿Que pasa si estas mucho tiempo a la sombra?</p>
<form name="formulario_2" action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
	<label for="textfield">Dame tu respuesta</label>
		<input type="text" name="respuesta" id="textfield">
    <label for="textfield">Enviar</label>
		<input type="submit" name="enviar1" id="textfield" value="enviar">
</form>

       <?php
       }else if (isset($_POST["enviar2"])){
           //si ya contesto la 2 le muestro el formulario3
      ?>

<p>¿Que pasa si estas mucho tiempo con computadoras?</p>
<form name="formulario_3" action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
	<label for="textfield">Dame tu respuesta</label>
		<input type="text" name="respuesta" id="textfield">
    <label for="textfield">Enviar</label>
		<input type="submit" name="enviar3" id="textfield" value="enviar">
</form>

<?php
      }
}

?>


</body>
</html>

Espero te sirva aunque sea la idea ... es ir distinguiendo de donde viene cada formulario para saber cual es el siguiente..de igual forma puedes hacer con los mensajes correcto e incorrecto.

Saludos.
saludos

Etiquetas: entender
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 12:54.