Foros del Web » Programando para Internet » PHP »

web en wamp funciona ok. en host mal

Estas en el tema de web en wamp funciona ok. en host mal en el foro de PHP en Foros del Web. hola miren tengo un codigo que tiene un formulario , tiene un input text... que por rara ocasion le hice que funciones dos eventos BLUR ...
  #1 (permalink)  
Antiguo 10/05/2012, 11:21
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
web en wamp funciona ok. en host mal

hola miren tengo un codigo que tiene un formulario ,
tiene un input text... que por rara ocasion le hice que funciones dos eventos BLUR Y ONBLUR..

PERO FUNCIONA:.probando la web desde mi wamp, pero en 000webhost la parte del ajax no lo detecta, no ejecuta nose.. no es un problema de dom o no se que... la funcion ajax. es donde marque mas abajo que es la mas importante

EL eVENTO:

BLUR: toma el valor. por medio de ajax. verifica si esta disponible. el usuario en la base de datos. y devuelve un texto , que en medio del ajax,

si el texto devuelto es "usuario disponible" este texto aparece en un div amarillo
si el texto devuelto es "usuario no disponible" este texto aparece en un div rojo y el el texto del input donde se ingreso el usuario se vacia.

ONBLUR: verifica si hay espacios.en blanco. no que este vacio. si no espacios en blanco. de ser asi. coloca el input vacio...

bueno el tema es que en mi web.desde wamp. (servidor local) funciona.

pero cuando lo subi a 000webhost no funciona ...

verifiquen aca...

si quieren...

ropadeliv.net84.net

el codigo es masomenos asi


del formulario...


Código PHP:
<form name="frm" id="frm"  method="post" onsubmit="return validar(this)">
<
fieldset id="form">
<
legend ><class="let_rub2">Registro de usuario</p></legend>
<
ol


    <
li><label>Usuario: </label><input type="text" onBlur="return valida_form(this)" id="usu" name="usu" size="25" /></li><span id="resultados" name="resultados" ></span>

    <
p align="center"><input type="reset" name="limp" value="Limpiar" />
    <
input name="env" type="submit" value="Registrarse" /></p>
      </
fieldset>
</
form


del ajax...




esto hace on ONBLUR
Código PHP:

function LimpiaEspacios(Obj)
{
var 
texto Obj.value;
//limpiamos de espacios en blanco el texto
var texto_limpio texto.replace(/^s+|s+$/g,"");

if (
texto_limpio=="")
{
Obj.value "";
Obj.focus();
return 
true;
}
else
{
return 
false;
}
}

