Esiste qualche funzione di base per ottenere uid dal nome utente in Drupal? Oppure dovrei eseguire una query db? il mio campo è un campo di testo con '#autocomplete_path' uguale a 'utente/completamento automatico'C'è un modo per ottenere uid dal nome utente in Drupal?
risposta
È possibile utilizzare la funzione user_load
. Vedi http://api.drupal.org/api/function/user_load/6
In particolare vedere http://api.drupal.org/api/function/user_load/6#comment-6439
Così si farebbe qualcosa di simile:
// $name is the user name
$account = user_load(array('name' => check_plain($name)));
// uid is now available as $account->uid
Non c'è pronto funzione API fatta per questo, non che io sappia. Ma puoi crearne uno se hai bisogno di più posti. Dovrebbe essere abbastanza semplice e diretto per interrogare il db per l'uid.
La funzione di carico di utenti è molto pesante, userebbe più risorse e tornare più dati di quelli richiesti, ecco una piccola funzione piacevole per voi:
function get_uid($username)
{
// Function that returns the uid based on the username given
$user = db_fetch_object(db_query("SELECT uid FROM users WHERE name=':username'", array(":username" => $username)));
return $user->uid;
}
Nota: Questo codice viene rivisto e l'ingresso è sfuggito , quindi il codice non è pericoloso in alcun modo.
non mettere email su stackoverflow in questo formato. Sai che sarai spamato –
wow che è una query molto pericolosa dato il suo input da un modulo ... google "injection attack" – ErichBSchulz
hey grazie, era solo di fretta, aggiornando il codice ora –
In qualche modo non ho potuto fare il lavoro di query, ma ho trovato questo:
$user = user_load_by_name($username);
$user_id = $user->uid;
vedi: http://api.drupal.org/api/drupal/modules%21user%21user.module/function/user_load_by_name/7
Il tuo rispondente è abbastanza buono perché è semplice e può essere applicato all'interno di una funzione di convalida personalizzata per l'accesso modulo (dove utente globale var non è ancora impostato) Grazie mille!+1 – Roger
È possibile ottenere tutte le informazioni su utente connesso con variabile globale $user
.
Il codice è:
<?php
global $user;
$uid = $user->uid;
echo $uid;
?>
La soluzione è la migliore, ma quando è necessario eseguire questa operazione all'interno di una funzione di convalida personalizzata per il modulo di accesso, è necessario utilizzare la soluzione di Willem de Jong. +1 – Roger
- 1. Ottiene automaticamente UID e GID dal nome utente in Unix?
- 2. Come ottenere nome utente utilizzando uid su Android
- 3. Python: trovare uid/gid per un dato nome utente/nome gruppo (per os.chown)
- 4. Git cli: ottenere informazioni utente dal nome utente
- 5. Genera un nome utente univoco dal nome e dal cognome?
- 6. Ottieni oggetto dal relativo Uid in WPF
- 7. Notifica nuovamente utente dell'account in Drupal
- 8. Comando APDU per ottenere smart card uid
- 9. Il modo giusto per ottenere nome utente e password dalla stringa di connessione?
- 10. C'è un modo (diverso da sql) per ottenere il mlid per un dato nid in drupal?
- 11. C'è un modo portatile per ottenere il nome utente corrente in Python?
- 12. Memorizza password separatamente dal nome utente
- 13. Trova utente in Laravel per nome utente
- 14. api per ottenere uid da URL del profilo su facebook
- 15. Firebase Android: crea un nome utente univoco
- 16. Come ottenere nome utente/nome visualizzato in Buddypress?
- 17. Verifica se un utente esiste già in drupal
- 18. android get gmail nome utente e password dal gestore account
- 19. Un modo per ottenere il nome dell'utente iPhone?
- 20. hardening drupal per un'implementazione dal vivo
- 21. capistrano un nome utente per più utenti
- 22. Come ottenere un nome utente in Active Directory da un nome visualizzato in C#?
- 23. Modo programmatico per ottenere il nome della variabile in C?
- 24. Ottieni il nome utente dal plug-in Jenkins Workflow (Pipeline)
- 25. Come creare un nome file i18n in Drupal 7?
- 26. Ottenere il nome utente corrente quando rappresentato
- 27. C'è un modo per ottenere aocolumn dal server modificabile modificabile?
- 28. Regex per nome utente?
- 29. Nome utente per HackageDB?
- 30. Facebook App: Ottenere il nome di un utente da ID
Per ottenere l'UID, questo è piuttosto un modo lento per farlo, in quanto coinvolge tutti i moduli che implementano hook_user creando una quantità sconosciuta di query. – googletorp
@googletorp: D'accordo, questo è lento. Ma ho pensato che sarebbe stato più semplice per Hamid in questo modo. In pratica, 'node_load', che è simile nel concetto a' user_load', accade molto in Drupal, se non sbaglio, e tuttavia non influisce negativamente sulle prestazioni nella maggior parte dei casi. Quindi ho pensato che sarebbe una buona idea raccomandare 'user_load' –
Quando lui stesso gli chiede se dovrebbe fare una query su db, sono sicuro che sarà in grado di farlo. Dopo tutto non è poi così complicato. – googletorp