Foros del Web » Programando para Internet » PHP »

Buscador, problemas en localhost

Estas en el tema de Buscador, problemas en localhost en el foro de PHP en Foros del Web. Hola muchach@s, tengo un problema con un buscador, en realidad con todo el proyecto en si, lo hice y lo testie en el hosting que ...
  #1 (permalink)  
Antiguo 11/05/2010, 19:08
 
Fecha de Ingreso: febrero-2009
Ubicación: Cordoba - Argentina
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Buscador, problemas en localhost

Hola muchach@s,

tengo un problema con un buscador, en realidad con todo el proyecto en si, lo hice y lo testie en el hosting que frecuentemente uso y anduvo perfecto.

Lo trate de probar en un localhost (instalado con xampp ultima version) y desde arranque dio problemas, tuve que agregarle a todos los "<?" "php". Luego de eso, todo funciona con normalidad, a excepcion del buscador,

realizado en base a este articulo
http://www.desarrolloweb.com/articulos/2087.php

Que, como he dicho antes, en el servidor online que corre bajo linux funciona perfectamente y en el localhost (windows) no.
La cuestion es que no da errores, sino que dice que hay 0 resultados.

Les paso el codigo del buscador:

Código PHP:
<?php header('Content-type: text/html; charset=utf-8');
session_start(); 
if(
$_SESSION['usr_nombre']=='')
    
header ("Location: index.php");
include_once(
"inc/inc.sistema.php");
include_once(
"inc/conexion.php");

$apellido$_POST['apellido'];
$nombre$_POST['nombre'];
$dni$_POST['dni'];
$sexo$_POST['sexo'];
$dia$_POST['dia'];
$mes$_POST['mes'];
$correo$_POST['correo'];
$tel$_POST['tel'];
$codtel$_POST['codtel'];
$cel$_POST['cel'];
$codcel$_POST['codcel'];
$provincia$_POST['provincia'];
$localidad$_POST['localidad'];
$barrio$_POST['barrop'];
$calle$_POST['calle'];
$nro$_POST['nro'];
$cp$_POST['cp'];
$nacdia$_POST['nacdia'];
$nacmes$_POST['nacmes'];
$nacano$_POST['nacano'];
$nacdia2$_POST['nacdia2'];
$nacmes2$_POST['nacmes2'];
$nacano2$_POST['nacano2'];
$altadia$_POST['altadia'];
$altames$_POST['altames'];
$altaano$_POST['altaano'];
$altadia2$_POST['altadia2'];
$altames2$_POST['altames2'];
$altaano2$_POST['altaano2'];
$moddia$_POST['moddia'];
$modmes$_POST['modmes'];
$modano$_POST['modano'];
$moddia2$_POST['moddia2'];
$modmes2$_POST['modmes2'];
$modano2$_POST['modano2'];

if (
$nacdia ==""){
$nac1"0001-01-01";
$nac2"9999-01-01";
}
elseif (
$nacdia !=""){
$nac1$nacano."-".$nacmes."-".$nacdia;
$nac2$nacano2."-".$nacmes2."-".$nacdia2;

}

if (
$altadia ==""){
$alta1"0001-01-01";
$alta2"9999-01-01";
}
elseif (
$altadia !=""){
$alta1$altaano."-".$altames."-".$altadia;
$alta2$altaano2."-".$altames2."-".$altadia2;

}

if (
$moddia ==""){
$mod1"0001-01-01";
$mod2"9999-01-01";
}
elseif (
$moddia !=""){
$mod1$modano."-".$modmes."-".$moddia;
$mod2$modano2."-".$modmes2."-".$moddia2;

}
     
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
<title><?php echo TITULO?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/estilo.css" />
</head>
<body>
    <div id="sizer">
        <div id="expander">
        <div class="headericons"></div>
            <div class="header">

                <div id="headerlogo">
                    <div id="logo">
                    <?php include("templates/logo.php"); ?>    
                    </div>    
                    <div id="usuario">Hola, <?php echo $usr_nombre?> [<a href="salir.php">salir</a>]</div>                
                </div>
            </div>
        <div class="headericons"></div>

        <hr class="hidden" />
            <div id="wrapper1">
            <div id="wrapper2">
            <div class="outer">
            <div class="float-wrap">
            <div class="center">

            <div class="centerbox">
                <p class="pathway"><a href="index.php" title="Inicio">Inicio</a></p>
                <div id="content" class="inside">
                <?php
$conexion
=CONECTAR();
    
