lametro / programacion-4-2015

Programación 4
MIT License
1 stars 4 forks source link

Problemas en login #62

Closed rodriherreria closed 8 years ago

rodriherreria commented 8 years ago

Catriel, surgio un problema de la nada, no podemos entrar nos salta error en el login, hace 1 hora nos funcionaba bien y no tocamos nada del login y funciona todo los demas (crear usuario, ver anuncios, etc) Probamos lo que le paso a los otros chicos del codigo y no funciona tampoco. #52

asi es nuestro codigo


$app->post('/login', function () use ($app) {
    $input = $app->request->getBody();

    $email = $input['email'];
    if(empty($email)){
        $app->render(500,array(
            'error' => TRUE,
            'msg'   => 'Se requiere el Email',
        ));
    }
    $password = $input['password'];
    if(empty($password)){
        $app->render(500,array(
            'error' => TRUE,
            'msg'   => 'Se requiere la Contraseña',
        ));
    }
    $db = $app->db->getConnection();
    $user = $db->table('users')->select()->where('email', $email)->first();
    if(empty($user)){
        $app->render(500,array(
            'error' => TRUE,
            'msg'   => 'El usuario no existe',
        ));
    }
    if($user->password != $password){
        $app->render(500,array(
            'error' => TRUE,
            'msg'   => 'La password no coincide',
        ));
    }

    $token = simple_encrypt($user->id, $app->enc_key);

    $app->render(200,array('token' => $token));
});

image

este es el repo https://github.com/rodriherreria/api-geoalquiler

FrancoMeriles commented 8 years ago

nos olvidamos mencionar que, no tira ninguna respuesta en la consola. (Network-Response) esta todo en blanco y con el Postman, tambien nos tira Internal Server Error 500 sin ninguna respuesta

Le dejo un usuario y contraseña geoalquiler@gmail.com // 123

LuPicin commented 8 years ago

no somos las únicas !!!

El 11 de diciembre de 2015, 14:10, FrancoMeriles notifications@github.com escribió:

nos olvidamos mencionar que, no tira ninguna respuesta en la consola. (Network-Response) esta todo en blanco y con el Postman, tambien nos tira Internal Server Error 500..

Le dejo un usuario y contraseña geoalquiler@gmail.com // 123

— Reply to this email directly or view it on GitHub https://github.com/lametro/programacion-4-2015/issues/62#issuecomment-163993328 .

Picin, Luciana

catrielmuller commented 8 years ago

Duplicada. https://github.com/lametro/programacion-4-2015/issues/52

catrielmuller commented 8 years ago

https://github.com/rodriherreria/api-geoalquiler/blob/master/index.php#L75

rodriherreria commented 8 years ago

Probamos con las 2 formas que le dijo a los chicos

$user = $db->table('users')->select()->where('email', $email)->first();
    if(empty($user)){
        $app->render(500,array(
            'error' => TRUE,
            'msg'   => 'user not exist',
        ));
    }

    if($user['password'] != $password){
        $app->render(500,array(
            'error' => TRUE,
            'msg'   => 'password dont match',
        ));
    }

y

$user = (object) $db->table('users')->select()->where('email', $email)->first();
    if(empty($user)){
        $app->render(500,array(
            'error' => TRUE,
            'msg'   => 'user not exist',
        ));
    }

    if($user->password != $password){
        $app->render(500,array(
            'error' => TRUE,
            'msg'   => 'password dont match',
        ));
    }

y tampoco anda...

Lo probamos antes y lo acabo de volver a probar y nada sigue el mismo error

catrielmuller commented 8 years ago

El problema surge de un cambio de política de Heroku de implementar por defecto PHP7 el cual no es compatible con el código que estuvimos viendo.

remote:        - php (7.0.0)
remote:        - Apache (2.4.16)
remote:        - Nginx (1.8.0)

Por lo que es necesario especificar la versión de PHP que necesitamos usar. Para hacerlo modificamos el archivo composer.json como lo hice aquí:

https://github.com/catrielmuller/api-glucontrol/blob/master/composer.json

Luego hacemos un update con el comando:

composer update

Para que actualice el archivo composer.lock

Luego de eso cuando hagamos un deploy a Heroku vamos a ver que instala php5

remote: -----> Installing system packages...
remote:        - php (5.6.16)
remote:        - Apache (2.4.16)
remote:        - Nginx (1.8.0)

Utilizando el comando heroku logs. Podemos ver los errores que se producen en el Server de Heroku por si no sabemos por que nos tira un error 500.

Saludos.