Foros del Web » Programando para Internet » PHP »

¿A que se debe este error?

Estas en el tema de ¿A que se debe este error? en el foro de PHP en Foros del Web. Desde que cambie de localhost a hostgator me sale esto: Cita: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/#/public_html/login.php on ...
  #1 (permalink)  
Antiguo 09/01/2012, 17:14
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años, 7 meses
Puntos: 25
¿A que se debe este error?

Desde que cambie de localhost a hostgator me sale esto:

Cita:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/#/public_html/login.php on line 59

Warning: Cannot modify header information - headers already sent by (output started at /home/#/public_html/login.php:59) in /home/#/public_html/login.php on line 136
Es raro, porque mi código funcionaba bien en localhots (xammp).

¿A que se puede deber?
Adjunto el código completo por si es de ayuda.
Lo curioso es que el error se repite en varios de mis php.
Gracias desde ya! =)


Código PHP:

<?php

session_start
();

if (
basename($_SERVER["REQUEST_URI"]) != str_replace(".php"""basename($_SERVER["REQUEST_URI"]))){
header("Location: ".str_replace(".php"""basename($_SERVER["REQUEST_URI"])));
}

error_reporting(E_ALL E_NOTICE E_DEPRECATED);

///////  Conectar DB
include 'functions/conect.php';
///////

///////  Obtener Dir
$str $_SERVER['HTTP_REFERER'];
$arr split("/",$str);
$num count($arr);
/////// 

///////  Contar @
function cntarroba($acontar){
return 
count(explode("@",$acontar)) -1
}

///////

/////// Validar Formulario > Obtener IP Visitante
include 'functions/getip.php';
$frm["ip"] = getRealIP();
///////