$resultado1="SELECT * FROM clientes WHERE apellido LIKE '%$apellido%' 
                                AND nombre LIKE '%$nombre%' 
                                AND dni LIKE '%$dni%'
                                AND correo LIKE '%$correo%' 
                                AND sexo LIKE '%$sexo%' 
                                AND nacdd LIKE '%$dia%' 
                                AND nacmm LIKE '%$mes%'
                                AND codtel LIKE '%$codtel%' 
                                AND codcel LIKE '%$codcel%'
                                AND cel LIKE '%$cel%'
                                AND tel LIKE '%$tel%'
                                AND provincia LIKE '%$provincia%'
                                AND localidad LIKE '%$localidad%'
                                AND barrio LIKE '%$barrio%'
                                AND calle LIKE '%$calle%'
                                AND nro LIKE '%$nro%'
                                AND cp LIKE '%$cp%'
                                AND nacimiento BETWEEN '$nac1' AND '$nac2'
                                AND alta BETWEEN '$alta1' AND '$alta2'
                                AND ultima_modi BETWEEN '$mod1' AND '$mod2'
                                "



$resultado2 mysql_query($resultado1)or die("Error: ".mysql_error());
                            
    
$filas mysql_num_rows($resultado2);   
echo 
"
<br><br><p><font face='Arial'><b>Resultados de busqueda:</b><br></font></p>"

