Spanish [SOLUCIONADO]Erro: Internal Server Error ¿Hosting?

TheFalcon

Active Member
Licensed User
Longtime User
Buenas, mi aplicación funcionaba sin problemas y hacia la consulta MYSQL sin problemas, de la noche a la mañana ahora no me recoge datos y me sale el mensaje " Error: Internal Server Error" como la aplicación funcionaba sin problemas, doy por echo que no es problema de programación, así que mi duda es la siguiente:
¿Alguien le ha pasado y sabría decirme de que es? problema con servidor, cambios de políticas o similar?
 

TheFalcon

Active Member
Licensed User
Longtime User
Pensaras que soy algo inútil( lo cual doy fe de ello) como puedo probar, ya que mediante el hosting accedo sin problemas, pero externamente no se como probarlo. Algún enlace a algún sitio que explique como. Y gracias por tu tiempo
 

dar2o3

Active Member
Licensed User
Longtime User
Jajja, nadie nace sabiendo, un frontend es un programa para acceder y manipular (en este caso mysql) de forma gráfica, podrás crear, editar eliminar tablas, vistas etc...
En tu caso solo lo queremos de momento, para ver si puedes conectarte a la bd, te dejo un link donde tienes algunos gratuitos para que pruebes.
Prueba a conectarte con los datos de conexión que te darían para acceder a la bd, si puedes conectarte seguimos hablando, si no puedes el problema radica en el hosting, en el segundo caso seguramente cuando hables con ellos te dirán que todo está correcto (siempre lo hacen) tu insiste que les suele costar mover el culo.
 

TheFalcon

Active Member
Licensed User
Longtime User
He probado creando 2 archivos php distintos de conexion para probar y no me hacen nada, incluso he creado un usuario nuevo para la base de datos y nada.


B4X:
<?php
    function Conectarse()
    {
    $host='localhost:3306';
    $usuariodb='miusuario';
    $passwdb='qaz123';
    $nombredb='misitio_bdatos';

    if (!($link=mysql_connect($host,$usuariodb,$passwdb)))
    {
    echo "Error conectando a la base de datos.";
    exit();
    }
    if (!mysql_select_db($nombredb,$link))
    {
    echo "Error seleccionando la base de datos, verifique que el nombre de usuario utilizado este asociado a la base de datos.";
    exit();
    }
    return $link;
    }

    $link=Conectarse();
    echo "Conexión con la base de datos conseguida.
    ";
    mysql_close($link); //cierra la conexion
    ?>
    
    -----------------------------------------------------------
    
    Y esta otra
    
    -----------------------------------------------
    
    <?php
   class conexion {
      private $host = "nombre HOST";
      private $user = "usuario";
      private $pass = "password";
      private $database = "nombre de la base de datos";

      //database handler
      private $dbh;
      //statement
      private $stmt;
      //errores
      private $error;

      public static function conectar() {
         //configurar la conexión
         $dsn = "mysql:host=".$this->host.";dbname=".$this->database;
         //opciones que se agregaran a la conexion mysql
         //PDO::ATTR_PERSISTENT - la conexion con pdo será persistente, optimizara los recursos del servidor

         $options = array(
            PDO::ATTR_PERSISTENT => true,
            PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION
         );

         //creamos una instancia de PDO
         //lo insertamos en una excepcion
         try{

            $this->dbh = new PDO($dsn,$this->user,$this->pass,$options);
            //con la siguiente instrucción controlamos el return de caracteres extraños que no puede interpretar la db
            $this->dbh->exec('set names '.UTF8);
            echo "Conexion realizada con exito";
         }catch(PDOException $e){
             $this->error = $e->getMessage();
             echo "Excepcion: ".$this->error;
         }
      }
   }

?>
 

TheFalcon

