Avatar billede dvdpusher Nybegynder
26. oktober 2008 - 15:02 Der er 19 kommentarer og
1 løsning

Automatisk e-mail sender i headeren

Hej

Jeg har følgende script, som kort sagt tæller den tid man har brugt på en side, og så viser en Alert med tiden.

Jeg skal bruge "tællefunktionen", men i stedet for at vise en Alert skal der sendes en email til mig med det antal sekunder der blev brugt på siden (time_dif).

Jeg er ny til det her, så håber at i kan bære over med mig :)

Det jeg har:

<HTML>
<HEAD>
<TITLE>Detecting User's Time on a Page</TITLE>

<SCRIPT LANGUAGE="JavaScript">

function person_in() { 
enter=new Date();}
function person_out() { 
exit=new Date(); 
time_dif=(exit.getTime()-enter.getTime())/1000;
time_dif=Math.round(time_dif); 

alert ("You've only been here for: " + time_dif + " seconds!!")}
</SCRIPT>

</HEAD>

<BODY bgcolor=ffffff onLoad='person_in()' onUnLoad='person_out()'>

</BODY>
</HTML>
Avatar billede roenving Novice
26. oktober 2008 - 16:14 #1
Hvornår skulle den så sendes ?-)

-- efter at brugeren har forladt siden eller ...

-- den eneste nogenlunde rimelige, jeg kan forestille mig er at sende en request til serveren med 10-20 sekunders mellemrum, og der fortælle serveren, hvor længe der nu er gået ...

-- så må du der sørge for at gemme værdierne, og så trække dem ud derfra !-)
Avatar billede dvdpusher Nybegynder
26. oktober 2008 - 16:18 #2
Hmm... Mailen skulle sendes når man forlader siden. Havde egentligt bare forestillet mig at skulle udskifte

"alert ("You've only been here for: " + time_dif + " seconds!!")"

med noget email-sender.

Så altså, hver gang en bruger forlader siden, skal der sendes en mail med den tid der blev brugt på siden.
Avatar billede w13 Novice
26. oktober 2008 - 16:23 #3
Du kan ikke sende e-mails med JavaScript. Du skal ud i noget ASP / PHP eller noget formmail-script, der skal køres.
Avatar billede dvdpusher Nybegynder
26. oktober 2008 - 16:28 #4
Ok, jeg er som sagt ny til Java... Troede at man kunne benytte sig af:

//First create the Mail() object and set in on a variable
var easymail=new Mail();

//Set the server type, so the script can know which page to call, the asp or php, if you are using a PHP server
//replace the "ASP_SERVER" wit // h "PHP_SERVER", by default the // server is set to PHP_SERVER

//NOTE: If you choose ASP_SERVER you must have CDONTS component installed
//in your server in order to send the em // ails
easymail.ServerType=ASP_SERVER;

//Now set the address to which the email will be sended
easymail.To="username@email.com";
//Add the CC address
easymail.Cc="username2@email.com";
//Add the BCC address
easymail.Bcc="username3@email.com";

//Now set the address of the one that sends the email
easymail.ReplyTo="me@email.com";

//Now set the subject of the email
easymail.Subject="Here goes the subject of the email";

//Set the message of the email
easymail.Message="Here is the content of the email message, if you want to split text into lines so it can be readable, you can use the '\r\n' characters, or better";

//Send the email
easymail.Send();


Men så er jeg godt nok helt lost :/
Avatar billede w13 Novice
26. oktober 2008 - 16:34 #5
Nu er Java og JavaScript jo 2 forskellige sprog, men ovenstående JavaScript-kode mangler i hvert fald nogle koder for at virke. =)

Man kan ikke som standard sige "new Mail()" i JavaScript - Mail-objektet skal kodes et eller andet sted på siden. Så det mangler altså.

(Din kode skal i øvrigt også gøre brug af enten ASP eller PHP - det bliver bare udført gennem JavaScript!)
Avatar billede roenving Novice
26. oktober 2008 - 16:34 #6
-- den kode er præcis noget php-noget, som skal køre serverside ...

-- og Java er stort set den uheldigste forkortelse for javascript, du kan finde på, da Java er et fuldt cross-platform programmeringssprog, mens javascript er et clientside script-sprog til browsere ...

-- groft sagt har de ca. 4 ting til fælles: j - a - v - a !-)

-- skriv javascript eller forkort evt. til js ...
Avatar billede roenving Novice
26. oktober 2008 - 16:36 #7
>>w13

-- men man kan sagtens bruge new Mail() i php, så det tror jeg, at det er !-)
Avatar billede w13 Novice
26. oktober 2008 - 16:43 #8
Roenving>> Også når man kigger på:

