PHP: ¿Muere o verifica los resultados?
Pregunta
Estoy implementando LDAP con PHP, que va con bastante facilidad, debo decir. Sin embargo, tengo una pregunta sobre el uso de die()
o la función de verificación devuelve. Del siguiente código (Tomado de aquí), ¿Cuál es el punto de verificar $ldapconn
si utiliza die()
con el ldap_connect
? ¿No se supone que PHP salga con die()
Si algo sale mal con ldap_connect
¿de todos modos?
// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}
}
Solución
No sirve ningún propósito. ldap_connect devolverá falso si falla así, morir, por lo que puede eliminar uno de los 2.
Sugeriría eliminar el dado y agregar un buen manejo de errores.
Fuente: Php ldap_connect
Debe tener cuidado con las pruebas LDAP_CONNECT en PHP5.3. Puedo conectarme con éxito a cualquier servidor (existente o no) donde LDAP_CONNECT siempre devuelve verdadero. El tipo de enlace siempre es LDAP_Connection, pero es posible que en realidad no funcione / tenga éxito. Sugeriría que verificar la conexión es válida con @LDAP_Bind y luego verifique los errores.
Otros consejos
Tienes razón, eso es bastante redundante.
Como un lado, solo debes nunca die
En prototipos de maqueta o scripts de CLI realmente simples. Para los sitios web "reales", debe manejar errores con más gracia y obtener páginas de error adecuadas en lugar de solo die
En g.
ldap_connect () Devuelve falso si la conexión falla. En este caso, el script se detiene por die () y se devuelve un mensaje. No se ejecutará otro código debajo de esta línea.
ldap_connect devuelve falso en el error. El dado es de buen uso allí porque con él podrá establecer un error/advertencia legible para que el desarrollador lo vea.