Buon giorno, vorrei sapere cortesemente come mai ho questo errore e come risolvere...
Grazie mille....Codice PHP:
Call to undefined function ldap_connect();
Buon giorno, vorrei sapere cortesemente come mai ho questo errore e come risolvere...
Grazie mille....Codice PHP:
Call to undefined function ldap_connect();
Probabilmente il php e' stato compilato/installato senza il supporto per l'estensione ldap.
Vai nel file php.ini e togli il punto e virgola davanti l'estensione:
Codice PHP:
;extension=php_ldap.dll
si in locale, l'ho fatto ma ovviamente dovrebbe essere fatto anche sul server di produzione.
Una curiosità, come faccio a replicare un DB (chiamiamolo cosi) LDAP in locale?
Grazie ancora....
salve ragazzi, riprendiamo questo post dopo le festività :|
Grazie a quanti mi daranno una mano
Premetto che nella directory principale del sito ho un .htaccess settato in questo modo:
in pratica, funziona cosi:Codice PHP:
# AuthName "AZIENDA.IT Intranet"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL ldap://xxx.xxx.xxx.xxx/ou=Users,dc=AZIENDA,dc=IT?uid?sub?
AuthName Temporary
Require valid-user
# Satisfy any
1) digito nella barra degli indirizzi l'url del sito intranet
2) come invio, viene letto il file .htaccess e mi appare la richiesta attraverso "Require valid-user" di inserire User e Pass.
3) dopo l'autenticazione entro nel sito intranet
A questo punto vi chiedo:
prima mi richiedeva l'autenticazione automaticamente, adesso voglio utilizzare un form.
In pratica al posto di "Require valid-user" vorrei avere l'opportunità di loggarmi attraverso la pagina dove ho il form e non il classico input.
Spero di essermi spiegato.
Grazie ancora![]()
Si tratta semplicemente di fare 2 cose:
1. Una ricerca con ldap_search per vedere se l'utente (che ti hanno passato nel form) esiste. Se true, vai al passo 2
2. Un bind con ldap_bind, usando il rdn restituito dalla ricerca e la pass che ti arriva dal form. Se true, vuol dire che l'utente esiste, e la pass e' giusta. A questo punto l'utente e' loggato, scrivi la sessione, cookie, etc
Sono convinto che su google troverai 10 mila esempi se ti servono.
ciao e grazie per la risposta.
Qualche curiosità:
1) posso creare in locale un LDAP per prova?
2) posso loggarmi da localhost, attraverso i parametri dell'.htaccess in intranet?
grazie ancora....
1) Si, prendi qualsiasi server tra questi per il tuo sistema operativo. Poi come client, potresti usare phpldapadminOriginariamente inviato da ANTAGONIA
ciao e grazie per la risposta.
Qualche curiosità:
1) posso creare in locale un LDAP per prova?
2) posso loggarmi da localhost, attraverso i parametri dell'.htaccess in intranet?
grazie ancora....
2) Si, se i firewall/route te lo permettono, puoi collegarti a qualsiasi directory remota.
ciao ri-eccomi, ho visto sulla guida php.net questo script:
questo fa al caso mio?Codice PHP:
$ldap_url = 'examplead.mycomp.com';
$ldap_domain = 'mycomp.com';
$ldap_dn = "dc=mycomp,dc=com";
$ds = ldap_connect( $ldap_url );
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
$username = "your_user_name_here";
//must always check that password length > 0
$password = "your_password_here";
// now try a real login
$login = ldap_bind( $ds, "$username@$ldap_domain", $password );
echo '- Logged In Successfully
';
try{
$attributes = array("displayname", "mail",
"department",
"title",
"physicaldeliveryofficename",
"manager");
$filter = "(&(objectCategory=person)(sAMAccountName=$username))";
$result = ldap_search($ds, $ldap_dn, $filter, $attributes);
$entries = ldap_get_entries($ds, $result);
if($entries["count"] > 0){
//echo print_r($entries[$i],1)."
";
echo "[b]User Information:[/b]
";
echo "displayName: ".$entries[0]['displayname'][0]."
";
echo "email: ".$entries[0]['mail'][0]."
";
echo "department: ".$entries[0]['department'][0]."
";
echo "title: ".$entries[0]['title'][0]."
";
echo "office: ".$entries[0]['physicaldeliveryofficename'][0]."
";
//echo "manager: ".$entries[$i]['manager'][0]."
";
$manager_result = ldap_search($ds,
$entries[0]['manager'][0],
'(objectCategory=person)',
array("displayname"));
$manager_entries = ldap_get_entries($ds, $manager_result);
if($manager_entries["count"] > 0){
echo "manager: ". $manager_entries[0]['displayname'][0];
}
}
}catch(Exception $e){
ldap_unbind($ds);
return;
}
ldap_unbind($ds);
echo '
- Logged Out';
grazie ancora...
Puoi sempre fare una prova per vedere se va bene![]()