Active Member
Licensed User
Longtime User
Jajja, nadie nace sabiendo, un frontend es un programa para acceder y manipular (en este caso mysql) de forma gráfica, podrás crear, editar eliminar tablas, vistas etc...
En tu caso solo lo queremos de momento, para ver si puedes conectarte a la bd, te dejo un link donde tienes algunos gratuitos para que pruebes.
Prueba a conectarte con los datos de conexión que te darían para acceder a la bd, si puedes conectarte seguimos hablando, si no puedes el problema radica en el hosting, en el segundo caso seguramente cuando hables con ellos te dirán que todo está correcto (siempre lo hacen) tu insiste que les suele costar mover el culo.
pruebo y te digo no pensé que me respondieras tan rápido y no refresque la pagina estaba probando jaja.
 

TheFalcon

Active Member
Licensed User
Longtime User
Bueno he probado con 2 Programas Heidi , y dbear , me dan error de comunicación, así que mande las capturas al hosting a ver que me dicen, en cuanto me respondan lo digo por si a alguien mas le pasa lo mismo.
 

josejad

Expert
Licensed User
Longtime User
Nos das pocos datos The Falcon, ¿cómo se conecta tu app a tu base de datos? ¿jRDC2, Api php, ...? Cómo accedes con el hosting? A traves de un panel de control? (Plesk o cpanel)... danos algo más de informacion, pon algo de tu código,...

saludos,
 

TheFalcon

Active Member
Licensed User
Longtime User
Nos das pocos datos The Falcon, ¿cómo se conecta tu app a tu base de datos? ¿jRDC2, Api php, ...? Cómo accedes con el hosting? A traves de un panel de control? (Plesk o cpanel)... danos algo más de informacion, pon algo de tu código,...

saludos,

Perdona, uso JSON y OKHTTPUTILS2 .
manualmente desde el Panel MYSQL del hosting no tengo problemas para acceder a la base de datos , pero desde el programa a dejado de acceder sin haber modificado nada como comente mas arriba.
Creo que los tiros van por el servidor ya que tengo una web que también accede a consultas SQL desde un query y tampoco me devuelve nada.

Estoy 100% seguro que no es la APK ya que no se ha modificado nada, pero haber que me dicen del hosting, por si a alguien mas le ocurre.Un saludo

B4X:
            'CONSULTAS MYSQL
                '********************************************************
Sub ExecuteRemoteQuery(Query As String, JobName As String)
    Dim job As HttpJob
    job.Initialize(JobName, Me)
job.PostString("MISITIOWEB/query.php", Query)
    
End Sub
 

dar2o3

Active Member
Licensed User
Longtime User
Para cosas profesionales te recomiendo que uses un vps, tendrás el control de todo y no dependerás de nadie, con el trabajo que ello implica claro y gastándote poquito dinero si tienes ip fija en casa y un ancho de banda decente y los usuarios de la app no son muchos te puedes apañar con una raspberry, yo tengo un par de ellas puestas en casa (raspberry pi 4gb de ram) para pruebas y van mas rápido que algún vps que tengo.
 

josejad

Expert
Licensed User
Longtime User
Si haces la llamada de tu okhttp directamente desde tu navegador del pc a tu pagina, que te devuelve? Supongo que el mismo error de internal server error.

Prueba a subir a tu host un php con por ejemplo el codigo 1 de ejemplo modificando tus datos a ver que te lanza

 

josejad

Expert
Licensed User
Longtime User
$host='localhost:3306';
Perdona, he visto ahora que ya habías hecho lo que te comentaba en el post de arriba. ¿Has probado a quitar el puerto la línea de arriba?
Probablemente tu host ha actualizado algo (la versión de PHP, de mysql o algo), así que a ver qué te dicen.

Por probar:

 

TheFalcon

Active Member
Licensed User
Longtime User
Perdona, he visto ahora que ya habías hecho lo que te comentaba en el post de arriba. ¿Has probado a quitar el puerto la línea de arriba?
Probablemente tu host ha actualizado algo (la versión de PHP, de mysql o algo), así que a ver qué te dicen.