function 
valida_form(elemento)
{
if (
LimpiaEspacios(elemento))
{
document.getElementById("parche").style.display="block";
document.getElementById("parche").style.visibility="visible";
return 
false;
}
else
{
document.getElementById("parche").style.display="hidden";
document.getElementById("parche").style.visibility="hidden";
}

return 
true;


***************************************esto hace por BLUR


esta parte del ajax es la mas importante... .

Código PHP:



function procesarEventos()
{
  var 
resultados document.getElementById("resultados");
  if(
conexion1.readyState == 4)
  {
    
resultados.innerHTML conexion1.responseText;
    if (
conexion1.responseText=='Usuario no disponible')     
{
     
resultados.style.backgroundColor='#f00';
      var 
feo document.getElementById("usu"); 
      
feo.value="";
     }
    else
      
resultados.style.backgroundColor='#ff0';

  } 
  else 
  {
    
resultados.innerHTML 'Procesando...';
  }




por las dudas les dejo el codigo completol.




Código PHP:


addEvent
(window1,'load',inicializarEventos,false);


function 
inicializarEventos()
{
  var 
ref=document.getElementById('usu');
  
addEvent(ref,'blur',enviarNombre,false);
  
    
  }



var 
conexion1;
function 
enviarNombre() 
{



  
conexion1=crearXMLHttpRequest();
  
conexion1.onreadystatechange procesarEventos;
  
conexion1.open('POST','verificarnombre.php'true);
  
conexion1.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  
conexion1.send(retornarDatos());  
}

function 
retornarDatos()
{
  var 
cad='';
  var 
nom=document.getElementById('usu').value;
  
cad='usu='+encodeURIComponent(nom);
  return 
cad;
}


function 
procesarEventos()
{
  var 
resultados document.getElementById("resultados");
  if(
conexion1.readyState == 4)
  {
    
resultados.innerHTML conexion1.responseText;
    if (
conexion1.responseText=='Nombre no disponible')
      {
      
resultados.style.backgroundColor='#f00';
document.getElementById("usu").value="";
      }
    else
      
resultados.style.backgroundColor='#ff0';

  } 
  else 
  {
    
resultados.innerHTML 'Procesando...';
  }
}


//***************************************
//Funciones comunes a todos los problemas
//***************************************

function addEvent(elemento,nomevento,funcion,captura)
{
  if (
elemento.attachEvent)
  {
    
elemento.attachEvent('on'+nomevento,funcion);
    return 
true;
  }
  else  
    if (
elemento.addEventListener)
    {
      
elemento.addEventListener(nomevento,funcion,captura);
      return 
true;
    }
    else
      return 
false;
}

function 
crearXMLHttpRequest() 
{
  var 
xmlHttp=null;
  if (
window.ActiveXObject
    
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  else 
    if (
window.XMLHttpRequest
      
xmlHttp = new XMLHttpRequest();
  return 
xmlHttp;
}



var 
conexion1;
function 
enviarNombre() 
{
  
conexion1=crearXMLHttpRequest();
  
conexion1.onreadystatechange procesarEventos;
  
conexion1.open('POST','verificarnombre.php'true);
  
conexion1.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  
conexion1.send(retornarDatos());  
}

function 
retornarDatos()
{
  var 
cad='';
  var 
nom=document.getElementById('usu').value;
  
cad='usu='+encodeURIComponent(nom);
  return 
cad;
}


function 
procesarEventos()
{
  var 
resultados document.getElementById("resultados");
  if(
conexion1.readyState == 4)
  {
    
resultados.innerHTML conexion1.responseText;
    if (
conexion1.responseText=='Usuario no disponible')     
{
     
resultados.style.backgroundColor='#f00';
      var 
feo document.getElementById("usu"); 
      
feo.value="";
     }
    else
      
resultados.style.backgroundColor='#ff0';

  } 
  else 
  {
    
resultados.innerHTML 'Procesando...';
  }
}



//***************************************
//Funciones comunes a todos los problemas
//***************************************
function addEvent(elemento,nomevento,funcion,captura)
{
  if (
elemento.attachEvent)
  {
    
elemento.attachEvent('on'+nomevento,funcion);
    return 
true;
  }
  else  
    if (
elemento.addEventListener)
    {
      
elemento.addEventListener(nomevento,funcion,captura);
      return 
true;
    }
    else
      return 
false;
}

function 
crearXMLHttpRequest() 
{
  var 
xmlHttp=null;
  if (
window.ActiveXObject
    
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  else 
    if (
window.XMLHttpRequest
      
xmlHttp = new XMLHttpRequest();
  return 
xmlHttp;


el php que hace la consulta mysql y devuelve un valor...



Código PHP:


<?php
header
('Content-Type: text/html; charset=ISO-8859-1');

$conexion=mysql_connect("localhost","root","pass") or
    die(
"Problemas en la conexion");
mysql_select_db("bbdd",$conexion) or
    die(
"Problemas en la selección de la base de datos");
$registro=mysql_query("select * from usuarios where usuario='$_REQUEST[usu]'",$conexion) or
  die(
"Error:".mysql_error());
 if (
mysql_fetch_array($registro))
   echo 
'Usuario no disponible';
  else
   echo 
'Usuario disponible';
mysql_close($conexion);
?>



la conexion en la web, 000webhost, muestra si es usuario disponible o no ,,, pero no me aparece de color naranaja ni rojo ni tampoco me vacia el input , en el caso de ser usuario no disponible. como sucede cuando pruebo mi web desde mi wamp.. servidor local...

bueno gracias ...

Última edición por vani18; 10/05/2012 a las 11:28
  #2 (permalink)  
Antiguo 10/05/2012, 11:42
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: web en wamp funciona ok. en host mal

para empezar tanto blur como onblur son el mismo evento, además de que asignas la función inicializarEventos() en varias partes y no donde empieza el código a ejecutarse, ni de dónde sale window1.

recuerda que no puedes asignar eventos a los objetos hasta que el DOM esté cargado, y no veo mención al evento onload del body.

en aja aparte de verificar conexion1.readyState == 4 debes de comprobar tambien conexion1.status == 200, consulte un manual de AJAX

por otro lado servidores gratuitos suelen interceptar cada respuesta y enviar una serie de publicidad, por lo cual corromperían incluso tus respuestas ajax, impidiéndote hacer comprobaciones con js
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 10/05/2012 a las 11:51
  #3 (permalink)  
Antiguo 10/05/2012, 13:10
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: web en wamp funciona ok. en host mal

hola mira , ahoa me tengo q ir. lei un poco lo que me decis. mas tarde lo analizo.

lo raro , es que aca en mi pc-servidor-wamp funciona perfectamente el codigo...

pero en la web , no ... entiendo que tambien depende de la comunicacion . cliente servidor.. de sde la web... siempre puede haber un error...
pero en este caso no se lo que pasa...

*** la idea principal que tengo es que cuando dice el mensaje de "usuario no disponible" me vacie el input, y NO que me quede el texto. despues lo del div con el color diferente es lo de menos , por que vaciandolo. cuando el usuario quiera registrarse, habra un javascript que revisara todos los input. si estan vacios no envia el formulario de registro....


hasta pense en que en vez. de imprimir "usuario no disponible" sobre el div. me imprima una etiqueta HTML , de un input hidden , con el value... "usuario no disponible" o "usuario disponible" , luego el javascript que revisa todos los input, incluyedo a este nuevo que se agrego... vea si coincide con el value que se le asigno.. y dependiendo envie o no el formulario... ademas de que esten validados los demas input , check , etc...

o no se que otra solucion . puedo encontrar,..

gracias ,...
  #4 (permalink)  
Antiguo 10/05/2012, 14:55
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: web en wamp funciona ok. en host mal

En el servidor 000webhost, siempre te pone un anuncio al final de la pagina, por lo que el ajax no devolvera nada correcto. Si llega a ser este tu problema, lo que tenes que hacer es agregar un die en tu codigo:


Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/html; charset=ISO-8859-1');
  3.  
  4. $conexion=mysql_connect("localhost","root","pass") or
  5.     die("Problemas en la conexion");
  6. mysql_select_db("bbdd",$conexion) or
  7.     die("Problemas en la selección de la base de datos");
  8. $registro=mysql_query("select * from usuarios where usuario='$_REQUEST[usu]'",$conexion) or
  9.   die("Error:".mysql_error());
  10.  if (mysql_fetch_array($registro))
  11.    echo 'Usuario no disponible';
  12.   else
  13.    echo 'Usuario disponible';
  14. mysql_close($conexion);
  15.  
  16. die();
  17. ?>
  #5 (permalink)  
Antiguo 10/05/2012, 22:09
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: web en wamp funciona ok. en host mal

mil gracias ,!
calculo que es die () es como un else...
pero por que era eso!!=? bueno ya funciona...

Etiquetas: formulario, html, mysql, registro, sql, wamp, usuarios, hosts
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 08:33.