Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/02/2011, 06:20
Avatar de Gambinoh
Gambinoh
 
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 13 años, 4 meses
Puntos: 11
Problema con php intercalado en formulario

Hola a todos, he decidido basarme en el aporte del usuario rogertm, sin embargo me encuentro con algunas dudas.

En principio, tras hacer las modificaciones pertinentes a su código (básicamente rellenarlo con mis datos xD), me encuentro con que hay algo que falla en el formulario.

De entrada no entiendo la parte de código xhtml con php intercalado:

Cita:
<h1><a href="<?php echo $_SERVER['PHP_SELF']; ?>”>Buscador - By RogerTM</a></h1>
<form name=”buscar” action=”<?php $_SERVER['PHP_SELF'] ?>” method=”get”>
Buscar: <input type=”text” size=”50″ value=”<?php echo $_GET['frase']; ?>” name=”frase” />
<input type=”submit” name=”buscar” value=”Buscar” />
</form>
Aquí se puede ver el código completo.

Recibo este error > Notice: Undefined index: frase in /opt/lampp/htdocs/buscar.php on line 11

También observo que la etiqueta input con atributo type="submit" lejos de mostrarse como un botón se muestra como un campo de texto. Literalmente uso el código tal y como está expuesto en el quote de arriba...

Estas son las dudas que me surgen, espero ser preciso y expresarme con exactitud.

¿Qué clase de fallo puede haber en el código xhtml, puede tratarse del orden de los atributos, del valor, que esté obsoleto?

Asumo que $_SERVER es una variable generada por el servidor que almacena un array con datos referentes a cabeceras, rutas, etc. y que en el código de arriba se llama al índice (key) 'PHP_SELF' resultando en la expresión $_SERVER['PHP_SELF'] que devolvería algo así como la ruta /htdocs/Web/buscar.php por poner un ejemplo.

¿Entonces a que viene la instrucción (función) echo? ¿El hecho de que se use $_SERVER['PHP_SELF'] en lugar de "buscar.php" como valor para el atributo action se debe a que el form se encuentra en la misma página que el código php?

Y para acabar ¿qué significa esto: value=”<?php echo $_GET['frase']; ?>"? No entiendo que se recoja mediante la variable superglobal $_GET el campo con name="frase" cuando en esa parte del código aún no se ha especificado todavía el nombre del campo.

De hecho el Notice dice índice indefinido en línea 11 que corresponde exactamente con "<?php echo $_GET['frase']; ?>", eso es todo.

Última edición por Gambinoh; 26/02/2011 a las 06:36