
10/04/2010, 07:25
|
| | Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 19 años 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! |