Foros del Web » Programando para Internet » PHP »

repetición de usuarios

Estas en el tema de repetición de usuarios en el foro de PHP en Foros del Web. muy buenas os escribo por que estoy creando un formulario y necesito que los campos de identificación en este caso el campo con nombre tienda ...
  #1 (permalink)  
Antiguo 16/09/2011, 08:48
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
repetición de usuarios

muy buenas os escribo por que estoy creando un formulario y necesito que los campos de identificación en este caso el campo con nombre tienda si se repite en la base de datos me de un aviso al insertarlo en el formulario el caso es que me avisa de que se repite el campo en la tabla pero al pasar de pagina una vez apretado el botón del formulario

como podría hacerlo para que me avisara en el momento de insertarlo en el campo de texto .

este es la pag del formulario :

Código HTML:
Ver original
  1. <form method="post" name="form1" id="form1" action="controlclientes/datoscliente.php">
  2.   <table align="center">
  3.     <tr valign="baseline">
  4.       <td nowrap="nowrap" align="right">Tienda:</td>
  5.       <td><input name="tienda" type="text" id="tienda" value="" size="32" /></td>
  6.     </tr>
  7.     <tr valign="baseline">
  8.       <td nowrap="nowrap" align="right">Email:</td>
  9.       <td><input name="email" type="text" id="email" value="" size="32" /></td>
  10.     </tr>
  11.     <tr valign="baseline">
  12.       <td nowrap="nowrap" align="right">Pasword:</td>
  13.       <td><input name="pasword" type="password" id="pasword" value="" size="32" /></td>
  14.     </tr>
  15.     <tr valign="baseline">
  16.       <td nowrap="nowrap" align="right">Tipo_de_tienda:</td>
  17.       <td><input name="tipo_de_tienda" type="text" id="tipo_de_tienda" value="" size="32" /></td>
  18.     </tr>
  19.     <tr valign="baseline">
  20.       <td nowrap="nowrap" align="right">&nbsp;</td>
  21.       <td><input type="submit" onclick="MM_validateForm('tienda','','R','email','','RisEmail','pasword','','R','tipo_de_tienda','','R');return document.MM_returnValue" value="Insertar registro" /></td>
  22.     </tr>
  23.   </table>
  24. </form>


aquí la pagina que apunta el formulario datoscliente.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. $_SESSION['email']=$_POST['email'];
  4. $_SESSION['tienda']=$_POST['tienda'];
  5.  
  6. ?>
  7.  
  8. <!--aqui introducimos los datos del formulario de la pag index en la tabla tienda-->
  9. <?php
  10.  
  11. // Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
  12. if(isset($_POST['tienda']) && !empty($_POST['tienda']) &&
  13. isset($_POST['pasword']) && !empty($_POST['pasword']) &&
  14. isset($_POST['email']) && !empty($_POST['email']) &&
  15. isset($_POST['tipo_de_tienda']) && !empty($_POST['tipo_de_tienda'])) {
  16.    
  17.  
  18. // Si entramos es que todo se ha realizado correctamente
  19.  
  20. $link = mysql_connect("localhost","root","");
  21. mysql_select_db("blueberryswebtiendas",$link);
  22.  
  23. // Con esta sentencia SQL insertaremos los datos en la base de datos
  24. mysql_query("INSERT INTO tienda (tienda,pasword,email,tipo_de_tienda)
  25. VALUES ('{$_POST['tienda']}','{$_POST['pasword']}','{$_POST['email']}','{$_POST['tipo_de_tienda']}')",$link);
  26.  
  27. // Ahora comprobaremos que todo ha ido correctamente
  28. $my_error = mysql_error($link);
  29.  
  30. if(!empty($my_error)) {
  31.  
  32. echo "Ha habido un error al insertar los valores. $my_error";
  33.  
  34. } else {
  35.  
  36. echo "Los datos han sido introducidos satisfactoriamente";
  37.  
  38. }
  39.  
  40. } else {
  41.  
  42. echo "Error, no ha introducido todos los datos";
  43.  
  44. }
  45.  
  46. ?>
  #2 (permalink)  
Antiguo 16/09/2011, 09:01
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: repetición de usuarios

Hola si lo que quieres comprobar que el usuario no exista, es muy simple.

Haz un "SELECT * FROM tineda WHERE tienda=''.$_POST['tienda']."'";

Si hay mas de un resultado, pues ya tienes lo que busca.

Pero si lo que busca es que mientras estás escribiendo el nombre en el formulario, te diga ya si existe o no, eso lo tienes que hacer si o si, con ajax, usando el evento onKeyDown o onKeyUp del input text (eso ya es mas complicado de explicar)

Saludos.
  #3 (permalink)  
Antiguo 16/09/2011, 09:13
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: repetición de usuarios

bueno gracias a que no tengo nada que hacer ahorita te ayudare un poco

fijate como quedo aunque pueden haber errores porque no probe nada

formulario.php (la verdad nose como lo llamas tu)

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Documento sin t&iacute;tulo</title>


<
script src="ajax.js"></script>
</head>

<body>

<form method="post" name="form1" id="form1" action="controlclientes/datoscliente.php"> 
* <table align="center">
* * <tr valign="baseline">
* * * <td nowrap="nowrap" align="right">Tienda:</td>
* * * <td><div id="muestra"><input name="tienda" type="text" id="tienda" value="" size="32" onblur="busca(this.form.tienda.value)" /></div></td>
* * </tr>
* * <tr valign="baseline">
* * * <td nowrap="nowrap" align="right">Email:</td>
* * * <td><input name="email" type="text" id="email" value="" size="32" /></td>
* * </tr>
* * <tr valign="baseline">
* * * <td nowrap="nowrap" align="right">Pasword:</td>
* * * <td><input name="pasword" type="password" id="pasword" value="" size="32" /></td>
* * </tr>
* * <tr valign="baseline">
* * * <td nowrap="nowrap" align="right">Tipo_de_tienda:</td>
* * * <td><input name="tipo_de_tienda" type="text" id="tipo_de_tienda" value="" size="32" /></td>
* * </tr>
* * <tr valign="baseline">
* * * <td nowrap="nowrap" align="right">&nbsp;</td>
* * * <td><input type="submit" onclick="MM_validateForm('tienda','','R','email','','RisEmail','pasword','','R','tipo_de_tienda','','R');return document.MM_returnValue" value="Insertar registro" /></td>
* * </tr>
* </table>
</form>


</body>
</html> 

ajax.js
Código HTML:
function objetoAjax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
  		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}


