Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    37

    Inserire dati Active Directory in un DB

    Salve a tutti,
    tramite la funzione LDAP_Search mi collego al mio dominio Active Directory e riesco a fare delle interrogazioni e le stampo a video senza problemi.
    Quello che vorrei fare ora è scrivere direttamente i dati in una tabella in MySQL che ha come nome dei campi il nome degli attributi AD.
    Ho scritto il codice seguente ma semplicemente scrive in tutte le righe "displayname". dove sbaglio?

    ecco il codice:

    [CODE
    // Collegamento al DB
    $db = mysql_connect ('localhost', 'root','') or die ('non si collega');
    mysql_select_db ('rubrica', $db) or die (mysql_error ($db));

    // specifico gli attributi che voglio vedere
    $attrs = array("displayname","mail","telephonenumber");

    $filter = 'sn'."=".''."*" ;

    $search = ldap_search($ad, $dn, $filter, $attrs)
    or die ("Ricerca fallita!!!!");

    $entries = ldap_get_entries($ad, $search);

    if ($entries["count"] > 0) {
    foreach ($entries as $row) {
    $query = "INSERT INTO elenco (displayname) VALUES ('{$row[0]}')";
    $ris = mysql_query($query) or die(mysql_error());
    }
    }

    ldap_unbind($ad);

    [/CODE]

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    37
    sicuramente sbaglio qualcosa nella query quando cerco di inserire i dati nel DB, nessuno saindicarmi una via di uscita??

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non ho capito; il tuo problema è che scrive ovunque la stringa "displayname" o che inserisce i dati solo nel campo displayname?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    37
    in una delle prove fatte il codice mi ha scritto nel campo della tabella displayname la stringa "dysplayname" per tutte le righe presenti
    Quello che vorrei ottenere è una rubrica che si aggiorna automaticamente da Active Directory.
    Quindi mi servirebbe inserire in una tabella i valori che con la funzione LDAP_search inserisco nella variabile $entries

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Prima di tutto prova questo, dopo
    $entries = ldap_get_entries($ad, $search);

    metti
    print_r($entries);
    e commenta il codice che segue in modo da non fare gli insert e vedi se l'array contiene effettivamente i dati che ti aspetteresti.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    37
    Intanto, grazie per il tempo che mi dedichi.
    ho fatto la prova che mi hai detto ed ottengo i dati presenti nell'array in questa forma:


    Array ( [count] => 1 [0] => Array ( [telephonenumber] => Array ( [count] => 1 [0] => 0123456 ) [0] => telephonenumber [displayname] => Array ( [count] => 1 [0] => Nome Cognome ) [1] => displayname [ipphone] => Array ( [count] => 1 [0] => 12349 ) [2] => ipphone [mail] => Array ( [count] => 1 [0] => mail@dominio.com ) [3] => mail [mobile] => Array ( [count] => 1 [0] => 0012345678 ) [4] => mobile [count] => 5 [dn] => CN=Nome Cognome,OU=utente ,OU=ou superiore ,OU=superiore, DC=Dominio,DC=com ) )

    ovviamente ho sostituito ai valori reali del mio dominio valori fittizi cercando di farti capire che tipo di dato mi restitutisce

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Ben strano questo array... comunque prova così
    $query = "INSERT INTO elenco (displayname) VALUES ('".$row['displayname'][0]."')";

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    37
    Funziona!
    ha ancora un unico inconveniente: mi si blocca sui cognomi che contengono un apotrofo.
    puoi indicarmi una soluzione anche per questo problema?

    Grazie ancora!!!

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Passa tutte le stringhe alla funzione mysql_real_escape_string()

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    37
    Grazie, vado subito a studiarmi come funziona.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.