472,800 Members | 1,092 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,800 software developers and data experts.

How to include JavaScript into PHP to get 2 Variables ??? Need urgent help with that

Short Description of the Project:

we developed a e-learning system for our students. each student has a unique username/password to view the modules he/she should view and nothing more. since we want to give them the opportunity to run these modules from home as well, we are trying to get the USERNAME/COMPUTERNAME as well, so the students, when they sign up for the modules, they can ONLY run the modules fromhome PC.

We found a nice JavaScript, that gives us opportunity to get these 2 values, but we are not able to retrieve these into PHP.

The JavaScript is as follow:
[code]
//~~Author~~. Curtis Riley
//~~Email_Address~~. curril@tristategt.org
//Gets the current user's name, domain, and PC name, then gets the global
//groups on the domain that the user is a member of, and then checks the
//local groups on the PC to see if the user is a member. All of the data is
//displayed as collected in an Internet Explorer window controled by the
//script.

//~~Script~~.
// WSH and ADSI demo program
// Gets global and local groups
// for the current user and machine
// and displays them in IE
// Requires: ADSI 2.5, WSH 2.0,
// Scripting 5.1, IE4
//Global ActiveX objects
//Creates an instance of IE
var ie = new ActiveXObject ("InternetExplorer.Application");

//Global variables
var gsUserName, gsUserDomain, gsComputerName;
var gaGlobalGroups = new Array();
var gaLocalGroups = new Array();
var gaMembershipFrom = new Array();

// Begin Main Program

BuildOutputWindow();
ShowStatus("Getting Information...");

gsUserName = Get_UserName();
gsUserDomain = Get_UserDomain();
gsComputerName = Get_ComputerName();
ShowUserData();

gaGlobalGroups = Get_UserGlobalGroups(gsUserName, gsUserDomain);
ShowGlobalGroupData(gaGlobalGroups);

gaLocalGroups = Get_UserLocalGroups(gsUserName, gsUserDomain, gsComputerName, gaGlobalGroups);
ShowLocalGroupData(gaLocalGroups);

ShowStatus("Group information retrieved.");

// End Main Program

// ADSI and WSH Functions

// Gets the PC Name from the WSH
function Get_ComputerName(){
ShowStatus("Getting Computer Name...");
var WshNetwork = new ActiveXObject ("WScript.Network");
return (WshNetwork.ComputerName);
}
// End function GetComputerName(){

// Gets the User Name from the WSH
function Get_UserName(){
ShowStatus("Getting User Name...");
var WshNetwork = new ActiveXObject ("WScript.Network");
return (WshNetwork.UserName);
}
// End function GetUserName(){

// Gets the Domain Name from the WSH
function Get_UserDomain(){
ShowStatus("Getting Domain Name...");
var WshNetwork = new ActiveXObject ("WScript.Network");
return (WshNetwork.UserDomain);
}
// End function Get_UserDomain(){

// Gets the global groups the user is a member of from ADSI
function Get_UserGlobalGroups(sUserName, sUserDomain){
ShowStatus("Getting User Global Group Membership...");
var oDomain; //Will hold the NT domain object
var eDomain; //an Enumerator that points to oDomain
var oGroup; //Will hold a group object
var i; //Counter variable

var VB_array; //a Dictionary object used to create a VBArray
var VBGroupFilter; //will hold the value "Group" in a VBArray

var aGroups = new Array(); //Holds the groups the user is a member of

// Create a VBarray to hold the filter value (yes, it is a kludge)
VB_array = new ActiveXObject("Scripting.Dictionary");
VB_array.add("Group", "");
VBGroupFilter = VB_array.Keys();

// Get the IADsContainer object for the domain
oDomain = GetObject("WinNT://" + sUserDomain);

//Filter the IADsContainer so that only objects that
//are groups show up when looking at it
oDomain.Filter = VBGroupFilter;

//Create an enumerator object so that we can step through all the groups
//in the domain
eDomain = new Enumerator(oDomain)

i = 0; //Initialize counter to step through array
for (;!eDomain.atEnd();eDomain.moveNext()){
//Since oDomain is filtered by group, each eDomain item is a group
oGroup = eDomain.item();
ShowStatus("Checking membership in group " + oGroup.Name + "....");
//Use the IsMember() method to find out if user is in the group

if ( oGroup.IsMember("WinNT://" + sUserDomain + "/" + sUserName) ){
//Store the group in the array, increment array counter
aGroups[i++] = oGroup;
//Show the groups as they come up
ShowGlobalGroupData(aGroups);
}
}
ShowStatus("Done getting global group membership");
return (aGroups);
}
// function Get_UserGlobalGroups(){

