Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/09/2007, 07:29
finord
 
Fecha de Ingreso: mayo-2005
Mensajes: 51
Antigüedad: 19 años, 11 meses
Puntos: 0
PRoblema enviando datos mediante ajax

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