function busca(tienda){

	divResultado = document.getElementById('muestra');
	
		ajax=objetoAjax();

		ajax.open("GET", "buscar.php?tienda="+tienda);
		ajax.onreadystatechange=function() {
			
			if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) {

				divResultado.innerHTML = "BUSCANDO INFORMACION DE LA TIENDA "+tienda;
				divResultado.style.display="block";

			}
			if (ajax.readyState==4) {
				divResultado.innerHTML = ajax.responseText;
				divResultado.style.display="block";

			}
		}

		ajax.send(null);
}

buscar.php
Código PHP:
<?php
* * 
if (isset(
$_GET['tienda'])) {
*
$tienda $_GET['tienda'];


        *
        
$link mysql_connect("localhost","root","");
        
mysql_select_db("blueberryswebtiendas",$link);
        *
        
        
$sql mysql_query("select count(tienda) as total from tienda where tienda = '$tienda'",$link) or die (mysql_error());
        
$array mysql_fetch_array($sql);
        
        if (
$array['total'] > 0) {
        
        
?>
        <input name="tienda" type="text" id="tienda" value="<?php echo $tienda?>" size="32" onblur="busca(this.form.tienda.value)" />
        <?php echo "Ya existe esta tienda"//aqui despues tu le colocas el diseño que quieras ?>
        <?php 
        
} else {
        
?>
        
        <input name="tienda" type="text" id="tienda" value="<?php echo $tienda?>" size="32" onblur="busca(this.form.tienda.value)" />
        <?php echo "Tienda Nueva"//aqui despues tu le colocas el diseño que quieras ?>
        
        <?php 
        
}
}
*
?>

prueba y me avisas a ver que tal

PostData: No tengo idea de donde salieron esos * yo no los coloque, ni salen en mi codigo
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #4 (permalink)  
Antiguo 16/09/2011, 09:16
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: repetición de usuarios

ok muchas gracias voy aprobar inmediatamente muchas gracias pruebo y te digo gracias gracias por que estoy por desesperarme
  #5 (permalink)  
Antiguo 16/09/2011, 09:38
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: repetición de usuarios

perdona pero me da un problema, me manda este error

The requested URL /blueberryswebtiendas/buscar.php was not found on this server.

he cambiado el nombre en el archivo ajax.js por datoscliente.php pero nada
  #6 (permalink)  
Antiguo 16/09/2011, 10:13
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: repetición de usuarios

ahora funciona solo que cuando se repite el usuario debería poder frenar la pagina para que no vaya ala siguiente, merci por el aporte nunca he usado ajax
  #7 (permalink)  
Antiguo 16/09/2011, 10:32
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: repetición de usuarios

no puedes cambiar el nombre del archivo o por lo menos la extension del mismo, ya que es un archivo javascript y debe terminar en .js

por otra parte el error que te dio es que no subistes el archivo que te coloque llamado buscar.php.

en la misma carpeta de tu servidor debes tener

formulario.php (nose como lo llamas tu)
ajax.js
buscar.php

estos 3 archivos para que todo funcione bien
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #8 (permalink)  
Antiguo 16/09/2011, 11:53
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: repetición de usuarios

no ya esta solucionado funciona bien si se repite el nombre me marca ya existe y si no se repite pone tienda nueva el problema es que igualmente me cambia de pagina necesitaría que si el usuario se despista le mantenga en ese formulario me entiendes
  #9 (permalink)  
Antiguo 16/09/2011, 12:14
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: repetición de usuarios

ahh ok ya te entendi bueno pero lamentablemente como ya no tengo tiempo ahorita no puedo terminarte de ayudar pero te explico algo rapido

asi como te hice este ejemplo guiate y haz una funcion para el boton de Insertar registro, en el evento OnClick

y alli vuelves a preguntar si existe la tienda y no lo dejas enviar o de lo contrario que envie
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #10 (permalink)  
Antiguo 16/09/2011, 12:35
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: repetición de usuarios

mmmm bueno muchas gracias el archivo ajax no lo entendí mucho por que es la primera vez que veo esto pero lo estudiare ahora probare esto que me dices muchas gracias chico te debo dos jejej o mas gracias de verdad

Etiquetas: mysql, registro, sql, tabla, usuarios, formulario
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:09.