// Gets the local groups the user is a member of

function Get_UserLocalGroups(sUserName, sUserDomain, sComputerName, aGlobalGroups){
ShowStatus("Getting User Local Group Membership (may take a while)...");
var oDomain; //Will hold the NT local domain object
var eDomain; //an Enumerator that points to oDomain
var oGroup; //Will hold a group object
var i; //Counter variable

var VB_array; //a Dictionary object used to create a VBArray
var VBGroupFilter; //will hold the value "Group" in a VBArray

var aGroups = new Array(); //Holds the groups the user is a member of

// Create a VBarray to hold the filter value (yes, it is a kludge)
VB_array = new ActiveXObject("Scripting.Dictionary");
VB_array.add("Group", "");
VBGroupFilter = VB_array.Keys();

// Get the IADsContainer object for the computer
oDomain = GetObject("WinNT://" + sComputerName);

//Filter the IADsContainer so that only objects that
//are groups show up when looking at it
oDomain.Filter = VBGroupFilter;

//Create an enumerator object so that we can step through all the groups
//in the local domain
eDomain = new Enumerator(oDomain)

//Use a for loop to step through the enumerator and look at all the groups
i = 0; //Initialize counter to step through array
for (;!eDomain.atEnd();eDomain.moveNext()){
//Since oDomain is filtered by group, each eDomain item is a group
oGroup = eDomain.item();
ShowStatus("Checking membership in group " + oGroup.Name + "....");
//Use the IsMember() method to find out if user is in the group
if ( oGroup.IsMember("WinNT://" + sUserDomain + "/" + sUserName) ){
//Add a new property to indicate where the membership comes from
gaMembershipFrom[i] = sUserName;
//Store the group in the array, increment array counter
aGroups[i++] = oGroup;
//Show the groups as they come up
ShowLocalGroupData(aGroups);
}
//Now loop through all global groups that the user is a member of
//and check to see if those global groups belong to the local group
//Necessary since the .IsMember method doesn't check to see if a
//a user is in the global groups that are members of the local group
for (j =0; j < aGlobalGroups.length; j++){
ShowStatus("Checking membership in group " + oGroup.Name + "....");
if ( oGroup.IsMember("WinNT://" + sUserDomain + "/" + aGlobalGroups[j].Name) ){
//Now check against the last local group added to list to see if
//the user is already a member to prevent adding duplicate names
//since (i) was incremented, need to use (i-1) to get current group
if (aGroups[i-1].Name != oGroup.Name){
gaMembershipFrom[i] = aGlobalGroups[j].Name;
aGroups[i++] = oGroup;
} else {
//Add current global group name to the MembershipFrom list
gaMembershipFrom[i-1] += "<br>" + aGlobalGroups[j].Name;
}
ShowLocalGroupData(aGroups);
}
}
}
ShowStatus("Done getting local group membership");
return (aGroups);
} // End function Get_UserLocalGroups(){

// IE and display Functions

// Creates the IE window
// Require the object ie.
function BuildOutputWindow(){
var n = 0; //dummy variable while waiting for IE to start
var s = ""; //String that holds the HTML to build window

//Set window properties
ie.height = 480;
ie.width = 640;
ie.menubar = false;
ie.toolbar = false;
ie.statusbar = false;
ie.addressbar = false;
ie.resizable = true;
ie.navigate ("about:blank");

//Loop while IE is opening
while (ie.busy) {++n};

ie.document.body.innerHTML = "Building Document..." + "<br>load time= " + n;
ie.visible = true;

//Start building document. Each element is given an ID for DHTML use
//Single quotes are used to prevent having to escape double quotes
//Newlines are thrown in to make it easier to read if sent to a file

//The banner element
s += '<h3 id="Banner_id" onclick="tests()">Group Membership</h3>\n';

//The status element, not to be confused with the status bar
s += '<p id="Status_id">Building Document...</p>\n';

//The user data element (holds PC name, user name, domain)
s += '<p id="UserData_id">No user data</p>\n';

//The global groups element
s += '<p id="GlobalGroups_id">No global groups<p>\n';

//The local groups element
s += '<p id="LocalGroups_id">No local groups<p>\n';

//Show the HTML
ie.document.body.innerHTML = s;

}
//End function BuildOutputWindow(){

