Nome da Máquina em JavaScript

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Nome da Máquina em JavaScript

Mensagempor forbid » Terça Dez 04, 2007 13:54

Boas

Eu gostaria de saber como é que faço para fazer o Output do nome da máquina em que o utilizador está e que faça o output directamente para uma Text Box, isto é para um Help Desk, o objectivo é que quando o utilizador vá fazer um pedido, apareça directamente na caixa de texto o nome da máquina onde ele está, e que ele não o posso mudar.

Agradecia que me ajudassem, isto é urgente..

Cumps
Editado pela última vez por forbid em Quarta Dez 05, 2007 14:15, num total de 2 vezes.
Me... God... What's the difference?!

ASUS M3N78-VM
3x1GB DDR2 800 TwinMos
AMD Athlon 7750 Dual-Core 2.70 GHz
NVidia XFX GeForce 8600GT
Sound Blaster Audigy 2 with Creative Inspire 5.1 P580
Disco SATAII Maxtor 250 GB
Disco SATAII Samsung 300GB
forbid
Membro de Prata
Membro de Prata
 
Mensagens: 203
Registado: Domingo Out 03, 2004 16:25

Mensagempor vamosAeles » Terça Dez 04, 2007 16:08

Boas, que servidor tens ai a bombar?

Se for um server java: tomcat, oc4j, etc...(mesmo que seja um file.html), podes fazer uma funcao java script: func {return java.net.InetAddress.getLocalHost().getHostName()}, que indica o nome com que o cliente se identificou. Se o client estiver por trás de uma proxy antes de aceder ao servidor (p.e.), vais levar com o nome da proxy quando chamares a página.

EDIT: assim como com quase 100% de certeza não consegues fazer isso directamente com propriedades de JavaScript. Apenas dá fazendo o server 'devolver' o IP ou Nome da máquina que fez o request.
vamosAeles
Membro de Prata
Membro de Prata
 
Mensagens: 206
Registado: Quarta Jan 04, 2006 21:29
Localização: Lisboa/Proença

Mensagempor forbid » Terça Dez 04, 2007 16:41

E para fazer o output para a Text Box?

Isso é a minha maior dificuldade...

Eu estou a fazer a aplicação em PHP

Estou a utilizar Apache, PHPmyAdmin.
Me... God... What's the difference?!

ASUS M3N78-VM
3x1GB DDR2 800 TwinMos
AMD Athlon 7750 Dual-Core 2.70 GHz
NVidia XFX GeForce 8600GT
Sound Blaster Audigy 2 with Creative Inspire 5.1 P580
Disco SATAII Maxtor 250 GB
Disco SATAII Samsung 300GB
forbid
Membro de Prata
Membro de Prata
 
Mensagens: 203
Registado: Domingo Out 03, 2004 16:25

Mensagempor vamosAeles » Terça Dez 04, 2007 16:59

OKS, experimenta então isto (vê se bule que não tenho como testar):

<input type="text" name="nomeCli" value='<?php echo $_SERVER['REMOTE_HOST'] ?>' READONLY>

Se não essa a propriedade que queres, ve as disponíveis pelo $_SERVER
http://pt.php.net/reserved.variables
[[]]
vamosAeles
Membro de Prata
Membro de Prata
 
Mensagens: 206
Registado: Quarta Jan 04, 2006 21:29
Localização: Lisboa/Proença

Mensagempor forbid » Quarta Dez 05, 2007 9:42