while (
$fila mysql_fetch_object($resultado2)){ 

$referencia=$fila->id_cliente;
$andy_link "cliente.php?id=".$referencia;
echo 
"<p align=\"left\" style=\"margin-top: 0; margin-bottom: 0\"><b><a href='$andy_link'><font face=\"Arial\" color=\"#000000\" size=\"2\">".$fila->apellido.",&nbsp;".$fila->nombre."</b></font></a></p><br>";
echo 
"</p>";
echo 
"<hr color=\"#D3D3D3\" size=\"1\">";


echo 
"

<font size='1' face='Arial'>"
.$filas" clientes encontrados</font>";?>
                </div>
            </div> 
            </div> 
        <hr class="hidden" />
            <div class="left">
                <div id="menu">
                    <?php include("templates/menu.php"); ?>
                </div>    

                <div class="sideinfo"></div>

            </div><br class="brclear" /> <!-- end .left -->
            </div><br class="brclear" /> <!-- end .float-wrap -->

            </div><!-- end .outer -->
            </div><!-- end #wrapper2 -->
            </div><!-- end #wrapper1 -->
        <hr class="hidden" />
            <div class="cierre">
                

                <div class="footer">
                    <div class="derechos">
                        <?php include("templates/copyright.php"); ?>    
                    </div>
                    <p class="validation">
                        <?php include("templates/validator.php"); ?>
                    </p>
                </div>
            </div>

        </div><!-- end #expander -->
    </div><!-- end #sizer -->
</body>
</html>
Alguien tiene alguna sugerencia de porque no funciona?

Gracias
  #2 (permalink)  
Antiguo 11/05/2010, 22:19
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Buscador, problemas en localhost

Primer problema:

Código PHP:
Ver original
  1. header('Content-type: text/html; charset=utf-8');

No puedes enviar salida al navegador (Encabezados, espacios, saltos de linea, caracteres, etiquetas html, etc.) antes de usar session_start();; seguramente hay algunos errores pero tal vez tengas desactivada la directiva para mostrarlos, te recomiendo entonces hacer esto:

Código PHP:
Ver original
  1. <?php
  2. ini_set ('error_reporting', E_ALL); // Mostrar todos los errores y avisos de PHP
  3. header('Content-type: text/html; charset=utf-8');
  4. ?>

Por otra parte, include_once() es util cuando por las condiciones de programacion exista la posibilidad de tratar de incluir dos o mas veces un mismo script, pero aumenta ligeramente el tiempo de procesamiento; si estas seguro de no tener otros includes al mismo archivo entonces solo usa include 'archivo.php'; de lo contrario, intenta optimizar tu programacion y usa include_once solo cuando sea estrictamente necesario.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 12/05/2010, 14:03
 
Fecha de Ingreso: febrero-2009
Ubicación: Cordoba - Argentina
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Buscador, problemas en localhost

Muchas Gracias Triby,

Segui tu consejo, y me aparecieron un par de errores, que ya solucione, sin embargo, sigue sin dar resultados el buscador.

Agrego el codigo como esta ahora.
Código PHP:
<?php 
ini_set 
('error_reporting'E_ALL);
session_start(); 
header('Content-type: text/html; charset=utf-8');
if(
$_SESSION['usr_nombre']=='')
    
header ("Location: index.php");
include_once(
"inc/inc.sistema.php");
include_once(
"inc/conexion.php");

$apellido= isset($_POST['apellido'])  ?  $_POST['apellido']   :  NULL;
$nombre= isset($_POST['nombre'])  ?  $_POST['nombre']   :  NULL;
$dni= isset($_POST['dni'])  ?  $_POST['dni']   :  NULL;
$sexo= isset($_POST['sexo'])  ?  $_POST['sexo']   :  NULL;
$dia= isset($_POST['dia'])  ?  $_POST['dia']   :  NULL;
$mes= isset($_POST['mes'])  ?  $_POST['mes']   :  NULL;
$correo= isset($_POST['correo'])  ?  $_POST['correo']   :  NULL;
$tel= isset($_POST['tel'])  ?  $_POST['tel']   :  NULL;
$codtel= isset($_POST['codtel'])  ?  $_POST['codtel']   :  NULL;
$cel= isset($_POST['cel'])  ?  $_POST['cel']   :  NULL;
$codcel= isset($_POST['codcel'])  ?  $_POST['codcel']   :  NULL;
$provincia= isset($_POST['provincia'])  ?  $_POST['provincia']   :  NULL;
$localidad= isset($_POST['localidad'])  ?  $_POST['localidad']   :  NULL;
$barrio= isset($_POST['barrio'])  ?  $_POST['barrio']   :  NULL;
$calle= isset($_POST['calle'])  ?  $_POST['calle']   :  NULL;
$nro= isset($_POST['nro'])  ?  $_POST['nro']   :  NULL;
$cp= isset($_POST['cp'])  ?  $_POST['cp']   :  NULL;
$nacdia= isset($_POST['nacdia'])  ?  $_POST['nacdia']   :  NULL;
$nacmes= isset($_POST['nacmes'])  ?  $_POST['nacmes']   :  NULL;
$nacano= isset($_POST['nacano'])  ?  $_POST['nacano']   :  NULL;
$nacdia2= isset($_POST['nacdia2'])  ?  $_POST['nacdia2']   :  NULL;
$nacmes2= isset($_POST['nacmes2'])  ?  $_POST['nacmes2']   :  NULL;
$nacano2= isset($_POST['nacano2'])  ?  $_POST['nacano2']   :  NULL;
$altadia= isset($_POST['altadia'])  ?  $_POST['altadia']   :  NULL;
$altames= isset($_POST['altames'])  ?  $_POST['altames']   :  NULL;
$altaano= isset($_POST['altaano'])  ?  $_POST['altaano']   :  NULL;
$altadia2= isset($_POST['altadia2'])  ?  $_POST['altadia2']   :  NULL;
$altames2= isset($_POST['altames2'])  ?  $_POST['altames2']   :  NULL;
$altaano2= isset($_POST['altaano2'])  ?  $_POST['altaano2']   :  NULL;
$moddia= isset($_POST['moddia'])  ?  $_POST['moddia']   :  NULL;
$modmes= isset($_POST['modmes'])  ?  $_POST['modmes']   :  NULL;
$modano= isset($_POST['modano'])  ?  $_POST['modano']   :  NULL;
$moddia2= isset($_POST['moddia2'])  ?  $_POST['moddia2']   :  NULL;
$modmes2= isset($_POST['modmes2'])  ?  $_POST['modmes2']   :  NULL;
$modano2= isset($_POST['modano2'])  ?  $_POST['modano2']   :  NULL;

if (
$nacdia ==""){
$nac1"0001-01-01";
$nac2"9999-01-01";
}
elseif (
$nacdia !=""){
$nac1$nacano."-".$nacmes."-".$nacdia;
$nac2$nacano2."-".$nacmes2."-".$nacdia2;

}

if (
$altadia ==""){
$alta1"0001-01-01";
$alta2"9999-01-01";
}
elseif (
$altadia !=""){
$alta1$altaano."-".$altames."-".$altadia;
$alta2$altaano2."-".$altames2."-".$altadia2;

}

if (
$moddia ==""){
$mod1"0001-01-01";
$mod2"9999-01-01";
}
elseif (
$moddia !=""){
$mod1$modano."-".$modmes."-".$moddia;
$mod2$modano2."-".$modmes2."-".$moddia2;

}
     
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
<title><?php echo TITULO?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/estilo.css" />
</head>
<body>
    <div id="sizer">
        <div id="expander">
        <div class="headericons"></div>
            <div class="header">

                <div id="headerlogo">
                    <div id="logo">
                    <?php include("templates/logo.php"); ?>    
                    </div>    
                    <div id="usuario">Hola, <?php echo $usr_nombre?> [<a href="salir.php">salir</a>]</div>                
                </div>
            </div>
        <div class="headericons"></div>

        <hr class="hidden" />
            <div id="wrapper1">
            <div id="wrapper2">
            <div class="outer">
            <div class="float-wrap">
            <div class="center">

            <div class="centerbox">
                <p class="pathway"><a href="index.php" title="Inicio">Inicio</a></p>
                <div id="content" class="inside">
                <?php
$conexion
=CONECTAR();
    
$resultado1="SELECT * FROM clientes WHERE apellido LIKE '%$apellido%' 
                                AND nombre LIKE '%$nombre%' 
                                AND dni LIKE '%$dni%'
                                AND correo LIKE '%$correo%' 
                                AND sexo LIKE '%$sexo%' 
                                AND nacdd LIKE '%$dia%' 
                                AND nacmm LIKE '%$mes%'
                                AND codtel LIKE '%$codtel%' 
                                AND codcel LIKE '%$codcel%'
                                AND cel LIKE '%$cel%'
                                AND tel LIKE '%$tel%'
                                AND provincia LIKE '%$provincia%'
                                AND localidad LIKE '%$localidad%'
                                AND barrio LIKE '%$barrio%'
                                AND calle LIKE '%$calle%'
                                AND nro LIKE '%$nro%'
                                AND cp LIKE '%$cp%'
                                AND nacimiento BETWEEN '$nac1' AND '$nac2'
                                AND alta BETWEEN '$alta1' AND '$alta2'
                                AND ultima_modi BETWEEN '$mod1' AND '$mod2'
                                "



$resultado2 mysql_query($resultado1)or die("Error: ".mysql_error());
                            
    
$filas mysql_num_rows($resultado2);   
echo 
"
<br><br><p><font face='Arial'><b>Resultados de busqueda:</b><br></font></p>"

while (
$fila mysql_fetch_object($resultado2)){ 

$referencia=$fila->id_cliente;
$andy_link "cliente.php?id=".$referencia;
echo 
"<p align=\"left\" style=\"margin-top: 0; margin-bottom: 0\"><b><a href='$andy_link'><font face=\"Arial\" color=\"#000000\" size=\"2\">".$fila->apellido.",&nbsp;".$fila->nombre."</b></font></a></p><br>";
echo 
"</p>";
echo 
"<hr color=\"#D3D3D3\" size=\"1\">";


echo 
"

<font size='1' face='Arial'>"
.$filas" clientes encontrados</font>";?>
                </div>
            </div> 
            </div> 
        <hr class="hidden" />
            <div class="left">
                <div id="menu">
                    <?php include("templates/menu.php"); ?>
                </div>    

                <div class="sideinfo"></div>

            </div><br class="brclear" /> <!-- end .left -->
            </div><br class="brclear" /> <!-- end .float-wrap -->

            </div><!-- end .outer -->
            </div><!-- end #wrapper2 -->
            </div><!-- end #wrapper1 -->
        <hr class="hidden" />
            <div class="cierre">
                

                <div class="footer">
                    <div class="derechos">
                        <?php include("templates/copyright.php"); ?>    
                    </div>
                    <p class="validation">
                        <?php include("templates/validator.php"); ?>
                    </p>
                </div>
            </div>

        </div><!-- end #expander -->
    </div><!-- end #sizer -->
</body>
</html>

Saludos y muchas gracias
  #4 (permalink)  
Antiguo 12/05/2010, 18:15
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Buscador, problemas en localhost

Necesitas armar la consulta de acuerdo a los campos que se llenaron:

Código PHP:
Ver original
  1. $consulta = 'SELECT * FROM tabla WHERE ';
  2.  
  3. $consulta .= ($nombre == NULL || strlen($nombre) < 3) ? '' : " nombre = '" . mysql_real_escape_string($nombre) . "' AND ";

- Si un campo esta vacio o tiene menos de 3 caracteres de longitud no debes incluirlo en la consulta.
- Siempre que haya algun campo proveniente de entrada de usuario debes escaparlo con mysql_real_escape_string() para minimizar riesgos de seguridad.

Tambien se te va a presentar un problema de logica en cuanto al uso de " AND " para incluir otros campos, veamos como lo resuelves.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: localhost, buscadores
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 18:59.