//Shows HTML text in IE window in element labeled "Status_id"
function ShowStatus(sCurrStatus){
ie.document.all.item("Status_id").innerHTML = sCurrStatus;
}
//End function ShowStatus("sCurrStatus")

Read this forum's guidelines and put you code between code, php or html tags,Read Posting Guidelines before you put code in forum!!! - Ronald
Nov 25 '06 #1
3 5546
//Shows HTML text in IE window in element labeled "UserData_id"
function ShowUserData(){
var s = ""

//Puts it in a table
s += '<b>User Info</b> ';
s += '<table>\n';
s += '<tr><td width="33%" align=center><u>User Name</u></td>';
s += '<td width="33%" align=center><u>Domain Name</u></td>';
s += '<td align=center><u>Computer Name</u></td></tr>\n';
s += '<tr><td align=center>' + gsUserName + '</td>';
s += '<td align=center>' + gsUserDomain + '</td>';
s += '<td align=center>' + gsComputerName + '</td></tr>';
s += '</table>'
ie.document.all.item("UserData_id").innerHTML = s;
}
//End function ShowUserData()

//Shows HTML text in IE window in element labeled "GlobalGroupData_id"
function ShowGlobalGroupData(aGroups){
var s = ""; i = 0;

//Puts it in a table
s += '<b>Global Group Membership</b> ';
s += '<table cellspacing=10>\n'
s += '<tr><td width="25%"><u>Group Name</u></td>';
s += '<td><u>Description</u></td></tr>\n'
//Create each table row
for (i=0; i<aGroups.length; i++){
s += '<tr><td>' + aGroups[i].Name + '</td>';
s += '<td>' + aGroups[i].Description + '</td></tr>\n'
}
s += '</table>'
ie.document.all.item("GlobalGroups_id").innerHTML = s;
}
//End function ShowGlobalGroupData(){

//Shows HTML text in IE window in element labeled "LocalGroupData_id"
function ShowLocalGroupData(aGroups){
var s = ""; i = 0;

//Puts it in a table
s += '<b>Local Group Membership</b><br>';
s += '<table cellspacing=10>\n'
s += '<tr><td width="25%" valign=top><u>Group Name</u></td>';
s += '<td width="25%" valign=top><u>Gets Membership From</u></td>\n'
s += '<td valign=top><u>Description</u></td></tr>\n'
//Create each table row
for (i=0; i<aGroups.length; i++){
s += '<tr><td valign=top>' + aGroups[i].Name + '</td>';
s += '<td valign=top>' + gaMembershipFrom[i] + '</td>\n'
s += '<td valign=top>' + aGroups[i].Description + '</td></tr>\n'
}
s += '</table>'
ie.document.all.item("LocalGroups_id").innerHTML = s;
}
//End function ShowLocalGroupData(){
[/code]

If you run (save it as script.js or something else) the script, u get the desired information, the question ist how sould we place this script into a php page, to get these 2 values, when the student registers ??

If you refuse to following this forum's guidelines and put you code between code, php or html tags, I have to edit your posts. Read the Posting Guidelines before you put any ncode into this forum!!! - Ronald :cool:any help would be appreciated

Ioannis E. Ntentopoulos
Nov 25 '06 #2
Atli
5,058 Expert 4TB
I didn't get through all that javascript.. sry.

But... If I understand your problem correctly (wich is higly unlikely ;P ) you need a way to get your data from the java to the php?

Assuming this and that your users would have to log in using a html form, I think I have an idea.

You could have your javascript put the data into hidden form thingies and pass it along with the login info.. like so

