Luego, tengo una duda y no claramente un problema.
1- Ayer instale apache2 y php5 con mysql y phpmyadmin.
Ya viene pdo-mysql activado por defecto. Siempre que quiero hacer algo nuevo en php busco la documentación y lei esto:
If your application does not catch the exception thrown from the PDO constructor, the default action taken by the zend engine is to terminate the script and display a back trace. This back trace will likely reveal the full database connection details, including the username and password. It is your responsibility to catch this exception, either explicitly (via a catch statement) or implicitly via set_exception_handler().
Entiendo que si no captamos la excepción php por defecto muestra la contraseña y usuario utilizado... osea que si mi server falla el usuario que intento entrar al sitio tendría mi usuario y contraseña de mysql... eso es grave,..
Entonces puse un usuario y contraseña incorrectos y la aplicación me da un error 500...
y luego coloco el usuario y contraseña real y todo de puta madre,
alguien sabe por que pasa esto? no lo entiendo realmente... no tendría que dar un error 500, o si?
2 - Esta clase llamada safepdo esta abajo en los comentarios, a su punto de vista esta correcta?:
Código PHP:
Class SafePDO extends PDO {
public static function exception_handler($exception) {
// Output the exception details
die('Uncaught exception: ', $exception->getMessage());
}
public function __construct($dsn, $username='', $password='', $driver_options=array()) {
// Temporarily change the PHP exception handler while we . . .
set_exception_handler(array(__CLASS__, 'exception_handler'));
// . . . create a PDO object
parent::__construct($dsn, $username, $password, $driver_options);
// Change the exception handler back to whatever it was before
restore_exception_handler();
}
}
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)