Avatar billede DannyMalvang Nybegynder
18. juni 2012 - 10:35 Der er 11 kommentarer og
1 løsning

LDAP opslag via javascript i domæne netværk

Hej

Jeg har lavet en bestillingsformular til vores kantine.

Så stiger kravene jo lige pludselig når man sætter sådan noget i gang.

Er det muligt at få fat i en mailadresse via LDAP+Javascript hvis man indtaster sine initialer i en tekstbox?

Det jeg gerne vil er at man taster sinde initialer (login navn) i en tekstbox. Når man trykker væk køre et javascript der laver et ldap opslag og finder den email adresse der hører til login navn.

Hvis man kan få den til at gøre det ud fra den bruger der er logget på maskinen når man loader siden ville det også være fint.

Nogen foreslag?

/Danny
Avatar billede The Real Yoda Juniormester
18. juni 2012 - 10:49 #1
du kan jo hurtigt gøre det via brugeren som er logget på maskinen ..

det er jo bare at lave en genvej til hver bruger..

http://internkantineting.dk?brugermail=person@firma.dk

Så kan du hente brugerens emailadresse med querystring ..
Avatar billede DannyMalvang Nybegynder
18. juni 2012 - 11:07 #2
Pointen med at bruge LDAP opslaget var at jeg ikke havde behov for at oprette en liste med 50+ brugere der skal benytte skemaet. Alt hvad jeg skal bruge ligger i mit AD

/Danny
Avatar billede olebole Juniormester
18. juni 2012 - 15:08 #3
<ole>

Skal det foregå via frontend kode, kræver det som minimum, at sitet er sat til 'trusted' på klienten - samt at klienten er IE. Så vil du formodentlig kunne gøre det via VBS/Shell

/mvh
</bole>
Avatar billede DannyMalvang Nybegynder
18. juni 2012 - 15:19 #4
Hej Ole

Begge dele er intet problem, jeg flytter den bare ud i trusted site med en Group Policy og alle benytter Internet Explorer.

Jeg vil gerne det foregår i frontend koden medmindre det er nemmere i backend. Vil gerne gøre det så simpelt så muligt.

Nogen eksempler på at gøre det?

/Danny
Avatar billede olebole Juniormester
18. juni 2012 - 16:14 #5
Lige dén øvelse har jeg ikke prøvet, men det er der vist mange andre, der har. Prøv en søgning på Google.

I denne forbindelse kan du formodentligt gøre mere med VBS end med JScript - og så er der flere, der skriver den slags i VBS (= lettere at finde info/hjælp).

Der er dog intet i vejen for, at du kan kalde VBS fra JS - og du kan også udveksle simple variabler. Undgå helst at udveksle arrays, da det ofte medfører besværligheder. En kommasepareret streng kan f.eks. let udveksles og splittes til et array, så det er som regel let at komme rundt om. Glem alt om udveksling af objekter!

Ekspempel:

<script type="text/vbscript">
Function MyAlert(str)
    MyAlert = MsgBox(str, 4, "Besked fra VBS")
End Function
</script>

<script type="text/javascript">
function kaldVBS(str) {
    var svar = MyAlert(str);
    svar = svar==6 ? "Ja" : svar==7 ? "Nej" : "Ain't got a clue!";
    alert("JavaScript alert siger:\nBrugeren trykkede: "+svar);
}

kaldVBS("HeyHep og Ole Bole Bum ...");
</script>
Avatar billede DannyMalvang Nybegynder
25. juni 2012 - 13:54 #6
Så fik jeg hul igennem via et VB Script nu kommer der så et nyt problem.

Jeg trækker min textkasse over i et PHP dokument for at sende en mail med:

$mail = $_POST['email'];

Hvor email er navnet på min kasse i min form hvor adressen står i. Jeg vil næsten gå ud fra at formateringen den benytter ikke fungere korrekt hvis jeg prøver at indsætte i CC feltet. Men hvad skal man så gøre? Min PHP side fejler hvis jeg benytter den, hvis jeg skriver den ind i selve mail delen eller emne feltet ser det korrekt ud
Avatar billede olebole Juniormester
25. juni 2012 - 14:05 #7
Du har sikkert en fejl i linje 87  *o)

Jeg er ikke clairvoyant - og du viser intet kode. Det kan vist ikke resultere i noget brugbart  =)
Avatar billede DannyMalvang Nybegynder
25. juni 2012 - 14:38 #8
Godt ord igen.

Jeg benytter en ganske standard PHP Mail formular som jeg har fundet på nettet.


<?php

//Form data fra anden side

// Variabler bliver oprettet ud fra Form

