Foros del Web » Programando para Internet » PHP »

Error con PHP_SELF

Estas en el tema de Error con PHP_SELF en el foro de PHP en Foros del Web. Buenas buenas!!! En una página tengo un formulario de búsqueda con varios campos y dentro de la misma pagina deberían mostrarse los registros de la ...
  #1 (permalink)  
Antiguo 19/03/2010, 10:22
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 3 meses
Puntos: 5
Error con PHP_SELF

Buenas buenas!!!

En una página tengo un formulario de búsqueda con varios campos y dentro de la misma pagina deberían mostrarse los registros de la búsqueda.

Esto lo logro así

Código PHP:
<form action="<?PHP $PHP_SELF ?>" method="post" >
Pero dentro del código de la búsqueda no me reconoce las variables con las que debo comparar los campos del form con los de la tabla.

Código PHP:
$micampo$_POST["micampo"]; 

"SELECT * FROM $Tabla WHERE $micampo = campotabla ORDER BY mitablaASC"
El error es que no esta definida la variable Notice: Undefined index: micampo in

Quizás estoy haciendo algo mal... por otro lado me gustaría saber que opinan sobre PHP_SELF porque he leído por ahí que es vulnerable a los hackeos ya que por ahí se puede insertar código malicioso fácilmente.

Ojala me puedan ayudar, muchas gracias!
__________________
Saludos!!!
Maru.-
  #2 (permalink)  
Antiguo 19/03/2010, 10:40
 
Fecha de Ingreso: marzo-2010
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Error con PHP_SELF

No entiendo exactamente tu problema, veo que estas algo confundido, pero intenta hacer la consulta asi:

SELECT * FROM $Tabla WHERE campotabla = $micampo ORDER BY mitabla ASC;

Y en este caso PHP_SELF no representa ningún problema, te recomiendo que leas un poco mas sobre sql.
  #3 (permalink)  
Antiguo 19/03/2010, 10:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Error con PHP_SELF

Comprueba con isset() las variables que recibas mediante el formulario antes de utilizarlas.

En cuanto a PHP_SELF, si lo utilizas directamente, tu página será vulnerable a ataques XSS. Puedes usar htmlspecialchars para filtrarlo antes de imprimir en el action del form.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 19/03/2010, 10:58
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 3 meses
Puntos: 5
Respuesta: Error con PHP_SELF

Si pongo

Código PHP:
SELECT FROM $Tabla WHERE campotabla $micampo ORDER BY mitabla ASC
me da el siguiente error:

Notice: Undefined variable: micampo in C:\wamp\www\mipagina\formulario.php on line 159
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE campotabla = ' at line 1


por lo que veo no reconoce micampo y no se como pasarselo.

Gracias a los dos por responder, voy a ver sobre eso que mencionaste de php_self
__________________
Saludos!!!
Maru.-
  #5 (permalink)  
Antiguo 19/03/2010, 11:00
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Error con PHP_SELF

Como dije, el problema que tienes con la consulta la puedes solucionar usando isset para comprobar si se recibe el valor antes de utilizarlo:
Código PHP:
Ver original
  1. if (isset($_POST['micampo'])) {
  2.     // Utilizar variable
  3. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 19/03/2010, 11:13
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 3 meses
Puntos: 5
Respuesta: Error con PHP_SELF

sigo con el mismo error probando tu ejemplo :S
__________________
Saludos!!!
Maru.-
  #7 (permalink)  
Antiguo 19/03/2010, 11:15
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Error con PHP_SELF

¿Cómo lo probaste? Muestra el código completo que tienes.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 19/03/2010, 11:24
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 3 meses
Puntos: 5
Respuesta: Error con PHP_SELF

Código HTML:
<form action="<?PHP $PHP_SELF ?>" method="post" >
<table width="500" height="150" border="0" align="center" class="tblformprof" cellspacing="5" cellpadding="5">
  <tr>
    <td width="54" class="izq">Nombre</td>
    <td width="197"><label>
      <input type="text" name="nombre" id="tomo" size="10">
    </label></td>
     <tr>
    <td>&nbsp;</td>
    <td><label>
      <div align="center">
        <input class="boton" type="submit" name="button" id="button" value="Buscar">
        </div>
    </label></td>   
</table>
</form> 


Código PHP:
if (isset($_POST['nombre'])) {
   echo 
"mi variable: $nombre";
}    

$query "SELECT * FROM $Tabla WHERE nombretbl= $nombre ORDER BY nombre ASC"
__________________
Saludos!!!
Maru.-
  #9 (permalink)  
Antiguo 19/03/2010, 11:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Error con PHP_SELF

El problema es que de todos modos usas la variable sin que tenga un valor:
Código PHP:
Ver original
  1. if (isset($_POST['nombre'])) {
  2.     $nombre = mysql_real_escape_string($_POST['nombre']);
  3.  
  4.     // Ejecutar consulta
  5. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 19/03/2010, 12:00
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 21 años, 3 meses
Puntos: 5
Respuesta: Error con PHP_SELF

Funcionó y no....

Cuando quiero hacerlo con el resto de los campos sigo con el mismo problema.
Mas se enreda cuando quiero hacer distintos select en el caso de que no se completen ninguno de los campos que me traiga todo y segun lo que complete el usuario haga la busqueda

Código PHP:
if (isset($_POST['nombre'])){
  
$nombremysql_real_escape_string($_POST['nombre']);
}  
if (isset(
$_POST['codigo'])){
  
$codigomysql_real_escape_string($_POST['codigo']);
}

if (isset(
$_POST['ciudad'])){
  
$ciudad mysql_real_escape_string($_POST['ciudad']);


if ((
$nombre== "") && ($codigo== "") && (ciudad== "") ) {

    
$query "SELECT * FROM $Tabla ORDER BY nombre ASC";
} else {
    
$query "SELECT * FROM $Tabla WHERE nombretbl = $nombre ORDER BY nombre  ASC";

....
....

__________________
Saludos!!!
Maru.-

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:12.