if ( ! empty($_POST)){

        
/////// Logeo > ¿Enviado?
        
if( !empty($_POST["Usuario"]) && !empty($_POST["Password"]) ){
        
            
/////// Logeo > ¿Enviado? > Limpiar
            
function tags($tags){  
                
$tags strip_tags($tags);  
                
$tags stripslashes($tags);  
                
$tags htmlentities($tags);  
                return 
trim($tags);  
            } 
            
///////
            
            /////// Logeo > ¿Enviado? > Generar Array
            
$lgn= array(
            
"usuario" => tags($_POST["Usuario"]), 
            
"password" => tags($_POST["Password"])
            );
            
///////
        
            /////// Logeo > ¿Enviado? > Contar Cuentas
            
if ( cntarroba($lgn["usuario"]) > ){
                
$cntaver mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM Usuarios WHERE Correo = '".$lgn["usuario"]."' AND Password = '".$lgn["password"]."'"));
                
$correo true;
            }else{
                
$cntaver mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM Usuarios WHERE Apodo = '".$lgn["usuario"]."' AND Password = '".$lgn["password"]."'"));
            }
            
///////
            
            /////// Logeo > ¿Enviado? > ¿Existe Cuenta?
            
if ($cntaver[0] >= 1){
                
                
                
/////// Logeo > ¿Enviado? > ¿Existe Cuenta? > Obtener Apodo
                
if ($correo){
                    
$apodoarray mysql_fetch_array(mysql_query("SELECT Apodo FROM Usuarios WHERE Correo = '".$lgn["usuario"]."' AND Password = '".$lgn["password"]."'"));
                }else{
                    
$apodoarray mysql_fetch_array(mysql_query("SELECT Apodo FROM Usuarios WHERE Apodo = '".$lgn["usuario"]."' AND Password = '".$lgn["password"]."'"));
                }
                
$_SESSION["account"] = $apodoarray["Apodo"];
                
///////
                
                /////// Logeo > ¿Enviado? > ¿Existe Cuenta? > Verificar Estado y Redireccionar
                
$estado mysql_fetch_array(mysql_query("SELECT EstadodeCuenta FROM Usuarios WHERE Apodo = '".$_SESSION["account"]."'"));
                
$imgperf mysql_fetch_array(mysql_query("SELECT ImgPerfilUID FROM Usuarios WHERE Apodo = '".$_SESSION["account"]."'"));
                
                if( 
$estado["EstadodeCuenta"] == ){
                    
// Cuenta cerrada
                    
header("Location: ".$arr[$num-1]."?err=cuentacerrada");
                }elseif( 
$estado["EstadodeCuenta"] == ){
                
                    
header("Location: validarc");
                    
                }elseif( 
$estado["EstadodeCuenta"] == ){
                
                    
$cntimgperfil mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM ImgPerfilCargados WHERE Apodo = '".$_SESSION["account"]."' AND EstadoPic = '1'"));
                    if(
$imgperf["ImgPerfilUID"] != ""){
                    
                    
$correoaguardar mysql_fetch_array(mysql_query("SELECT Correo FROM Usuarios WHERE Apodo = '".$_SESSION["account"]."'"));
                    
                    
// Guardar dátos del logeo
                    
mysql_query("INSERT INTO Logeos (Apodo, Correo, IP, Dia, Mes, Yea) VALUES (
                    
                    '"
.$_SESSION["account"]."', 
                    '"
.$correoaguardar["Correo"]."', 
                    '"
.$frm["ip"]."', 
                    '"
.date("d")."',
                    '"
.date("m")."',
                    '"
.date("Y")."'
                    
                    )"
);
                    
//
                    
                                    ///////////////////////////////////////////////////
                                                
$_SESSION["login"] = true;
                                                
$_SESSION["pannel"] = false;
                                                
header("Location: home");
                                    
///////////////////////////////////////////////////
                                                
                    
}else{
                        
// Chekear si es la primera ves que carga una imagen perfíl o está vencida
                        
if ($cntimgperfil[0] == 0){
                            
// Primera ves
                            
$_SESSION["pannel"] = true;
                            
header("Location: perfilimg");
                            
//
                        
}else{
                            
// Está vencida
                            
header("Location: perfilimg?err=vencido");
                            
//
                        
}
                        
//
                    
}
                    
                }else{
                    
// Tipo de cuenta desconocido
                    
header("Location: ".$arr[$num-1]."?err=tipocuentadesconocido");
                }
                
///////
                
            
}else{
                
// Cuenta no existe
                
header("Location: ".$arr[$num-1]."?err=cuentainexistente");
            }
            
///////
        
        
            
        
}else{
        
            
/////// Logeo > ¿Enviado? > Volver a Web con Color por GET    
            
if( !empty($_POST["Usuario"]) ){
            
                
$_SESSION["dtloginfalt"]["usuario"] = '#d8ffda';
                
$_SESSION["dtloginfalt"]["password"] = '#ffd8d8';
                
$_SESSION["lgnrevw"]["usuario"] = $_POST["Usuario"];
                
header("Location: ".$arr[$num-1]);
                
            }elseif( !empty(
$_POST["Password"]) ){
            
                
$_SESSION["dtloginfalt"]["usuario"] = '#ffd8d8';
                
$_SESSION["dtloginfalt"]["password"] = '#d8ffda';
                
header("Location: ".$arr[$num-1]);
                
            }else{
            
                
$_SESSION["dtloginfalt"]["usuario"] = '#ffd8d8';
                
$_SESSION["dtloginfalt"]["password"] = '#ffd8d8';
                
header("Location: ".$arr[$num-1]);
            
            }
            
///////
            
        
}
        
///////

}else{
    
header("Location: register");
}

?>
  #2 (permalink)  
Antiguo 09/01/2012, 17:34
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: ¿A que se debe este error?

a que tienes un error en tu consulta mysql lo mas seguro por error de dedo :), eso genera una salida por lo que el header() da el error de salida ya que cuando se envia una cabecera no debe de haber salidas (entiendase html, echo, o cualquier mensaje al navegador) porque da el segundo warnning, prueba depurando la misma
Código PHP:
Ver original
  1. mysql_query("consulta") or die(mysql_error());
de manera que veas cuel es el error y cuando resuelvas este seguro se te resuelven ambos, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 09/01/2012, 17:49
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: ¿A que se debe este error?

Seguramente es lo de la consulta, pero vale una aclaración

si en tu script usas esto

