Retroceder   Foros del Web > Programación para sitios web > ASP Clásico

Respuesta
 
Herramientas Desplegado
Antiguo 01-jul-2008, 04:46   #1 (permalink)
xhisna ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2007
Mensajes: 104
error dado al ejecutar

Hola amigos vereis, estoy validando un registro en una web, el problema esk tengo un apartado que si pulsas no, pues las demas opciones no se pueden escoger. Al darle a registrar tengo un error que me dice ""Un índice de matriz está fuera del intervalo"". Imagino que seran los datos vacios que se le mandan o algo. xk cuando se rellena todo no da problema.
Los campos a rellenar tampoco debe de dar mucho problema pues uno es un texto y otro una opcion con numero que esta en Elige y tiene valor 0, por lo que en la bd deberia meter un 0. No se como solucionar esto, si alguien pudiese ayudarme seria estupendo. Gracias
xhisna está desconectado   Responder Citando
Antiguo 01-jul-2008, 07:16   #2 (permalink)
Moderador
Myakire llegará a ser famoso muy prontoMyakire llegará a ser famoso muy prontoMyakire llegará a ser famoso muy prontoMyakire llegará a ser famoso muy pronto
 
Avatar de Myakire
 
Fecha de Ingreso: noviembre-2002
Mensajes: 6.619
Enviar un mensaje por Yahoo  a Myakire
Respuesta: error dado al ejecutar

creo te has equivocado de foro, quizá querías entrar a adivinosdelweb.com

...

cooooodigo, joven, coooodigo
Myakire esta en línea ahora   Responder Citando
Antiguo 01-jul-2008, 07:49   #3 (permalink)
xhisna ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2007
Mensajes: 104
Respuesta: error dado al ejecutar

<p><label id="mascota" for="mascota">Mascota</label>
<input type="radio" name="mascota" value="1" checked="" onclick = "nmascota.disabled=false; tipo.disabled=false"/>Si
<input type="radio" name="mascota" value="0" onclick = "nmascota.disabled=true; tipo.disabled=true" />No

</p>
</fieldset>
</div>
<div id="mascota">
<fieldset>
<legend>Datos Mascota</legend>
<p><label id="label_nmascota" for="nmascota">Nombre:</label>
<input type="text" id="nmascota" name="nmascota" disabled="disabled" />
</p>
<p><label id="label_tipo" name="tipo">Especie:</label>
<select id="tipo" name="tipo" class="TitleColor required validate-selection" disabled="disable">
<option value="0">Elige</option>
<option value="5">Perro</option>
<option value="2">Gato</option>
<option value="3">Pajaro</option>
<option value="1">Conejo</option>
<option value="4">Peces</option>
<option value="6">Roedores</option>
<option value="7">Tortugas</option>
<option value="8">Otros</option>
</select></p>




</fieldset>


Bueno ese es el codigo html y donde tengo el problema es:


function compruebaemail(email){
var res= false;
var expr= new RegExp ("^(\\w)+([\.-]?(\\w)+)*@(\\w)+([\.-]?(\\w)+)*(\.(\\w){2,3})+$");
var p = expr.exec(email);
if (p)
{
res=true;
}
return (res);
}
function compruebatelefono(telefono){
var res = false;
var expr = new RegExp ("^[0-9]{2,3}-? ?[0-9]{6,7}$");
var p = expr.exec(telefono);

if (p)
{
res= true;
}
return (res);

}

