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:
Aquí se puede ver el código completo.<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>
<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>
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.