Por probar:


Ahora que lo dices, hace poco actualizo la version PHP del hosting , puede ser eso? que las consultas funcionaran con php5 o así, y con la versión alcutal(php 7 creo que es) no funcionen?.
Aunque si fuera el caso, explicaría por que no accede la aplicación a la base de datos,
pero es que tampoco puedo acceder desde programas Mysql como HeidiSql etc,
 

josejad

Expert
Licensed User
Longtime User
Claro, mira:


mysql_connect
(PHP 4, PHP 5)
mysql_connect — Abre una conexión al servidor MySQL
Advertencia
Esta extensión fue declarada obsoleta en PHP 5.5.0 y eliminada en PHP 7.0.0. En su lugar debería utilzarse las extensiones MySQLi o PDO_MySQL. Véase también la guía MySQL: elegir una API y sus P+F relacionadas para más información. Alternatives to this function include:


 

TheFalcon

Active Member
Licensed User
Longtime User
Claro, mira:


mysql_connect
(PHP 4, PHP 5)
mysql_connect — Abre una conexión al servidor MySQL
Advertencia
Esta extensión fue declarada obsoleta en PHP 5.5.0 y eliminada en PHP 7.0.0. En su lugar debería utilzarse las extensiones MySQLi o PDO_MySQL. Véase también la guía MySQL: elegir una API y sus P+F relacionadas para más información. Alternatives to this function include:


lo miro y pruebo ahora mismo, que esto de estar confinado deja mucho tiempo libre :p
 

TheFalcon

Active Member
Licensed User
Longtime User
Bueno ya avanzo algo, ahora haciendo una consulta de conexion con MYSQLi en vez de con MYSQL me tira el error:
Error: No se pudo conectar a MySQL. errno de depuraci�n: 1045 error de depuraci�n: Access denied for user 'u5701564_***'@'10.6.64.**' (using password: YES)

Le he puesto un ticket al hosting a ver que me dicen , supongo que es problema ahora de ellos al actualizar php que bloquearan algo.



Shared hosting PHP 7.2 (7.2.10) esa versión tengo, cuando hice la apk tenia la 5 o así​
 

josejad

Expert
Licensed User
Longtime User
Usa el primer ejemplo de este enlace:


B4X:
<?php
$enlace = mysqli_connect("127.0.0.1", "mi_usuario", "mi_contraseña", "mi_bd");

if (!$enlace) {
    echo "Error: No se pudo conectar a MySQL." . PHP_EOL;
    echo "errno de depuración: " . mysqli_connect_errno() . PHP_EOL;
    echo "error de depuración: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

echo "Éxito: Se realizó una conexión apropiada a MySQL! La base de datos mi_bd es genial." . PHP_EOL;
echo "Información del host: " . mysqli_get_host_info($enlace) . PHP_EOL;

mysqli_close($enlace);
?>
 

TheFalcon

Active Member
Licensed User
Longtime User
ese es que he usado, y me a soltado el error, los anteriores que usaba con Mysql no me mostraban nada, ese al menos si intento conectar pero dio error.
 

f0raster0

Well-Known Member
Licensed User
Longtime User
hola..

1)¿Puedes ver en tu hosting los logs?
Allí debería estar los errores que ocurren.

2) Crea un nuevo usuario con los privilegios y prueba el ejemplo de José #17, en los logs en el servidor va a estar el error si ocurre.
 

TheFalcon

Active Member
Licensed User
Longtime User
hola..

1)¿Puedes ver en tu hosting los logs?
Allí debería estar los errores que ocurren.

2) Crea un nuevo usuario con los privilegios y prueba el ejemplo de José #17, en los logs en el servidor va a estar el error si ocurre.
voy a mirar pues ni idea de donde estan, lo del usuario nuevo si lo hice cree un user y pass nuevo y con ninguno de los 2.
Pero voy a mirar los Logs
 
Top