Expand|Select|Wrap|Line Numbers
  1. <script language="javascript">
  2. function setValue()
  3. {
  4.     // These vars you'd have to set
  5.     // using your javascript
  6.     var userName = "userName";
  7.     var compName = "compName";
  8.  
  9.     document.form1.hiddenUser.value = userName;
  10.     document.form1.hiddenComp.value = compName;
  11.  
  12.     document.form1.submit();
  13. }
  14. </script>
  15.  
  16. <form action="login.php" name="form1" method="post">
  17.     <input type="text" name="Username" />
  18.     <input type="text" name="Password" />
  19.     <input type="hidden" name="hiddenUser" />
  20.     <input type="hidden" name="hiddenComp" />
  21.  
  22.     <input type="button" value="What?" onClick="javascript:setValue()" />
  23. </form>
then all you'd have to do is maka a php to read the info and do whatever you want with it.

Hope this helps.
Nov 25 '06 #3
@ Roland: sorry about that, thought i had the
Expand|Select|Wrap|Line Numbers
  1. ...
tag in my post

@ Atli: the whole code i posted gets (only in Internet Explorer) the (real) COMPUTERNAME and the (real) LOGGED-IN USER (localy)

so this js gives you 2 values, and my question was, how can I take these 2 values from the js script and put them into my php file where i do the check, if a user has enough privileges, to c the modules (privileges = COMPUTERNAME, LOGGED-IN USER and then username, password of the e-Learning System)
Nov 26 '06 #4

Sign in to post your reply or Sign up for a free account.

Similar topics

1
by: S.Shaigany | last post by:
Hi everybody, Please help me. I have a problem with my login page, which worked fine during the last one month. I have'nt made any changes in it. but from yesterday on, it seems that my PHP code...
2
by: Andy Fish | last post by:
Hi, I am in the process of designing a UI which has to be fairly sophisticated. There will be a number of list boxes and other controls, with pop-up windows to edit certain properties. It's the...
1
by: Jenny | last post by:
Need urgent help for an unsolved problem. In our ASP web application, we creat a Back button and if user click on this button, it execute history.go(-1) to go back to the previous page. All our...
3
by: jimmygoogle | last post by:
I posted earlier with a scope problem. I think I resolved it in IE but in Firefox it still exists. Anyone have any ideas/experience with this? I attached my code sorry it is so long. You can...
13
by: vgame64 | last post by:
Hi, I have been struggling with writing a program for a few hours. The requirements are that: """You will be writing a program which will determine whether a date is valid in terms of days in that...
1
by: david | last post by:
My question is how to keep the values of JavaScript variable unchanged when the page is posted back to the server? Problem: The JavaScript is used in HTML for computing in aspx web page (form)...
2
by: ksr | last post by:
Hello, I have a HTML page, which loads an activeX control in the browser. In the <HEADsection, I have javascript similar to the following, <SCRIPT language="JavaScript"> var Index = ""; //...
1
by: Keithb | last post by:
I have some client-side javascript for that I use for dhtml stuff such as hiding div tags based on user menu selections, etc. I need a way to maintain the state of javascript variables across...
8
by: Harch84 | last post by:
Hi I have a html page with javascript in it that assigns a set of coordinates to javascript variables. The question I have is how can I then send these variables to a Perl CGI script using a...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 2 August 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
0
by: erikbower65 | last post by:
Using CodiumAI's pr-agent is simple and powerful. Follow these steps: 1. Install CodiumAI CLI: Ensure Node.js is installed, then run 'npm install -g codiumai' in the terminal. 2. Connect to...
0
linyimin
by: linyimin | last post by:
Spring Startup Analyzer generates an interactive Spring application startup report that lets you understand what contributes to the application startup time and helps to optimize it. Support for...
0
by: erikbower65 | last post by:
Here's a concise step-by-step guide for manually installing IntelliJ IDEA: 1. Download: Visit the official JetBrains website and download the IntelliJ IDEA Community or Ultimate edition based on...
0
by: kcodez | last post by:
As a H5 game development enthusiast, I recently wrote a very interesting little game - Toy Claw ((http://claw.kjeek.com/))。Here I will summarize and share the development experience here, and hope it...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Sept 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
5
by: DJRhino | last post by:
Private Sub CboDrawingID_BeforeUpdate(Cancel As Integer) If = 310029923 Or 310030138 Or 310030152 Or 310030346 Or 310030348 Or _ 310030356 Or 310030359 Or 310030362 Or...
0
by: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{
2
by: DJRhino | last post by:
Was curious if anyone else was having this same issue or not.... I was just Up/Down graded to windows 11 and now my access combo boxes are not acting right. With win 10 I could start typing...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.