//Set the server type, so the script can know which page to call, the asp or php, if you are using a PHP server
//replace the "ASP_SERVER" wit // h "PHP_SERVER", by default the // server is set to PHP_SERVER

//NOTE: If you choose ASP_SERVER you must have CDONTS component installed
//in your server in order to send the em // ails
easymail.ServerType=ASP_SERVER;

? :)
Avatar billede dvdpusher Nybegynder
26. oktober 2008 - 16:53 #9
Godt med lidt debat - og tak for de mange kommentarer! :)

MEN, jeg blev desværre ikke så meget klogere at mit problem blev løst :/
Avatar billede w13 Novice
26. oktober 2008 - 17:06 #10
Nej, for som sagt kan det ikke laves med JavaScript. :) Du skal gøre det med PHP eller ASP alt afhængigt af, hvad din server understøtter.
Avatar billede olebole Juniormester
26. oktober 2008 - 17:07 #11
<ole>

Du kan ikke gøre det, du vil i JavaScript alene. Du kan lade JS indsamle oplysninger om brugeren og i baggrunden sende dem til et dokument på serveren, som derefter foretager den videre behandling - stopper info i en database eller evt. sende en mail.

Pas i øvrigt lige på med at fortælle folk, du får tilsendt en mail, hvergang en bruger går ind på din side og/eller når siden forlades. Måske, det kunne foranledige, at en saftspændt kreakirtel kunne få et ungt, håbefuldt menneske til at holde F5 nede i et par minutter. En databaseløsning er nok at foretrække  ;o)

Har du adgang til serversprog - og i så fald, hvilke?

/mvh
</bole>
Avatar billede olebole Juniormester
26. oktober 2008 - 17:13 #12
En tung finger på F5 vil naturligvis resultere i en bunke ligegyldige databaseindsættelser, men de er umiddelbart genkendelige. Det er 5.000 mails i en inbox selvfølgelig også - men de er en del mere besværlige  ;D
Avatar billede dvdpusher Nybegynder
26. oktober 2008 - 17:17 #13
F5 - Hehe, så langt havde jeg ikke tænkt. Det jeg skal bruge det til er en fremvisning af en side til ca 20 personer, hvor det er af stor betydning at jeg ved hvor mange sekunder de har brugt på siden - that's it.

Jeg kan lidt sql og PHP, men slet ikke nok til at kunne lave en så simpel ting som dette - åbenbart
Avatar billede w13 Novice
26. oktober 2008 - 17:29 #14
sendmail.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>Send mail</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  </head>
  <body>

<?php

$Name = "Navn"; //senders name
$email = "din@adresse.dk"; //senders e-mail address
$recipient = "PersonWhoGetsIt@emailadress.com"; //recipient
$mail_body = "Personen har været på siden i " . $_GET['seconds'] . " sekunder."; //mail body
$subject = "Subject for reviever"; //subject
$header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields

mail($recipient, $subject, $mail_body, $header);

?>

  <script type="text/javascript">
  window.close();
  </script>

  </body>
</html>

Og så kan du på din HTML-side, når brugeren forlader siden, kalde funktionen:

<script type="text/javascript">
function sendmail(iSeconds){
  window.open("sendmail.php?seconds="+iSeconds,"_blank","");
}
</script>

Eller noget i den stil. =)

Du risikerer dog nok med den løsning, at brugeren skal acceptere popup-vinduet og måske oven i købet godkende at vinduet vil lukke igen - derfor burde det nok laves med AJAX, men det bliver noget mere kompliceret og det kan jeg ikke lige hjælpe dig med.
Avatar billede dvdpusher Nybegynder
26. oktober 2008 - 17:54 #15
w13 - det var lige det der skulle til! Der kommer kortvarigt et popup vindue, men det lukker selv igen.

En stor tak herfra, og god søndag aften til alle!
Avatar billede dvdpusher Nybegynder
26. oktober 2008 - 17:55 #16
Hov - w13 - du skal vidst lige smide et svar :)
Avatar billede w13 Novice
26. oktober 2008 - 18:02 #17
;)
Avatar billede olebole Juniormester
26. oktober 2008 - 18:15 #18
Læg mærke til, hvad w13 skriver: Husk at informere brugerne om vigtigheden af, de tillader popup'en - da den under normale omstændigheder bliver stoppet af folks popup-blokkere. Ellers skal du ikke regne med at kunne hente de ønskede info. Jeg og mange andre ville aldrig tillade en popup, med mindre jeg på forhånd ved, hvad den gør  =)
Avatar billede w13 Novice
26. oktober 2008 - 18:16 #19
Ole har helt ret.

Og jeg takker for points! :)
Avatar billede dvdpusher Nybegynder
26. oktober 2008 - 18:32 #20
Det er skrevet bag øret :)
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