Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/02/2013, 17:56
RabidFish
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: Problema al pasar datos de formulario

Estás usando define() como si fuese un array(), cuando en realidad el primer parámetro es el nombre de la constante (que usualmente se escribe en mayúscula para diferenciar fácilmente de una variable) y el segundo es el valor que toma la misma. Te recomiendo que uses comillas simples si no necesitas que PHP muestre el valor de una variable dentro de un string. Tampoco puedes preguntar por isset() y por == en el mismo if, debes hacer dos preguntas separadas. Al código aún le falta validar que el nombre no esté vacío. Puedes obviar las constantes de las capitales y escribir su respectivo nombre dentro de cada if, pero depende de qué te hayan pedido exactamente.
Código PHP:
<?php
define
('PAIS1''Alemania');
define('PAIS2''Francia');
define('CAPITAL1''Berlín');
define('CAPITAL2''París');

if (isset(
$_POST['pais'])) {
    if (
$_POST['pais'] == PAIS1) {
        echo 
'Hola '.$_POST['nom'].', tú eres del pais '.$_POST['pais'].' cuya capital es '.CAPITAL1;
    } elseif (
$_POST['pais'] == PAIS2) {
        echo 
'Hola '.$_POST['nom'].', tú eres del pais '.$_POST['pais'].' cuya capital es '.CAPITAL2;
    }
}
También puedes reemplazar esto:
Código:
<input type="button" value="Enviar" title="enviar" onclick="document.form.submit();"/>
Por:
Código:
<input type="submit" name="enviar" value="Enviar" />
Para no depender de JavaScript si no es necesario.

http://php.net/manual/es/function.define.php

Última edición por RabidFish; 10/02/2013 a las 18:08