Foros del Web » Programando para Internet » PHP »

Problema con php y mysql

Estas en el tema de Problema con php y mysql en el foro de PHP en Foros del Web. Tengo un problema con una pagina que tiene una conexion a la base de datos por medio de una ip. El sitio no me funciona ...
  #1 (permalink)  
Antiguo 03/08/2008, 14:57
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
Problema con php y mysql

Tengo un problema con una pagina que tiene una conexion a la base de datos por medio de una ip. El sitio no me funciona en el servidor de "elserver.com", y en varios servidores que probe el sitio funciona sin problemas.

el error que me arroja es:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


Generalmente arroja el error cuando se le hace varias consultas seguidas al servidor.
Por donde empiezo a buscar el error? es mio? o del hosting?
hay alguna manera de automatizar una conexion mysql con php. Nose realmente cual puede ser el error, la gente del servidor tampoco esta segura de cual seria el problema.

Tengo este codigo para conectarme a la base de datos:

Código PHP:
if(!isset($connection)) {

    function 
Conectar() {
    global 
$HOST$USER$PASS;
        return @
mysql_connect($HOST$USER$PASS);
    }

    function 
closedb() {
        global 
$connection;
        
mysql_close($connection);
    }
    

    function 
query($sql) {
        global 
$connection,$DB;
        return 
mysql_db_query($DB,$sql,$connection);
    }

    function 
prepareStr($str) {
        return 
"'".str_replace("'""'"$str)."'";    
    }
    
    function 
fetch($res) {
         return 
mysql_fetch_row($res);
    }

    function 
rowcount($res) {
        return 
mysql_num_rows($res); 
    }

    function 
freeresult($res){
        
mysql_free_result($res);
    }

    
$connection Conectar();
}

function 
addOffset($limit$offset){
        return 
$offset+=$limit;
}
    
    function 
