Ver Mensaje Individual
  #8 (permalink)  
Antiguo 26/06/2003, 09:01
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Bueno, veamos. Empecemos con:
Código PHP:

// COMPROBAMOS QUE LA VARIABLE 'BUSCAR' NO ESTA VACIA

if (empty ($_POST['buscar'])){ 

echo 
"<p>Debe especificar una cadena a buscar</p> \n";
echo 
"<p><a href='javascript:history.go(-1)'>Volver</p> \n"; }
elseif (
strlen($_POST['buscar']) > 1) { 
En este codigo SOLO compruebas el campo buscar de un formulario en el $_POST. El $_POST esta vacio cuando llegas a traves de un link. Por lo tanto es este codigo el que te muestra el mensaje siempre que accedes por un link.

Ahora, yo no se lo que es el campo buscar. Parece ser un campo text donde pasa el termino a buscar, lo que en teoria pasas en la URL como criterio.

Lo que te comentaba de las variables locales era hacerlo AL COMIENZO el script, delante de todo el codigo. Y a partir de ahi, solo utilizar las variables locales.

Probemos un ejemplo. Tu criterio de busqueda puede venir de un formulario (campo 'buscar') o de la URL (parametro 'criterio'). Yo pondria este codigo al comienzo de todo:
Código PHP:
<?php
$criterio_txt
=''// $criterio_txt sera el termino de busqueda, la inicializamos a vacia
if (isset($_POST['buscar'])) { // si existe el campo del formulario, lo usamos como termino de busqueda
  
$criterio_txt=$_POST['buscar'];
} elseif (isset(
$_GET['criterio'])) { // si no existe el formulario, pero si existe en la URL, usamos este
  
$criterio_txt=$_GET['criterio'];
}
// en este punto, $criterio_txt tiene el valor de $_POST['buscar'] o el de $_GET['criterio'] o '' (vacio)

// aqui hariamos lo mismo con todos los parametros que puedan venir por formulario o por URL
...

// comienza el codigo que tienes
// a partir de aqui, no deberiamos usar ningun $_POST o $_GET
if (empty ($criterio_txt)){ 

echo 
"<p>Debe especificar una cadena a buscar</p> \n";
echo 
"<p><a href='javascript:history.go(-1)'>Volver</p> \n"; }
elseif (
strlen($criterio_txt) > 1) {

// y asi con todo el codigo, sustituyendo los $_POST/$_GET por sus variables locales
...
?>
Espero que ahora este un poco mas claro.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.