PHP does not show errors in the connection even if it is incorrect

2

I have the following code that makes the connection of php and sql server but although I put the data of the connection wrong it does not show me any error:

<?php session_start();

if (isset($_SESSION['usuario'])) {
    header('location: contenido.php');
}

if($_SERVER['REQUEST_METHOD']=='POST'){
    $nombre=FILTER_VAR(strtolower($_POST['nombre']), FILTER_SANITIZE_STRING);
    $usuario=strtolower($_POST['usuario']);
    $mail=strtolower($_POST['mail']);
    $pass=$_POST['pass'];
    $pass2=$_POST['pass2'];

    /*Imprimimos los datos para ver que todo funcione correctamente 
    echo $nombre . '<br/>' . $usuario . '<br/>' . $mail . '<br/>' . $pass . '<br/>' . $pass2; */
    $errores='';

    if (empty($nombre) or empty($usuario) or empty($mail) or empty($pass) or empty($pass2)) {
        $errores .= '<li>Debes rellenar todos los campos</li>';
    }else{
        try{
            $servidor='(LOCAL)';
            $base='login_usuos';
            $usuario='sa';
            $password='password';

            $conexion=new PDO("sqlsrv:server=$servidor;Database=$base", "$usuario", "$password");
        }catch(PDOException $e){
            echo "Error en la conexion:" . $e->getMessage();
        }
$query="SELECT * FROM t_usuarios WHERE usuario= :usuario LIMIT 1";
    $statement=sqlsrv_prepare($conexion, $query, array(':usuario' => $usuario));
    $resultado=sqlsrv_execute($statement);
    $row=sqlsrv_fetch_array($resultado);
    }
}
require 'vistas/registro.view.php';

?>

Could you tell me why and if I have something wrong to correct it?

    
asked by Guillermo Ricardo Spindola Bri 06.05.2016 в 17:14
source

2 answers

1

If you put an "or die ()" after every request you make to the database, the error appears automatically. And if the files you use are php's called by a js (by means of ajax), the way to see an error is by making a console.log (answer) or an alert (answer). I work all the time with sending data to their respective database and responses to ajax, and that is the way it works to detect errors.

    
answered by 06.05.2016 в 19:58
0

<?php 

require 'vistas/registro.view.php';
session_start();

if (isset($_SESSION['usuario'])) {
    header('location: contenido.php');
}

if($_SERVER['REQUEST_METHOD']=='POST'){
    $nombre=FILTER_VAR(strtolower($_POST['nombre']), FILTER_SANITIZE_STRING);
    $usuario=strtolower($_POST['usuario']);
    $mail=strtolower($_POST['mail']);
    $pass=$_POST['pass'];
    $pass2=$_POST['pass2'];

    /*Imprimimos los datos para ver que todo funcione correctamente 
    echo $nombre . '<br/>' . $usuario . '<br/>' . $mail . '<br/>' . $pass . '<br/>' . $pass2; */
    $errores='';

    if (empty($nombre) or empty($usuario) or empty($mail) or empty($pass) or empty($pass2)) {
        $errores .= '<li>Debes rellenar todos los campos</li>';
    }else{
        try{
            $servidor='(LOCAL)';
            $base='login_usuos';
            $usuario='sa';
            $password='password';

            $conexion=new PDO("sqlsrv:server=$servidor;Database=$base", "$usuario", "$password");
            //debes utilizar manejadores de errores
            $conexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); //prueba utilizando esto amigo
        }catch(PDOException $e){
            echo "Error en la conexion:" . $e->getMessage();
        }
    $query="SELECT * FROM t_usuarios WHERE usuario= :usuario LIMIT 1";
    $statement=sqlsrv_prepare($conexion, $query, array(':usuario' => $usuario));
    $resultado=sqlsrv_execute($statement);
    $row=sqlsrv_fetch_array($resultado);
    }
}


?>
    
answered by 06.05.2016 в 18:58