Help - Search - Members - Calendar
Full Version: get data from html form and write into a file, javascript
HTMLHelp Forums > Web Authoring > Web Site Functionality
Daralis
Im trying to write data retrieved from html form, but can't make it work. Please help me. Iam a newbies to this.

Thanks so so much.


<script LANGUAGE="JavaScript">
function Write(input0, input1, input2)
{
var Scr = new ActiveXObject("Scripting.FileSystemObject");
var CTF = Scr.CreateTextFile("employeefile.txt", 1, true);
CTF.WriteLine(input0 + ","+ input1 + ","+ input2);
CTF.Close();
}
function validateForm()
{
var x1=document.userform.pwd.value;
var x2=document.userform.re_pwd.value;
if (x2 == x1)
{
document.write(document.userform.empname.value)
Write(document.userform.empname.value, document.userform.user.value, document.userform.pwd.value);

}
else
{
alert("Passwords are not the same, Re-enter password");

}
}
</SCRIPT>

</head>

<body>

<table width=100% border="0">
<tr>
<td style="background-image:url(http://farm8.staticflickr.com/7092/7114162767_1c07772c85.jpg); background-size:cover;">
<p style="font-family:Britannic Bold;font-size:180%;color:#3300FF;text-align:center;"> <br /><br /> REGISTER </p><br />
</td>

</tr>

<tr>
<td style="background-color:#EEEEEE;height:700px;background-size:cover;text-align:center;">

<form ACTION="" NAME="userform" METHOD="GET" ONSUBMIT="return validateForm()">Create employee profile: <BR><br /><br />
Employee Name: &nbsp; &nbsp; <input type="name" name="empname" size="35"/><br /><br />
Username: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="logintext" name="user" size="35"/><br /><br />
Password: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="password" name="pwd" size="35"/><br /><br />
Re-enter Password: <input type="re_password" name="re_pwd" size="35"/><br /><br />

<input type="submit" value="Submit" size="35"/>
</form>
</td>
</tr>

<footer>

<tr>
<td colspan="2" style="background-color:#FFA500; width:100%; height=50px; text-align:center;">
Copyright 2012 QGS Inc.
</td>
</tr>
</table>
</footer>

</body>
</html>
Brian Chandler
Are you really trying to write this to a file on the visitor's computer?