$mail = $_POST['email'];
$navn = $_POST['navn'];

// Til mail samt emne feltet

$to  = 'mail@mail.dk';
$subject = "Kantinebestilling fra: $navn d. $date KL. $tid_fra i $modelokale";

// Email i HTML Kode
$message = "
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<title>Kantine Bestilling</title>
</head>
<body>
$
</body>
</html>";

// HTML Headere for at få sendt mailen
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$
$email = ('mail@mail.dk') ;
$headers .= "From: mail@mail.dk" . "\r\n";


// Koden der reelt sender mailen

$sent = mail($to, $subject, $message, $headers) ;
if($sent)

// Godkendt eller fejl meddelelse brugeren får

{print "Du har nu bestilt"; }
else
{print "Der skete en fejl, prøv igen"; }
?>


Hvis jeg indsætter

$to  = '$email';

fejler PHP siden. Men hvis man indtaster en Email selv som eksemplet ovenover så fungere det upåklageligt, så det er kun når jeg prøver at benytte variablen det går galt.

Normalt har jeg indsat noget mere i HTML delen af mailen men det er fjernet for at gøre det nemmere at overskue.
Avatar billede olebole Juniormester
25. juni 2012 - 21:19 #9
Ja, det tror pokker  =)

Hvis du skriver:

$to  = '$email';

- forsdøger du at sende til en adresse, der hedder $email. I stedet skal du skrive:

$to  = $email;
// eller til nød:
$to  = "$email";

En variabel parses, hvis den står skrevet mellem dobbelte gåseøjne - men ikke mellem enkelte. Da du ikke har noget at bruge gåseøjne til på det pågældende sted, bør du udelade dem.

Men derudover er det overordentligt vanskeligt at finde 'en ganske standard PHP Mail formular' på nettet. Skræmmende meget er desværre noget værdiløst skidt. Således er der også ting i den kode, du har fundet, som ikke hænger sammen.

Det giver ingen mening at skrive et utf-8 kodet dokument og sende det som en iso-8859-1 kodet e-mail. I det hele taget er det ikke så ligetil endda at sende en utf-8 kodet e-mail.

Du kan evt. bruge en funktion, jeg selv har skrevet - og som faktisk virker:

function escapeAddr($addr) {
    $check = preg_match('/(.*)<(.*)>/', $addr, $a);
    if ($check) $addr = '=?UTF-8?B?'.base64_encode($a[1]).'?= <'.$a[2].'>';
    return $addr;
}
function mail_utf8($to, $subject='Intet emne', $message='', $from='', $cc='', $bcc='', $type='plain') {
    $from = escapeAddr($from);
    $header = 'From: '.$from.PHP_EOL
            . 'Return-Path: '.$from.PHP_EOL
            . 'Reply-To: '.$from.PHP_EOL
            . 'MIME-Version: 1.0'.PHP_EOL
            . 'Content-type: text/'.$type.'; charset=UTF-8'.PHP_EOL
            . 'X-Mailer: PHP/'.phpversion().PHP_EOL
            . 'Content-Transfer-Encoding: 8bit'.PHP_EOL;
    if ($cc!='') $header .= 'Cc: '.escapeAddr($cc).PHP_EOL;
    if ($bcc!='') $header .= 'Bcc: '.escapeAddr($bcc).PHP_EOL;
    $header .= PHP_EOL;
    return mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header);
}

// Eksempel på brug:
mail_utf8('modtager@gmail.com', 'Et eller andet emne', 'Indhold af mail', 'fra@domain.dk');

Navnene på funktionens parametre - sammen med eksemplet i bunden - burde forklare virkemåden
Avatar billede DannyMalvang Nybegynder
26. juni 2012 - 11:07 #10
Hej Ole

Det gav lidt mening så jeg har fået det til at fungere nu.
Mit PHP er ikke så stærkt så jeg skal lige bruge lidt tid til at se det igennem :) Jeg har lavet lidt PHP/HTML i min skoletid på teknisk skole men det ligger lidt langt væk, det er ved at være nogle år siden. Så jeg benytter meget "Trail and Error" metoden.

Men jeg har fået styr på LDAP og sending af mail. Smid et svar hvis du vil have point og mange tak for hjælpen :)
Avatar billede olebole Juniormester
26. juni 2012 - 13:41 #11
Ellers tak, jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes  =)
Avatar billede DannyMalvang Nybegynder
26. juni 2012 - 14:34 #12
Takker for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Udviklings- og Forenklingsstyrelsen

Serverdrift-specialist til Team Planning Tools

Cognizant Technology Solutions Denmark ApS

Senior Test Manager