Código PHP:
<?php
header
(....)
Correcto

Pero si usas
Código PHP:

<?php
header
(....)
es decir una linea o espacio en blanco antes de la apertura del php, tambíen se considera una salida html, por lo que te va a generar error de todas manera, aunque corrijas los erores de código

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 09/01/2012, 18:03
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años, 7 meses
Puntos: 25
Respuesta: ¿A que se debe este error?

Chekearé ambos y les cuento :) Mil gracias!
  #5 (permalink)  
Antiguo 14/01/2012, 07:39
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años, 7 meses
Puntos: 25
Respuesta: ¿A que se debe este error?

Probé con el die y me sale esto:

Cita:
Table 'usuario_nombredelaweb.Usuarios' doesn't exist

Cabe destacar que el connect funciona perfectamente, osea conecta con mysql.
Pero lo que no entiendo es porque no toma las tablas, quizás esté mal postulado el connect:

Cita:

<?php

function Conectarse(){
global $link;
if (!($link=mysql_connect("localhost","usuario","pass word")))
{exit();}if (!mysql_select_db("usuario_nombredelaweb",$link)){ exit();}return $link;}
Conectarse();

/////// Definir zona horaria //////// (conect.php & config.php)
date_default_timezone_set('America/Argentina/Buenos_Aires');
/////////////////////////////////////

?>
Quizas esté mal postulado el qry y por eso no detecta la tabla?
Discrimina mayuscula y minuscula?

Gracias desde ya!
  #6 (permalink)  
Antiguo 14/01/2012, 07:44
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años, 7 meses
Puntos: 25
Respuesta: ¿A que se debe este error?

  #7 (permalink)  
Antiguo 14/01/2012, 09:08
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: ¿A que se debe este error?

Cita:
Iniciado por dezagus Ver Mensaje
Probé con el die y me sale esto:

Cita:
Table 'usuario_nombredelaweb.Usuarios' doesn't exist
....

Quizas esté mal postulado el qry y por eso no detecta la tabla?
Discrimina mayuscula y minuscula?

Gracias desde ya!
probaste si discrimina?? verificaste que el nombre de la tabla sea totalmente igual en tu consulta??

vamos hay cosas que salen solas por análisis y pruebas, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 14/01/2012, 09:18
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años, 7 meses
Puntos: 25
Respuesta: ¿A que se debe este error?

Apenas dejé el mensaje, probé cambiando la mayuscula al comienzo del nombre de la tabla por la minuscula y me sale el error nuevamente pero no ejecuta el die. Cabe destacar que estoy usando Hostgator!
  #9 (permalink)  
Antiguo 14/01/2012, 12:29
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: ¿A que se debe este error?

imprime tu consulta y ejecútala en el phpmyadmin y ve que error te dice, ya que si indicas que no muestra el die puede que no haya errores en la consulta y tienes otro error, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #10 (permalink)  
Antiguo 14/01/2012, 12:45
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años, 7 meses
Puntos: 25
Respuesta: ¿A que se debe este error?

Solucionado.

Eran las mayusculas, tuve que cambiar todas las mayusculas de las consultas y se fue el error.

El dáto curioso es que si hay AUNQUE SEA UNA SOLA MAYUSCULA, muestra el error en la misma consulta siempre, sin importar si la mayuscula está en esa consulta sql o en otra.

Gracias desde ya man! Finger up!
  #11 (permalink)  
Antiguo 14/01/2012, 15:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: ¿A que se debe este error?

Ten en cuenta siempre que si el host está soportado en Linux, este sistema operativo es sensible a MAYUSCULAS/minusculas, por lo que un archivo llamado TEXTO.txt y otro TEXTo.txt, para Linux son archivos diferentes.
Y como el sevidor web y el DBMS están trabajando sobre ese S.O., heredan sus características (además, las tablas de la base también forman archivos), por lo que también distinguen entre M/m.
Incluso, cuando el DBMS está funcionando sobre Linux, ciertas funciones propias del SQL no pueden ser escritas en mayúsculas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: formulario, html, mysql, sql, usuarios
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:23.