Infelizmente não funciona, já estive a tentar alterar e mesmo assim, não dá :(

Mais alguma solução?
Me... God... What's the difference?!

ASUS M3N78-VM
3x1GB DDR2 800 TwinMos
AMD Athlon 7750 Dual-Core 2.70 GHz
NVidia XFX GeForce 8600GT
Sound Blaster Audigy 2 with Creative Inspire 5.1 P580
Disco SATAII Maxtor 250 GB
Disco SATAII Samsung 300GB
forbid
Membro de Prata
Membro de Prata
 
Mensagens: 203
Registado: Domingo Out 03, 2004 16:25

Mensagempor SkylineGTR » Quarta Dez 05, 2007 10:28

O que pretendes parece simples mas não é.
Tentar obter o nome da máquina do utilizador "client" é uma operação que viola a segurança deste.

Em JavaScript não sei se vais lá. Só se usares ActiveX e com permissões de acesso.

Algo tipo isto:

Código: Seleccionar todos
<script language="javascript">
try
{
   var axo = new ActiveXObject("WScript.Network");
   document.write('Utilizador: ' + axo.UserName + '<br />');
   document.write('Máquina: ' + axo.ComputerName + '<br />');
}
catch (e)
{
   document.write('Acesso negado');
}
</script>
SkylineGTR
Membro Vitalício
Membro Vitalício
 
Mensagens: 4184
Registado: Terça Dez 28, 2004 22:26

Mensagempor forbid » Quarta Dez 05, 2007 12:10

Boas

Já descobri a solução, agora é só espetar isso para o PHP

Fica aqui o código;

Código: Seleccionar todos
<html>
<head>
</head>
<body>

<FORM NAME = frmOne>

ComputerName: <INPUT TYPE = Text NAME = txtFirstNumber disabled=disabled SIZE = 10 value ="">
<p>
UserName: <INPUT TYPE = Text NAME = txtSecondNumber disabled=disabled SIZE = 10 value ="">
<p>
Domain: <INPUT TYPE = Text NAME = txtThirdNumber disabled=disabled SIZE = 10 value = "">
<p>
</FORM>

<script language="JScript">

var WshNetwork = new ActiveXObject( "WScript.Network" );

A =  WshNetwork.ComputerName;
B = WshNetwork.UserName;
C = WshNetwork.UserDomain;

document.frmOne.txtFirstNumber.value = A ;
document.frmOne.txtSecondNumber.value = B;
document.frmOne.txtThirdNumber.value = C;


</script>
</body>
</html>


Obrigado a todos que ajudaram :)
Me... God... What's the difference?!

ASUS M3N78-VM
3x1GB DDR2 800 TwinMos
AMD Athlon 7750 Dual-Core 2.70 GHz
NVidia XFX GeForce 8600GT
Sound Blaster Audigy 2 with Creative Inspire 5.1 P580
Disco SATAII Maxtor 250 GB
Disco SATAII Samsung 300GB
forbid
Membro de Prata
Membro de Prata
 
Mensagens: 203
Registado: Domingo Out 03, 2004 16:25

Mensagempor SkylineGTR » Quarta Dez 05, 2007 12:29

Não te esqueças é dos "pequenos" pormenores, como se por exemplo alguém usar o Firefox isso não vai dar nada. Ou mesmo que esteja a usar o IE e não der permissão de execução ao ActiveX vais acabar com 3 campos a NULL.
SkylineGTR
Membro Vitalício
Membro Vitalício
 
Mensagens: 4184
Registado: Terça Dez 28, 2004 22:26

Mensagempor forbid » Quarta Dez 05, 2007 13:53

Sim, eu sei..

Mas já falei com o administrador de rede da empresa, e por ele pode ser assim.

Eles cá só utilizam o IE.

Agora há um problema, não consigo espetar com esses valores numa base de dados através de PHP + SQL..

Sabes de alguma maneira?
Me... God... What's the difference?!

ASUS M3N78-VM
3x1GB DDR2 800 TwinMos
AMD Athlon 7750 Dual-Core 2.70 GHz
NVidia XFX GeForce 8600GT
Sound Blaster Audigy 2 with Creative Inspire 5.1 P580
Disco SATAII Maxtor 250 GB
Disco SATAII Samsung 300GB
forbid
Membro de Prata
Membro de Prata
 
Mensagens: 203
Registado: Domingo Out 03, 2004 16:25

Mensagempor forbid » Sexta Dez 07, 2007 11:23

