Hola, he estado probando un script en localhost para enviar datos a un archivo php que este lo escribe en la bd, en localhost no he tenido ningun problema(appser), pero al subirlo al hosting me da este error:
Cita: Forbidden
You don't have permission to access /p/registro.php on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/1.3.37 Server at
URL Port 80
Pero he observado que solo se produce cuando hay una gran numero de "caracteres" en el campo texto, cuando no hay mucho lo realiza correctamente. Si alguien me puede decir porque puede ser.
El script :
Código:
function addViajeNuevo(){
//donde se mostrarб lo resultados
divResultado = document.getElementById('resultado');
divResultado.innerHTML= '<img src="anim.gif">';
//valores de las cajas de texto
//$---> Apartir de aqui aсadir para los demas dat_$
nom=document.nuevo_viaje.nombre.value;
desc=document.nuevo_viaje.descripcion.value;
prc=document.nuevo_viaje.precio.value;
tmp=document.nuevo_viaje.tiempo.value;
txt=document.nuevo_viaje.texto.value;
img=document.nuevo_viaje.imagenes.value;
ofr=document.nuevo_viaje.oferta.value;
//instanciamos el objetoAjax
ajax=objetoAjax();
//uso del medoto POST
//archivo que realizarб la operacion
//registro.php
ajax.open("POST", "registro.php",true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divResultado.innerHTML = ajax.responseText
//llamar a funcion para limpiar los inputs
LimpiarCampos();
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores
ajax.send("texto="+txt+"&nombre="+nom+"&descripcion="+desc+"&precio="+prc+"&tiempo="+tmp+"&imagenes="+img+"&oferta="+ofr)
}
function LimpiarCampos(){
document.nuevo_viaje.nombre.value="";
document.nuevo_viaje.describcion.value="";
document.nuevo_viaje.tiempo.value="";
document.nuevo_viaje.text.value="";
document.nuevo_viaje.nombre.focus();
}
function eliminarDato(viajeid){
//donde se mostrarб el resultado de la eliminacion
divResultado = document.getElementById('resultado');
//usaremos un cuadro de confirmacion
var eliminar = confirm("De verdad desea eliminar este dato?")
if ( eliminar ) {
//instanciamos el objetoAjax
ajax=objetoAjax();
//uso del medotod GET
//indicamos el archivo que realizarб el proceso de eliminaciуn
//junto con un valor que representa el id del empleado
ajax.open("GET", "eliminacion.php?viajeid="+viajeid);
divResultado.innerHTML= '<img src="anim.gif">';
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divResultado.innerHTML = ajax.responseText
}
}
//como hacemos uso del metodo GET
//colocamos null
ajax.send(null)
}
}
Hablando con el SAT del hosting me han dicho esto, pero no se mucho al respecto y no se como arreglarlo.
Cita: Mirando los logs el error que veo para p/registro.php es el siguiente:
quote:[Tue Sep 18 01:27:26 2007] [error] [client 80.30.6.15] mod_security: Access denied with code 403. Error parsing POST parameters: Error normalising parameter value: Invalid
URL encoding detected: invalid characters used [hostname "URL"] [uri "/p/registro.php"]
Lo que significa que el mod_security detecta que la URL está mal codificada.
gracias y salu2