Acceso a formularios

yachar
06 de Julio del 2004
hola!
vean tengo una duda, que no se si se podra resolver...pero yo la comento por si alguien tiene una idea.
yo quiero acceder a una pagina, (que ya conozco) y rellener el formulario automáticamente, con un script o creando una nueva que redireccione a esa......lo que quiero es rellenar el formulario, de login y pass, y darle a "entrar", para que se haga automaticamente.
la unica idea que tengo es que al entrar en la pagina, se "simulen" pulsaciones de teclado como si el usuario estuviese escribiendo el login y el pass.
muchas gracias, a ver si a alguien se le ocurre algo

peace&love

yachar
06 de Julio del 2004
lo has probado realmente???
mira, prueba esto, ami me dice "acceso denegado":

<html>
<head>
<title>RellenarForm</title>
</head>
<script>
var timer
function enviar(){
miW=window.open("http://www.google.es","miW")
timer=setInterval(rellenar,500)
}

function rellenar(){
if (miW.document.f.q){
miW.document.f.q.value="hola"
miW.document.f.submit()
clearInterval(timer)
}
}
</script>
<body bgcolor="#FFFFFF" text="#000000">
<a href="#" onclick="Javascript:enviar()">Rellenar y enviar formulario de la pagina FormRemoto.htm</a><br>
</body>
</html>


deberia buscar "hola" en el google no?
gracias otra vez

rsalvadores
06 de Julio del 2004
Efectivamente, no funciona, yo lo había probado en local y ahí si va, pero no en la red.

No se cual es el problema, pero si me entero de algo te lo haré saber.

Suerte

rsalvadores

rsalvadores
06 de Julio del 2004
Hola yachar, una duda muy interesante.

Se me ha ocurrido una cosa, veremos si te sirve:

Imagino que la página a la que te quieres dirigir no la puedes modificar, pero si sabes los id del formulario, texareas etc. Ponemos una pagina ejemplo formRemoto.htm que sería la que quieres rellenar:

<html>
<head>
<title>formRemoto</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1>Rellenar formulario con Javascript desde otra ventana</h1>
<form name="form1" method="post" action="Javascript:alert('FORM RELLENADO Y ENVIADO')">

<br>
Nombre
<input type="text" name="textfieldNombre"id="textfieldNombre" value="">
<br>
Apellidos
<input type="text" name="textfieldApellido"id="textfieldApellido" value="">
<br>
Edad
<input type="text" name="textfieldEdad"id="textfieldEdad" value=""><br>

</form>
</body>
</html>

Y otra página RellenarForm.htm que es la que te permite abrir,rellenar y enviar el formulario de la anterior:

<html>
<head>
<title>RellenarForm</title>
</head>
<script>
var timer
function enviar(){
miW=window.open("FormRemoto.htm","miW")
timer=setInterval(rellenar,500)
}

function rellenar(){
if (miW.document.getElementById("textfieldEdad")){
miW.document.getElementById("textfieldNombre").value="Mi nombre"
miW.document.getElementById("textfieldApellido").value="Mi apelllido"
miW.document.getElementById("textfieldEdad").value="Mi edad"
miW.document.getElementById("form1").submit()
clearInterval(timer)
}
}
</script>
<body bgcolor="#FFFFFF" text="#000000">
<a href="#" onclick="Javascript:enviar()">Rellenar y enviar formulario de la pagina FormRemoto.htm</a><br>
</body>
</html>

Suerte, y ya me contarás si te vale.

rsalvadores

yachar
06 de Julio del 2004
gracias.
la idea es buena...pero tengo un problema
se me abre la pagina, pero no rellena el formulario, y dice "Acceso denegado" en la pagina que utilizo para acceder a la otra.
el codigo que he utilizado es este:

<html>
<head>
<title>RellenarForm</title>
</head>
<script>
var timer
function enviar(){
miW=window.open("XXXXXX","miW")
timer=setInterval(rellenar,500)
}

function rellenar(){
miW.document.getElementByName("user").value="XXXXXXXXXXXXX";
miW.document.getElementByName("pass").value="XXX";
miW.document.getElementByName("login").submit();
clearInterval(timer)
}
</script>
<body bgcolor="#FFFFFF" text="#000000">
<a href="#" onclick="Javascript:enviar()">Rellenar y enviar formulario de la pagina FormRemoto.htm</a><br>
</body>
</html>

el fallo me lo da al poner:
miW.document.getElementByName("user").....en esa linea
alguna sugerencia???
(a todo esto, yo no se si el metodo getElementByName se puede usar...es que no conozco los "id" de los textbox, tan solo el "name")

saludos! y gracias por la respuesta.

rsalvadores
06 de Julio del 2004
He encontrado varios errores:

No es getElementByName, es getElementsByName (con "s" entre la 't' y la 'B').

Tampoco has puesto el if de la función rellenar(). Este sirve para que solo ejecute el contenido de la función cuando la nueva pagina este cargada (por eso lo del setInterval).

Con todas estas variaciones, !! chantatachan !!... tampoco me funciona.

Así que probe cambiando esta función y parece que va bien.

function rellenar(){
if (miW.document.login("user")){
miW.document.login("user").value="XXXXXX"
miW.document.login("pass").value="XXX"
miW.document.login.submit()
clearInterval(timer)
}
}

donde imagino que 'login' es el name del form.

Suerte

rsalvadores

yachar
06 de Julio del 2004
pues me sigue diciendo acceso denegado, en donde esta el "if". me lo dice en cualquier referencia a miW.document....

aun asi, muchas gracias por tu ayuda, que yo de esto no tengo ni idea y me viene muy bien:)
saludos!