Então, alguém me pode dar uma ajuda com isto? :(
Me... God... What's the difference?!

ASUS M3N78-VM
3x1GB DDR2 800 TwinMos
AMD Athlon 7750 Dual-Core 2.70 GHz
NVidia XFX GeForce 8600GT
Sound Blaster Audigy 2 with Creative Inspire 5.1 P580
Disco SATAII Maxtor 250 GB
Disco SATAII Samsung 300GB
forbid
Membro de Prata
Membro de Prata
 
Mensagens: 203
Registado: Domingo Out 03, 2004 16:25

Mensagempor vamosAeles » Sexta Dez 07, 2007 16:50

Epá, tens de ser mais específico.
Não consegues porque? sabes o statement, mas não sabes que funções de php usar para isso? Apenas te disseram o nome da tabela e não sabes fazer o statement de insert/update? Se for este o caso, tens q dizer quais os campos a preencher na tabela... esse tipo de coisas.

[[[]]]
vamosAeles
Membro de Prata
Membro de Prata
 
Mensagens: 206
Registado: Quarta Jan 04, 2006 21:29
Localização: Lisboa/Proença

Mensagempor forbid » Segunda Dez 10, 2007 9:54

Boas

Eu não sei é a forma como o fazer, nem mesmo as sintaxes que utilizar, já ouvi dizer que é com hidden fields, só que não sei como utilizar isso, nem sequer sei como funciona.

Tenho 2 semanas para acabar este projecto para a empresa e estou a ver o caso mal parado :S
Me... God... What's the difference?!

ASUS M3N78-VM
3x1GB DDR2 800 TwinMos
AMD Athlon 7750 Dual-Core 2.70 GHz
NVidia XFX GeForce 8600GT
Sound Blaster Audigy 2 with Creative Inspire 5.1 P580
Disco SATAII Maxtor 250 GB
Disco SATAII Samsung 300GB
forbid
Membro de Prata
Membro de Prata
 
Mensagens: 203
Registado: Domingo Out 03, 2004 16:25

Mensagempor vamosAeles » Segunda Dez 10, 2007 10:42

Os campos hidden são campos que estão na página, mas que não são mostrados pelo browser, e podem servir para informação de controlo, como por exemplo quando queremos alterar ou detalhar um registo da BD, guarda-se nesse tipo de campo a chave do registo (ou algo que o identifique unicamente), cujo valor é completamente irrelevante para o utilizador (ou 'deverá' ser ocultado ao utilizador). Neste caso pode servir para guardar o nome da máquina cliente (não sei se será o caso).

Em relação a sintaxes... tás a falar de php/html ou sql (ou ambas)?
Quais são os campos que queres guardar na BD (que julgo virem do form aquando 'submit') ? Qual o nome da BD, nome da tabela, nome e tipo dos campos da tabela...
vamosAeles
Membro de Prata
Membro de Prata
 
Mensagens: 206
Registado: Quarta Jan 04, 2006 21:29
Localização: Lisboa/Proença

Mensagempor forbid » Segunda Dez 10, 2007 11:58

Os campos que quero guardar são: o nome da máquina (campo nome), o dominio (campo dominio) e o nome de utilizador (userid).

O código que eu mostrei em cima, é como eu tenho feito a parte em javascript.

O que eu queria era passar os values que estão nas caixas de texto geradas no javascript (elas estão em disabled para o utilizador não as poder alterar) para a base de dados quando fosse feito o submit do ticket da avaria.
Me... God... What's the difference?!

ASUS M3N78-VM
3x1GB DDR2 800 TwinMos
AMD Athlon 7750 Dual-Core 2.70 GHz
NVidia XFX GeForce 8600GT
Sound Blaster Audigy 2 with Creative Inspire 5.1 P580
Disco SATAII Maxtor 250 GB
Disco SATAII Samsung 300GB
forbid
Membro de Prata
Membro de Prata
 
Mensagens: 203
Registado: Domingo Out 03, 2004 16:25

Mensagempor vamosAeles » Segunda Dez 10, 2007 12:46

OKS, então partindo do codigo do post de: Qua Dec 05, 2007 12:10

Onde está: <FORM NAME = frmOne>
poes: <FORM NAME = frmOne action="guardaQQ.php">; talvez também seja preciso method="POST", mas não confirmo (a framework que uso não precisa :) ).

Depois antes de fechar o </form> ou no local onde quiseres, mas dentro das tags do form: <input type="submit" value="Guardar" />

Depois no ficheiro guardaQQ.php tens:

<?php
$nomePC = $_REQUEST["txtFirstNumber"];
$nomeUser = $_REQUEST["txtSecondtNumber"];
$nomeDOM = $_REQUEST["txtThirdtNumber"];

$con = mysql_connect("<SERVER_NAME>","<USER_NAME>","<USER_PASSWORD>");

if (!$con)
{
die('ERRO: ' . mysql_error());
}

mysql_select_db("<BASE_DE_DADOS>", $con);


mysql_query("INSERT INTO <NOME_TABELA> (<CAMPO_PC>, <CAMPO_USER>, <CAMPO_DOM>,...)
VALUES ($nomePC , $nomeUser , $nomeDOm,...)");

mysql_close($con);

?>
vamosAeles
Membro de Prata
Membro de Prata
 
Mensagens: 206
Registado: Quarta Jan 04, 2006 21:29
Localização: Lisboa/Proença

Próximo

Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 0 visitantes

cron