J'ai un formulaire Web qui recueille des informations et les soumet à un CGI qui tente d'insérer les données dans LDAP. Le problème est que j'essaie d'utiliser une variable avec :: ldap :: add et ça ne marche pas. Voici le code:Ajout d'objets à LDAP via CGI
if {[string length env(QUERY_STRING)] != 0} {
set handle [::ldap::connect localhost]
set dn "cn=admin,dc=mycompany,dc=com"
set pw "myPassword"
::ldap::bind $handle $dn $pw
set dn "cn=[ncgi::value givenName] [ncgi::value sn],ou=people,dc=mycompany,dc=com"
set formValues [
puts "cn {{[ncgi::value givenName] [ncgi::value sn]}}"
puts "displayName [ncgi::value givenName] [ncgi::value sn]"
foreach {key value} [ncgi::nvlist] {
if {[string length $value] != 0} {
puts "$key $value"
}
}
puts "objectClass top"
puts "objectClass person"
puts "objectClass organizationalPerson"
puts "objectClass inetOrgPerson"
]
::ldap::add $handle $dn {
$formValues
}
ldap::unbind $handle
}
Cependant, si je remplace $ formValues avec les entrées réelles que je veux insérer dans LDAP, ils sont ajoutés très bien. Je suis nouveau à TCL, donc je ne serais pas surpris s'il y avait des erreurs flagrantes dans cet extrait.
Merci d'avance!
Merci beaucoup! Je prévois de valider les intrants; Je n'ai pas inclus ce code dans cet exemple parce que je pensais que cela enlèverait le problème que j'essayais de résoudre. Merci encore!! – musashiXXX
J'ai fait les changements et j'ai encore des problèmes, mais je comprends maintenant ce que je faisais de mal. Après avoir corrigé le code, j'ai inséré la ligne suivante juste pour voir si la commande a été construite correctement: puts $ formValues Il crache les informations appropriées, et je l'ai vérifié complètement pour s'assurer qu'il est dans le bon format, mais pour une raison quelconque, l'entrée n'est pas insérée. J'apprécie ton aide! – musashiXXX
Impossible de dire à partir de la description maintenant. Essayez d'arrêter par #tcl sur freenode. Il y a plein de gens compétents qui peuvent aider, et certaines choses sont plus faciles à déboguer avec une interaction plus directe ... –