Foros del Web » Programando para Internet » ASP Clásico »

error dado al ejecutar

Estas en el tema de error dado al ejecutar en el foro de ASP Clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 01/07/2008, 04:46
 
Fecha de Ingreso: diciembre-2007
Mensajes: 179
Antigüedad: 16 años, 5 meses
Puntos: 0
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
  #2 (permalink)  
Antiguo 01/07/2008, 07:16
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: error dado al ejecutar

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

...

cooooodigo, joven, coooodigo
  #3 (permalink)  
Antiguo 01/07/2008, 07:49
 
Fecha de Ingreso: diciembre-2007
Mensajes: 179
Antigüedad: 16 años, 5 meses
Puntos: 0
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
  #4 (permalink)  
Antiguo 01/07/2008, 10:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 179
Antigüedad: 16 años, 5 meses
Puntos: 0
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:21.