cleOffset($limit$offset){
         
$offset-=$limit;
         if(
$offset<0)
             return 
0;
         else
            return 
$offset;

Han tenido este tipo de problema?
gracias
__________________
Saludos :adios: :adios: :adios:
  #2 (permalink)  
Antiguo 03/08/2008, 15:59
 
Fecha de Ingreso: julio-2008
Ubicación: Hermosillo, Sonora
Mensajes: 95
Antigüedad: 15 años, 9 meses
Puntos: 3
Respuesta: Problema con php y mysql

Si el problema solo pasa en este servidor, seguramente es cuestion del hosting
quiza haces varias conexiones y solo te permite una...
  #3 (permalink)  
Antiguo 03/08/2008, 16:44
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: Problema con php y mysql

Cita:
Iniciado por jvillamil Ver Mensaje
Si el problema solo pasa en este servidor, seguramente es cuestion del hosting
quiza haces varias conexiones y solo te permite una...
Gracias por la respuesta!
se puede ver esto en el phpinfo ?
lo dejo para que puedan revisarlo a ver si ven algo raro

http://www.fepat.org.ar/offline/phpinfo.php
__________________
Saludos :adios: :adios: :adios:
  #4 (permalink)  
Antiguo 04/08/2008, 10:45
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: Problema con php y mysql

Agrego mas informacion sobre este caso:

El codigo en donde parece ser que arroja el error de "internal server error", es en una convinacion de javascript y php. Para ser mas especifico, copio los 2 script que al quitarlos, parece que funciona bien la pagina:

Código HTML:
<SCRIPT type="text/javascript">
var swidth=165;
var sheight=110;
var sbcolor="#ccffcc";

//scroller's speed: change to your own;
var sspeed=2;
var restart=sspeed;
rspeed=sspeed;

//text: change to your own
wholemessage='';
wholemessage+='<div align="center" class=tabb>';
<?
#SELECT NOTICIAS TAPA
$res=query("
SELECT DISTINCT(n.news_id), nd.news_title 
 
FROM news n   
INNER JOIN news_type nt ON n.news_id=nt.news_id AND nt.news_type_id='2'  
LEFT JOIN news_description nd ON n.news_id=nd.news_id AND nd.languages_id='1' 

WHERE 
n.status_id='1'   

GROUP BY n.news_id 
ORDER BY n.date_added DESC
"); 

while(list($news_left_id, $news_title, )=fetch($res)){
  echo "wholemessage+='<a class=tabb href=\"".URL_BASE."nota.php?news_id=".$news_left_id."\">$news_title</a><br><br>';";
}
?>
wholemessage+='</div>';

function goup(){
  if(sspeed!=rspeed*8){
     sspeed=sspeed*2;restart=sspeed;
  }
}
function godown(){
  if(sspeed>rspeed){
     sspeed=sspeed/2;restart=sspeed;
  }
}
function start_scroller(){
  if(document.getElementById)
     ns6marquee(document.getElementById('slider'));
  else if(document.all)
     iemarquee(slider);
  else if(document.layers)
     ns4marquee(document.slider1.document.slider2);
}
function iemarquee(whichdiv){
  iediv=eval(whichdiv);
  iediv.style.pixelTop=sheight+"px";
  iediv.innerHTML=wholemessage;
  sizeup=iediv.offsetHeight;
  ieslide();
}
function ieslide(){
  if(iediv.style.pixelTop>=sizeup*(-1)){
     iediv.style.pixelTop-=sspeed+"px";
	 setTimeout("ieslide()",100);
  }else{
     iediv.style.pixelTop=sheight+"px";
	 ieslide();
  }
}
function ns4marquee(whichlayer){
  ns4layer=eval(whichlayer);
  ns4layer.top=sheight;
  ns4layer.document.write(wholemessage);
  ns4layer.document.close();
  sizeup=ns4layer.document.height;
  ns4slide();
}
function ns4slide(){
  if(ns4layer.top>=sizeup*(-1)){
     ns4layer.top-=sspeed;
	 setTimeout("ns4slide()",100);
  }else{
     ns4layer.top=sheight;ns4slide();
  }
}
function ns6marquee(whichdiv){
  ns6div=eval(whichdiv);
  ns6div.style.top=sheight+"px";
  ns6div.innerHTML=wholemessage;
  sizeup=ns6div.offsetHeight;ns6slide();
}
function ns6slide(){
  if(parseInt(ns6div.style.top)>=sizeup*(-1)){
     ns6div.style.top=parseInt(ns6div.style.top)-sspeed+"px";
	 setTimeout("ns6slide()",100);
  }else{
     ns6div.style.top=sheight+"px";
	 ns6slide();
  }
}
</script> 

Código HTML:
<SCRIPT type="text/javascript">
var banners = new Array();

<?
#SELECT BANNER SPONSORS
$i=0;
$res=query("
SELECT DISTINCT(b.banner_id), b.image1_1 
 
FROM banner b    
WHERE 
b.status_id='1' 
AND b.banner_type_id='4' 

ORDER BY b.date_added DESC
"); 

while(list($banner_id, $image1_1)=fetch($res)){
  $banner_type=getimagesize(IMG_BANNER.$image1_1);
  if(($banner_type[2]!=4)){
    $banner_return=BannerLink($banner_id);
    echo "banners[$i]= new Array('".$banner_return[0]."','".$banner_return[1]."','".$banner_return[2]."');";
    $i++;
  }
}
?>

var tiempo = 3000; // cuenta en milisegundos por lo tanto cambia cada 3 segundos.
var numero_banner = 0; //almacenará el número del banner que se mostrará, este es su valor inicial.

function rotabanner(numero_banner){
 var anuncio = "";
 anuncio = "<a href='"+banners[numero_banner][0]+"' target='"+banners[numero_banner][1]+"'>";
 anuncio += "<img src='"+banners[numero_banner][2]+"' border='0'></a>";
 document.getElementById('lugar_anuncio').innerHTML = anuncio;
}

function cambia_numero_banner(){
 numero_banner++;
 if (numero_banner >= banners.length) numero_banner= 0;
 rotabanner(numero_banner);
 setTimeout("cambia_numero_banner()", tiempo);
}
</script> 
Los 2 scripts son incluidos al index en forma de:
Código PHP:
<? require('include/scrip_correspondiente.php');?>
los inluyo de esta manera para poder escribir en el javascript por medio de php y una consulta mysql.


Las consultas funcionan bien, las eh probado fuera del javascript y en el phpMyAdmin.

Como explique en los primeros mensajes. El sitio me funciona bien en un servidor y en el de "elserver.com" no funciona. La diferencia que encontre en el phpinfo de cada uno, luego de haber investigado en casos en los que el gran Cluster explico, es que en el servidor donde funciona bien el "server API" esta configurado como Apache Handler y en el que no funciona "elserver.com" esta el "server API" configurado como "CGI".

Que diferencias hay entre uno y el otro? el CGI es mas lento? y por eso me arroja ese error ? Hago esta ultima pregunta porque en horas de la madrugada donde hay menos trafico, la pagina funciona lenta pero funciona. Luego cuando el servidor parece que empieza a tener mas trafico aparece el error en cuestion.

Otra pregunta seria, si hay problema en la convinacion que hago entre javascript y php, creo que no es un problema, lo eh usado en otros sitios. Pero puede ser conflictivo esto tambien?

Estoy desorientado con este error. Espero que esto que agregue puede ayudarles a entender mas el problema y tirarme una ayudita.

Gracias
__________________
Saludos :adios: :adios: :adios:
  #5 (permalink)  
Antiguo 04/08/2008, 11:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con php y mysql

Hola granbosteron,

Revisa tus Server Logs, en ellos podrás ver el error y el porque te indica eso php.

Saludos.
  #6 (permalink)  
Antiguo 04/08/2008, 23:15
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: Problema con php y mysql

Bueno pude encontrar la solucion con ayuda del soporte tecnico del hosting. Cuando utilizaba la funcion getimagesize lo hacia mediante una url completa usando http a un archivo local. Esto lo cambie por $DOCUMENT_ROOT para llamar a la imagen localmente y por lo tanto trabaja mas rapido la consulta.

Ahora igualmente vuelvo a decir que en un servidor funcionaba bien y en el otro no. Obviamente que para los 2 servidores la mejor opcion va a ser manejar el getimagesize localmente por un tema de velocidad.

Quizas esto ayude a alguien que tenga un problema parecido. Busquen funciones que quizas esten llamando a archivos que se encuentran localmente en el servidor y los estan llamando como si fueran externos.

Por lo menos en mi caso fue ese el error.
Saludos
__________________
Saludos :adios: :adios: :adios:
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:11.