Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/04/2010, 07:25
santhy
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Respuesta: Vaciar variables y modificar URL

Lo he leido por encima, pero..
Si el formulario se está enviando por POST, la razón de que tu URL incluya el query_string que traía de la petición anterior por GET es que... <form action=""> está vacío!

Primero: es muy poco recomendable dejar atributos (X)HTML de ubicación (src, href) vacíos. Si no quieres poner la URL completa (http://{servidor}/{path/to/}consulta_art.php) pon, al menos, el nombre del script.
Como es el mismo script, puedes utilizar, simplemente, <?php echo $_SERVER['SCRIPT_NAME'] ?>.

Ahora, como notas (E_NOTICE ^^) me gustaría decirte un par de cosillas:
Por ejemplo, para comprobar si una petición es GET o POST, en lugar de
if($_POST), deberías utilizar if($_SERVER['REQUEST_METHOD'] == 'POST'), por tres razones:
a) $_SERVER['REQUEST_METHOD'] siempre existe, solo se comprueba su valor.
b) if($_POST) a ti no te da errores porque tu error_reporting() o display_errors impiden que se muestren E_NOTICEs de que la variable todavía no ha sido inicializada (en caso de una petición GET).
c) Para comprobar que una variable no exista o esté vacía, se utiliza, no if(!_$POST) sino if(empty($_POST)) por aquello de que $_POST (de existir) es un array. ¿Por qué? Porque a PHP le cuesta menos procesar una comprobación entre valores iguales que entre valores distintos ( array == false <=> array [is] empty )

Y otra cosa, cuando compruebes si las variables vienen por GET o POST, no cambies sus valores en PHP a menos que sea necesario:
$_GET['cualquierCosa'] = 'abc';
solo sirve para que luego no puedas acceder al valor original de $_GET['cualquierCosa'] con echo $_GET['cualquierCosa'];

Es mucho mejor práctica hacer algo como
$cosa = $_GET['mivariable'];
if(this_is_not_awesome($cosa)) $cosa = 'otroValor a mano';

Espero haberte ayudado, y no te tomes a mal mi "crítica" constructiva.
Tus scripts seguirán funcionando sin hacerme ni caso a ello, pero son recomendaciones del PHP Group.

Un saludo!
__________________
Si te ha gustado lo que he dicho, puedes darme algún punto de reputación, que no te cuesta nada ^_^.

Di no a los juicios de valor!