(As I understand it, normally javascript has no access to the local file system, for obvious reasons. Perhaps this "activeX" stuff is part of the MS virus dissemination kit, but if so it won't work in many cases.)
Christian J
A more traditional approach might be to write the data to a cookie.
Daralis
QUOTE(Brian Chandler @ Apr 26 2012, 04:33 AM) *

Are you really trying to write this to a file on the visitor's computer?

(As I understand it, normally javascript has no access to the local file system, for obvious reasons. Perhaps this "activeX" stuff is part of the MS virus dissemination kit, but if so it won't work in many cases.)


Thanks for your response, Iam just trying to save it on my computer for now.
So, what should I do now.

Thanks,

~Thuyly
Daralis
QUOTE(Christian J @ Apr 26 2012, 07:12 AM) *

A more traditional approach might be to write the data to a cookie.



Im a really newbies on this. Could you show me how. Thanks.


~Thuyly
Christian J
See for example http://www.quirksmode.org/js/cookies.html
Brian Chandler
QUOTE(Daralis @ Apr 27 2012, 12:54 AM) *

QUOTE(Brian Chandler @ Apr 26 2012, 04:33 AM) *

Are you really trying to write this to a file on the visitor's computer?

(As I understand it, normally javascript has no access to the local file system, for obvious reasons. Perhaps this "activeX" stuff is part of the MS virus dissemination kit, but if so it won't work in many cases.)


Thanks for your response, Iam just trying to save it on my computer for now.
So, what should I do now.


Where is "your computer"? Do you mean that whoever looks at the page you want them to store things on your computer? Or do you mean that you are the only person who looks at this page, and you want to save something from it? (In which case the simplest answer is to do it by hand)

Usually the point of a form is that whoever fills it in, the results are saved on the server; this requires some sort of server script.
pandy
A couple of things. I can't get this to work with a relative path, try the full path, c:\\...

What does the second parameter (1) in the CreateTextFile() parenthesis stand for? I don't find it in MS's reference, but it doesn't stop things from working. I wonder if you don't say 'true' two times but in different ways.
http://msdn.microsoft.com/en-us/library/z9...0(v=vs.85).aspx

There's something wrong with the validation bit. The Write() function on it's own works (if the values are passed to it) provided I use the full path to the file. IE's script debugger complains that "document.userform.empname is null or not an object", but I don't see why.
Christian J
QUOTE(pandy @ Apr 27 2012, 09:07 AM) *

What does the second parameter (1) in the CreateTextFile() parenthesis stand for? I don't find it in MS's reference, but it doesn't stop things from working. I wonder if you don't say 'true' two times but in different ways.
http://msdn.microsoft.com/en-us/library/z9...0(v=vs.85).aspx

According to http://msdn.microsoft.com/en-us/library/5t...c(v=vs.85).aspx it should be a boolean value (true/false) for "overwrite", but according to the user comments the description is incorrect. Maybe an invalid value like "1" makes it behave as if "true" was used.

QUOTE
IE's script debugger complains that "document.userform.empname is null or not an object", but I don't see why.

Could it be because

CODE
document.write(document.userform.empname.value)

overwrites the whole webpage? So maybe when the Write() function tries to find "document.userform.empname" it doesn't exist anymore. See if this works better:

CODE
document.body.innerHTML+='<h2>'+document.userform.empname.value+'</h2>';

Also maybe the form submit should be cancelled with a "return false".
pandy
QUOTE(Christian J @ Apr 27 2012, 02:39 PM) *


Could it be because

CODE
document.write(document.userform.empname.value)

overwrites the whole webpage?


Yes, of course! With that line removed it works. But IE seems to require double slashes in the path (c:\\...) otherwise it complains about bad filename something something. Do you know why? I've never encountered this before.
Christian J
QUOTE(pandy @ Apr 27 2012, 02:47 PM) *

IE seems to require double slashes in the path (c:\\...) otherwise it complains about bad filename something something. Do you know why? I've never encountered this before.

How did you find out about the double slashes in the first place, from the MSDN reference? Note how the VBScript examples use a single slash, while the JScript ones use a double. Maybe it's for escaping in Jscript, but do you have to escape a backslash in the first place? unsure.gif
pandy
Yes, from the page I linked to.
Christian J
QUOTE
Maybe it's for escaping in Jscript?


For example, if the first character in the filename is a "t" like in "testfile.txt", then

CODE
\testfile.txt

might be interpreted as a tab followed by "estfile.txt" without the escaping. unsure.gif See if it works with a single slash if the filename's first letter isn't one that needs to be escaped.
pandy
Nope. I named my test files 1.txt, 2.txt and so on.
Christian J
BTW, how much do you have to lower MSIE's security settings for this to work? And can you rewrite any text based file on the user's computer?
pandy
I didn't lower anything, just has to OK the active-x prompt. But that could be different depending on your settings and version of IE I guess.

I guess you can overwrite any existing file since I overwrote the one I created several times.
Christian J
QUOTE(pandy @ Apr 27 2012, 07:41 PM) *

I didn't lower anything, just has to OK the active-x prompt. But that could be different depending on your settings and version of IE I guess.

Do you view the HTML file with the script from your local file system? The latter's security zone seems to have low security, but can't be viewed/changed unless you make changes to the registry: http://surfthenetsafely.com/ieseczone3.htm

Can't believe scripts are allowed access to users' file system in the Internet Zone. If it was this easy to hack Windows with javascript there would be an, err, pandemic. ninja.gif
pandy
Of course it's local and didn't make any registry changes. Don't you have your own IE by the way? tongue.gif
Christian J
QUOTE(pandy @ Apr 27 2012, 10:59 PM) *

Of course it's local and didn't make any registry changes.

You don't need any registry changes, except for examining the local system's security settings.

QUOTE
Don't you have your own IE by the way? tongue.gif

I just wanted to know how dangerous MSIE really is. With your interest in activeX you seemed like an excellent guinea pig. cool.gif
pandy
You said above that registry changes were needed, or so I thought.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2014 Invision Power Services, Inc.