//lo primero que hago es declarar variables para poder
//asignarles los datos que le corresponden
if (Request.Form.Count>0){
}else if(Request.QueryString.Count>0){
var errores = new Array ();//nos va a detectar los errores que se produzcan
var res = true;
var nick = Request.QueryString(1);
var contrasenia = Request.QueryString(2);
var nombre = Request.QueryString(3);
var apellidos = Request.QueryString(4);
var email = Request.QueryString(5);
var telefono = Request.QueryString(6);
var mascota = Request.QueryString(7);
var nombremascota = Request.QueryString(8);
var especie = Request.QueryString(9);

var mensaje;

//empiezo con el chequeo del formulario

if (nick == "")
{
errores.push ("Tiene que escribir un nombre de usuario")
res = false;
}
if (contrasenia == "")
{
errores.push ("Debe de escribir una contraseña");
res = false;
}

if (nombre == "")
{
errores.push ("El campo nombre no puede estar vacío");
res= false;
}
if (apellidos == "")
{
errores.push ("El campo apellidos no puede estar vacío");
res = false;
}
if (compruebaemail(email)== false && email!="")
{
errores.push ("Compruebe que ha escrito de forma correcta su correo");
res = false;
}
if (email=="")
{
errores.push ("El campo email no puede estar vacio");
res = false;
}
if(compruebatelefono(telefono)==false && telefono!="")
{
errores.push("Debe de indicar un telefono de contacto");
res = false;
}
if(telefono=="")
{
errores.push("El campo telefono no debe estar vacio");
res = false;
}

//aqui acaba el chequeo de los datos

if (errores.length>0) ///compruebo si hay algun error
{
res = false;
mensaje="SE HAN DETECTADO VARIOS ERRORES:</br>";
var i;
for (i=0; i<errores.length; i++) //Bucle que recorre la tabla de #errores# creando una cadena que se mostrará en pantalla
{
mensaje += (i+1);
mensaje += ".- ";
mensaje += errores[i];
mensaje += "</br>";

}
}
}
%>
<%

if(res == true)
{
try{
var conexion= Server.CreateObject ("ADODB.Connection");
conexion.Open ("Provider=Microsoft.Jet.OLEDB.4.0;"+" Data Source = "+Server.MapPath ("basedatos/bd.mdb"));
}
catch (e){
Response.Write ("Error1:");
Response.Write ("<b>" + e.description + "</b>");
Response.End();}

var sqlComparaNick = "SELECT * FROM registro WHERE (nick = '"+nick+"' or email= '"+email+"');";
var sqlContrasenia;
var pass = Server.CreateObject ("ADODB.Recordset");
var SQL = "Insert Into registro(nick,contrasenia,nombre,apellidos,email,t elefono,mascota,nombremascota,especie) Values ('"+nick+"','"+contrasenia+"','"+nombre+"','"+apel lidos+"','"+email+"','"+telefono+"','"+mascota+"', '"+nombremascota+"', '"+especie+"');";


try{
conexion.BeginTrans();
var rs = conexion.Execute (sqlComparaNick);
//compruebo que no hay un usuario registrado con el mismo nick
if (rs.eof){
conexion.Execute(SQL);

}
else
{
Response.Write ("<id = notificacion>Ya existe ese usuario. Debe registrarse con otro usuario.</id>");
Response.Write("<h4 align=center ><button onclick='javascript:history.back()'>Volver</button></h4>");
Response.End();//termina la ejecucion de la pag asp
}
sqlPass = "SELECT contrasenia FROM registro WHERE nick ='"+nick+"'";
pass.Open (sqlPass, conexion);
Response.Write ("Se ha dado de alta correctamente.");
Response.Write ("Su contraseña es :"+ pass ("contrasenia")+" y su usuario :"+nick);

conexion.CommitTrans ();
conexion.Close();



}catch( e ) {
Response.Write (" error 2 :");
Response.Write ("<b>" +e.description+ "</b>");
Response.Write( "<button onclick ='javascript:history.back()'>Volver</button>");
Response.End();
}

}


else {
Response.Write ("se han detectao errores al enviar los datos");
Response.Write (mensaje);
}




%>

Y algo tengo mal xk con los datos personales me los guarda en la base de datos perfecto, pero con la opcion no del boton radio los otros 2 campos se quedan en blanco o con valor 0, y no se como tratarlo para que no me de errores. Gracias
xhisna está desconectado   Responder Citando
Antiguo 01-jul-2008, 10:36   #4 (permalink)
xhisna ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2007
Mensajes: 104
Respuesta: error dado al ejecutar

Haber vuelvo a tener el mismo error pero ahora al actualizar los datos de lso usuarios. Es decir es un apartado donde cada usuario puede modificar alguno de sus datos.
La sentencia sql que utilizo es
var sql= "UPDATE registro SET contrasenia='"+contrasenia+"',nombre='"+nombre+"', apellidos='"+apellidos+"',email='"+email+"',telefo no='"+telefono+"' WHERE nick='"+nick+"'";"

y me da el dichoso error
# Objeto Request, ASP 0105 (0x80004005)
Un índice de matriz está fuera del intervalo.
/yo/alimales/modificar.asp, línea 86

No se como puedo arreglarlo, ayuda!!!!!!!!!!!plissss
xhisna está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:10.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93