Comunidad de diseño web y desarrollo en internet online

Error pasar datos a formulario

Citar            
MensajeEscrito el 10 Feb 2013 11:41 pm
Buenas tardes a todos:

Me solicitan crear dos constantes con el nombre de 2 capitales del mundo respectivamente. En un formulario se me solicita que el usuario registre mediante "radio-button" el pais al cual pertenece. Al final el resultado me debe aparecer lo siguiente: hola [] eres del pais [] cuya capital es []. he realizado lo siguiente pero me arroja errores y no entiendo por que:

En el archivo HTML he hecho lo siguiente:

<form name="form" method="post" action="tareapuntotres.php">

<h1>Ingreso de datos</h1>
Nombre completo <input type="text" name="nom"/>
<br/>
Pais de procedencia:
<br/>
Alemania<input type="radio" name="pais" value="Alemania" checked="checked" />
Francia<input type="radio" name="pais" value="Francia"/>
<hr/>

<input type="button" value="Enviar" title="enviar" onclick="document.form.submit();"/>
</form>


y en el archivo que recibe lo siguiente:

<?php

define("alemania", "berlin");
define("francia", "paris");

if (isset($_POST["pais"])==Alemania){

echo "hola ".$_POST["nom"]." tu eres del pais".$_POST["pais"]." cuya capital es ".alemania;
}

if (isset($_POST["pais"])==Francia){

echo "hola ".$_POST["nom"]." tu eres del pais".$_POST["pais"]." cuya capital es ".paris;
}

?>

Agradezco la ayuda

Por leoalvis

2 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 11 Feb 2013 01:41 pm
PHP es sensible a mayúsculas; "alemania" no es lo mismo que "Alemania".
Por otro lado la función isset() devuelve un tipo booleano por lo que la comparación que tienes en los if nunca va a resultar verdadera.

Lo que has querido hacer es:

Código PHP :

define("alemania", "berlin");
 define("francia", "paris");

 if (isset($_POST["pais"]) and ($_POST['pais']=='alemania')){

 echo "hola ".$_POST["nom"]." tu eres del pais".$_POST["pais"]." cuya capital es ".alemania; 
 }

El primer operando del and evalúa si la variable $_POST['pais'] existe, luego evalúa si esa variable es igual a la cadena 'alemania'.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 11 Feb 2013 01:43 pm
Aunque viendo el código del formulario, mejor aún es hacer:

Código PHP :

define("alemania", "berlin");
 define("francia", "paris");

 if (isset($_POST["pais"]) and (strtolower($_POST['pais'])=='alemania')){

 echo "hola ".$_POST["nom"]." tu eres del pais".$_POST["pais"]." cuya capital es ".alemania; 
 }

La función strtolower() transforma el contenido de la variable a minúsculas independientemente de cómo esté escrito su valor.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.