Foros del Web » Programando para Internet » PHP »

Con esto ya termino, conexion SQL

Estas en el tema de Con esto ya termino, conexion SQL en el foro de PHP en Foros del Web. Bien, despues de dar con muchos de vuestros compañeros que me propusieron diferentes codigos, finalmente hice una mezcla de todos, y que parece funcionar, solo ...
  #1 (permalink)  
Antiguo 28/11/2008, 17:48
 
Fecha de Ingreso: noviembre-2008
Mensajes: 100
Antigüedad: 15 años, 5 meses
Puntos: 1
Con esto ya termino, conexion SQL

Bien, despues de dar con muchos de vuestros compañeros que me propusieron diferentes codigos, finalmente hice una mezcla de todos, y que parece funcionar, solo tengo una duda, y es que no se donde colocar la funcion del primer script para que haga su laburo o si falta algo en ese script:

Mira este es mi codigo actual:

Código:
<script language="javascript">
function jsRegistrar()
{
	var Nom = document.getElementById('Nom').value;
	var Cognoms = document.getElementById('Cognoms').value;
	var Email= document.getElementById('Email').value;
        if(Nom == ""){
              alert("Debe ingresar el usuario");
              document.getElementById('Nom').focus();
              return;
        }
        if(Cognoms == ""){
              alert("Debe ingresar el usuario");
              document.getElementById('Cognoms').focus();
              return;
        }
        if(Email== ""){
              alert("Debe ingresar el email");
              document.getElementById('Email').focus();
              return;
        }
</script>


<script type="text/javascript">
function verify_passwords(password1, password2)
{
	// do various checks, this will save people noticing mistakes on next page
	if (password1.value == '' || password2.value == '')
	{
		alert('Escriu les contrasenyes correctament.');
		return false;
	}
	else if (password1.value != password2.value)
	{
		alert('Las contrasenyes no concorden.');
		return false;
	}
	else
	{
		

		var junk_output;

		md5hash(password1, document.forms.register.Contrasenya_md5, junk_output, 0);
		md5hash(password2, document.forms.register.Contrasenyaconfirmacio_md5, junk_output, 0);

		

		return true;
	}
	return false;
}
</script>

<?
if($registrar) {

$host = "localhost";
$user = "ampasant_basquet";
$pass = "50202050";
$db = "ampasant_basquet";

$conectar = mysql_connect($host,$user,$pass);
mysql_select_db($db,$conectar);


$Nom = $_POST['Nom'];


$resp = mysql_query("select * from usuarios where Nom='$Nom'") or die (mysql_error());
$existe = mysql_num_rows($resp);
if($existe == "0") {
mysql_query("insert into usuarios (Nom,Cognoms,Contrasenya,Email) values ('$Nom','$Cognoms','$Contrasenya','$Email')");
echo "Has estat registrat correctament.";
}
else {
echo "Aquest usuari ja es troba registrat.";
mysql_close($conectar); }
}
else {
?>
<form action="registrar.php" name="Formulari" method="post" onsubmit="return verify_passwords(Contrasenya, Contrasenyaconfirmacio);">

<table class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center">

<tr>
	<td class="tcat">Registrar-se a la web de l´AMPA</td>
</tr>
<tr>
	<td class="panelsurround" align="center">
	<div class="panel">
		<div style="width:640px" align="left">

			<div class="smallfont" style="margin-bottom:3px">
				Si et registres, rebràs les ultimes noticies i informacions directament al teu correu
			</div>

			<div class="smallfont" style="margin-bottom:3px">
				<strong>Nom</strong>:<br />
				<input type="text" class="bginput" name="Nom" size="25" maxlength="" value="" id="Nom" style="width: 212px" /><span id="Nom"></span>
			</div> 
                        <div class="smallfont" style="margin-bottom:3px">
				<strong>Cognoms</strong>:<br />
				<input type="text" class="bginput" name="Cognoms" size="25" maxlength="" value="" id="Cognoms" style="width: 212px"/><span id="Cognoms"></span>
			</div>
<fieldset class="fieldset">
				<legend>Contrasenya</legend>

				<table cellpadding="0" cellspacing="3" border="0" width="400">
				<tr>
					<td colspan="2">Introduix la contrasenya per a la teva conta</td>
				</tr>
				<tr>
					<td>
						Contrasenya:<br />
						<input type="password" class="bginput" name="Contrasenya" size="25" maxlength="50" value="" onblur="varfield(1);" id="password_1"/>

					</td>
					<td>
						Confirmar Contrasenya:<br />
						<input type="password" class="bginput" name="Contrasenyaconfirmacio" size="25" maxlength="50" value="" onblur="varfield(2);" id="password_2"/>
						</td>
					</tr>
					<tr>
						<td colspan="2">

							<span id="password_1_status"></span>
						</td>
					</tr>

					<tr>
						<td colspan="2">
							<span id="password_2_status"></span>
					</td>
				</tr>
				</table>

			</fieldset>
			<fieldset class="fieldset">
				<legend>Direcció de Correo Electrònic</legend>
				<table cellpadding="0" cellspacing="3" border="0" width="400">
				<tr>
					<td colspan="2">Escriu una direcció de correu vàlida.</td>
				</tr>

				<tr>
					<td>
						Direcció de Correo Electrònic:<br />
						<input type="text" class="bginput" name="Email" size="25" maxlength="50" value="" dir="ltr" id="Email"/>
					</td>
					<td>
						Confirmar Direcció de Correo Electrònic:<br />
						<input type="text" class="bginput" name="Emailconfirm" size="25" maxlength="50" value="" dir="ltr" id="email_2"/>

						</td>
					</tr>
					<tr>
						<td colspan="2">
							<span id="Email_status"></span>
						</td>
					</tr>
					<tr>
						<td colspan="2">

							<span id="email_2_status"></span>
					</td>
				</tr>

<input type="submit" name="registrar" value="Registrar">
</form>
<?
}
?>
Entonces, el script de la contraseña me va de fabula, pero el otro script no consigo que funcione no se donde colocar la orden para que funcione, y otra cosa que me gustaria es que el mismo script que uso para las contraseñas tambien se usara para los mails

Muchas gracias

Última edición por markitus_11; 29/11/2008 a las 09:58
  #2 (permalink)  
Antiguo 29/11/2008, 02:36
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Con esto ya termino, scripts formulario

Hola

si lo que no te funciona es la parte escrita en java script, pregunta en el foro de js.

en cuanto a la parte de PHP, no esta demasiado bien, no compruebas si llegan los valores del form, y en la consulta a la BBDD solo miras si existe el Nom, tambien deberias comprobar si a ese Nom le corresponde la contraseña escrita, incluso el email.

aqui:

Código PHP:
$resp mysql_query("select * from usuarios where Nom='$Nom'") or die (mysql_error()); 
se podria entrar poniendo cualquier contraseña, pues no compruebas si a ese nom le corresponde una contraseña determinada, y el email deberias hacer lo mismo, para que varios users no se registre con el mismo email.
mirate bien el APORTE, que hay en el foro, sistema de reconocimiento de usuarios, y mira bien como lo hace.

Un saludo

Última edición por jaronu; 29/11/2008 a las 02:42
  #3 (permalink)  
Antiguo 29/11/2008, 08:45
 
Fecha de Ingreso: noviembre-2008
Mensajes: 100
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Con esto ya termino, scripts formulario

Ok, ya presenté la duda en javascript

Bueno, cambie un poco la cosa este es el actual codigo:

Código:
<script language="javascript">
function jsRegistrar()
{
	var Nom = document.getElementById('Nom').value;
	var Cognoms = document.getElementById('Cognoms').value;
	var Contrasenya= document.getElementById('Contrasenya').value;
	var Email= document.getElementById('Email').value;
        if(Nom == ""){
              alert("Debe ingresar el usuario");
              document.getElementById('Nom').focus();
              return;
        }
        if(Cognoms == ""){
              alert("Debe ingresar el usuario");
              document.getElementById('Cognoms').focus();
              return;
        }
        if(Contrasenya== ""){
              alert("Debe ingresar el password");
              document.getElementById('Contrasenya').focus();
              return;
        }
        if(Email== ""){
              alert("Debe ingresar el email");
              document.getElementById('Email').focus();
              return;
        }
</script>


<script type="text/javascript">
function verify_passwords(password1, password2)
{
	// do various checks, this will save people noticing mistakes on next page
	if (password1.value == '' || password2.value == '')
	{
		alert('Escriu les contrasenyes correctament.');
		return false;
	}
	else if (password1.value != password2.value)
	{
		alert('Las contrasenyes no concorden.');
		return false;
	}
	else
	{
		

		var junk_output;

		md5hash(password1, document.forms.register.Contrasenya_md5, junk_output, 0);
		md5hash(password2, document.forms.register.Contrasenyaconfirmacio_md5, junk_output, 0);

		

		return true;
	}
	return false;
}
</script>

<?
if($registrar) {

$host = "localhost";
$user = "ampasant_basquet";
$pass = "50202050";
$db = "ampasant_basquet";

$conectar = mysql_connect($host,$user,$pass);
mysql_select_db($db,$conectar);


$Nom = $_POST['Nom'];
$Email = $_POST['Email'];



$resp = mysql_query("select * from usuarios where Email='$Email'") or die (mysql_error());
$existe = mysql_num_rows($resp);
if($existe == "0") {
mysql_query("insert into usuarios (Nom,Cognoms,Contrasenya,Email) values ('$Nom','$Cognoms','$Contrasenya','$Email')");
echo "Has estat registrat correctament.";
}
else {
echo "Aquest email ja es troba registrat.";
mysql_close($conectar); }
}
else {
?>
<form action="registrar.php" name="Formulari" method="post" onsubmit="return verify_passwords(Contrasenya, Contrasenyaconfirmacio);">

<table class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center">

<tr>
	<td class="tcat">Registrar-se a la web de l´AMPA</td>
</tr>
<tr>
	<td class="panelsurround" align="center">
	<div class="panel">
		<div style="width:640px" align="left">

			<div class="smallfont" style="margin-bottom:3px">
				Si et registres, rebràs les ultimes noticies i informacions directament al teu correu
			</div>

			<div class="smallfont" style="margin-bottom:3px">
				<strong>Nom</strong>:<br />
				<input type="text" class="bginput" name="Nom" size="25" maxlength="" value="" id="Nom" style="width: 212px" /><span id="Nom"></span>
			</div> 
                        <div class="smallfont" style="margin-bottom:3px">
				<strong>Cognoms</strong>:<br />
				<input type="text" class="bginput" name="Cognoms" size="25" maxlength="" value="" id="Cognoms" style="width: 212px"/><span id="Cognoms"></span>
			</div>
<fieldset class="fieldset">
				<legend>Contrasenya</legend>

				<table cellpadding="0" cellspacing="3" border="0" width="400">
				<tr>
					<td colspan="2">Introduix la contrasenya per a la teva conta</td>
				</tr>
				<tr>
					<td>
						Contrasenya:<br />
						<input type="password" class="bginput" name="Contrasenya" size="25" maxlength="50" value="" onblur="varfield(1);" id="password_1"/>

					</td>
					<td>
						Confirmar Contrasenya:<br />
						<input type="password" class="bginput" name="Contrasenyaconfirmacio" size="25" maxlength="50" value="" onblur="varfield(2);" id="password_2"/>
						</td>
					</tr>
					<tr>
						<td colspan="2">

							<span id="password_1_status"></span>
						</td>
					</tr>
					<tr>
						<td colspan="2">
							<span id="password_2_status"></span>
					</td>
				</tr>
				</table>

			</fieldset>
			<fieldset class="fieldset">
				<legend>Direcció de Correo Electrònic</legend>
				<table cellpadding="0" cellspacing="3" border="0" width="400">
				<tr>
					<td colspan="2">Escriu una direcció de correu vàlida.</td>
				</tr>

				<tr>
					<td>
						Direcció de Correo Electrònic:<br />
						<input type="text" class="bginput" name="Email" size="25" maxlength="50" value="" dir="ltr" id="Email"/>
					</td>
					<td>
						Confirmar Direcció de Correo Electrònic:<br />
						<input type="text" class="bginput" name="Emailconfirm" size="25" maxlength="50" value="" dir="ltr" id="email_2"/>

						</td>
					</tr>
					<tr>
						<td colspan="2">
							<span id="Email_status"></span>
						</td>
					</tr>
					<tr>
						<td colspan="2">

							<span id="email_2_status"></span>
					</td>
				</tr>

<input type="submit" name="registrar" value="Registrar">
</form>
<?
}
?>

AHora lo que mando a comprobar es el email

Pero ahora tengo otra duda y es:

Como puedo hacer validar Nom y Cognoms juntos y si no coinciden los dos campos permitir el registro?

Es decir si hay un tal Pepe Mejillon y un tal Pepe Arbusto, no le impida el registro, que solo lo impida si Pepe mejillon se quiere registrar dos veces con el mismo nombre y apellidos

Última edición por markitus_11; 29/11/2008 a las 09:15
  #4 (permalink)  
Antiguo 29/11/2008, 13:12
 
Fecha de Ingreso: noviembre-2008
Mensajes: 100
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Con esto ya termino, conexion SQL

Otra duda, como puedo hacer para que haga la comprovación al final de todo? Es que sino le pasa delante a los scripts, y primero tiene que saltar los scripts.

Y finalmente me gustaria que en lugar de usar echo se usara alert, pero por lo que he visto no hay suficiente con poner alert ('text'), me salta un error, asi que me gustaria tambien que me dijeseis como hacerlo

Este es el codigo actual:

Código:
<script language="javascript">
function jsRegistrar()
{
	var Nom = document.getElementById('Nom').value;
	var Cognoms = document.getElementById('Cognoms').value;

        if(Nom == ""){
              alert("Has d'ingresar el teu nom");
              document.getElementById('Nom').focus();
              if (no_pasa_la_validación) return false;
        }
        if(Cognoms == ""){
              alert("Has d'ingresar els teus cognoms");
              document.getElementById('Cognoms').focus();
              if (no_pasa_la_validación) return false;
        }
}
</script>

<script type="text/javascript">
function verify_passwords(password1, password2)
{
	// do various checks, this will save people noticing mistakes on next page
	if (password1.value == '' || password2.value == '')
	{
		alert('Escriu la contrasenya i la seva confirmació.');
		return false;
	}
	else if (password1.value != password2.value)
	{
		alert('Les contrasenyes no concorden.');
		return false;
	}
	else
	{
		

		var junk_output;

		md5hash(password1, document.forms.register.Contrasenya_md5, junk_output, 0);
		md5hash(password2, document.forms.register.Contrasenyaconfirmacio_md5, junk_output, 0);

		

		return true;
	}
	return false;
}

function verify_emails(email1, email2)
{
	// do various checks, this will save people noticing mistakes on next page
	if (email1.value == '' || email2.value == '')
	{
		alert('Escriu l´email i la seva confirmació.');
		return false;
	}
	else if (email1.value != email2.value)
	{
		alert('Els emails no concorden.');
		return false;
	}
	else
	{
		

		var junk_output;

		md5hash(email1, document.forms.register.Email_md5, junk_output, 0);
		md5hash(email2, document.forms.register.Emailconfirm_md5, junk_output, 0);

		

		return true;
	}
	return false;
}
</script>

<?
if($registrar) {

$host = "localhost";
$user = "ampasant_basquet";
$pass = "50202050";
$db = "ampasant_basquet";

$conectar = mysql_connect($host,$user,$pass);
mysql_select_db($db,$conectar);


$Nom = $_POST['Nom'];
$Email = $_POST['Email'];



$resp = mysql_query("select * from usuarios where Email='$Email'") or die (mysql_error());
$existe = mysql_num_rows($resp);
if($existe == "0") {
mysql_query("insert into usuarios (Nom,Cognoms,Contrasenya,Email) values ('$Nom','$Cognoms','$Contrasenya','$Email')");
echo "Has estat registrat correctament.";
}
else {
echo "Aquest email ja es troba registrat.";
mysql_close($conectar); }
}
else {
?>

<form action="registrar.php" name="Formulari" method="post" onsubmit="return (verify_passwords(Contrasenya, Contrasenyaconfirmacio) && jsRegistrar() && verify_emails(Email, Emailconfirm));">

<table class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center">

<tr>
	<td class="tcat">Registrar-se a la web de l´AMPA</td>
</tr>
<tr>
	<td class="panelsurround" align="center">
	<div class="panel">
		<div style="width:640px" align="left">

			<div class="smallfont" style="margin-bottom:3px">
				Si et registres, rebràs les ultimes noticies i informacions directament al teu correu
			</div>

			<div class="smallfont" style="margin-bottom:3px">
				<strong>Nom</strong>:<br />
				<input type="text" class="bginput" name="Nom" size="25" maxlength="" value="" id="Nom" style="width: 212px" /><span id="Nom"></span>
			</div> 
                        <div class="smallfont" style="margin-bottom:3px">
				<strong>Cognoms</strong>:<br />
				<input type="text" class="bginput" name="Cognoms" size="25" maxlength="" value="" id="Cognoms" style="width: 212px"/><span id="Cognoms"></span>
			</div>
<fieldset class="fieldset">
				<legend>Contrasenya</legend>

				<table cellpadding="0" cellspacing="3" border="0" width="400">
				<tr>
					<td colspan="2">Introduix la contrasenya per a la teva conta</td>
				</tr>
				<tr>
					<td>
						Contrasenya:<br />
						<input type="password" class="bginput" name="Contrasenya" size="25" maxlength="50" value="" onblur="varfield(1);" id="password_1"/>

					</td>
					<td>
						Confirmar Contrasenya:<br />
						<input type="password" class="bginput" name="Contrasenyaconfirmacio" size="25" maxlength="50" value="" onblur="varfield(2);" id="password_2"/>
						</td>
					</tr>
					<tr>
						<td colspan="2">

							<span id="password_1_status"></span>
						</td>
					</tr>
					<tr>
						<td colspan="2">
							<span id="password_2_status"></span>
					</td>
				</tr>
				</table>

			</fieldset>
			<fieldset class="fieldset">
				<legend>Direcció de Correo Electrònic</legend>
				<table cellpadding="0" cellspacing="3" border="0" width="400">
				<tr>
					<td colspan="2">Escriu una direcció de correu vàlida.</td>
				</tr>

				<tr>
					<td>
						Direcció de Correo Electrònic:<br />
						<input type="text" class="bginput" name="Email" size="25" maxlength="50" value="" onblur="varfield(1);" id="email1"/>
					</td>
					<td>
						Confirmar Direcció de Correo Electrònic:<br />
						<input type="text" class="bginput" name="Emailconfirm" size="25" maxlength="50" value="" onblur="varfield(2);" id="email2"/>

						</td>
					</tr>
					<tr>
						<td colspan="2">
							<span id="email1_status"></span>
						</td>
					</tr>
					<tr>
						<td colspan="2">

							<span id="email2_status"></span>
					</td>
				</tr>

<input type="submit" name="registrar" value="Registrar">
</form>
<?
}
?>
  #5 (permalink)  
Antiguo 29/11/2008, 13:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Con esto ya termino, scripts formulario

Cita:
Iniciado por jaronu Ver Mensaje
[...] si lo que no te funciona es la parte escrita en java script, pregunta en el foro de js [...]


por favor, no incluyas el JS mientras sea de PHP el problema... osea, postea solo lo necesario, no todo!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 29/11/2008, 13:39
 
Fecha de Ingreso: noviembre-2008
Mensajes: 100
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Con esto ya termino, conexion SQL

El problema no es ese, el problema es que si pongo el texto escrito en java entonces el php no funciona y he hecho varias preguntas y no todas estan relacionadas con java, y las que lo estan tambien estan estrechamente atadas al php
  #7 (permalink)  
Antiguo 29/11/2008, 13:53
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Con esto ya termino, conexion SQL

Hola

deberias hacer lo que ya otro dia te aconseje, leer un manual basico de php y MySQL.

se pueden comparar o comprovar mas valores en una Clausula WHERE con AND.

Código PHP:
$resp mysql_query("select * from usuarios WHERE Email='$Email' AND Nom = '$Nom'") or die (mysql_error()); 
Un saludo
  #8 (permalink)  
Antiguo 29/11/2008, 14:24
 
Fecha de Ingreso: noviembre-2008
Mensajes: 100
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Con esto ya termino, conexion SQL

Ok, pero como puedo hacer que lo comprueve despues del submit y despues de que salten los scripts?
  #9 (permalink)  
Antiguo 29/11/2008, 14:40
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Con esto ya termino, conexion SQL

Piensa en el flujo de datos, que se ejecuta antes o despues, que hacen los IF ELSE,......

Un saludo
  #10 (permalink)  
Antiguo 29/11/2008, 14:42
 
Fecha de Ingreso: noviembre-2008
Mensajes: 100
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Con esto ya termino, conexion SQL

Es que cada vez que cambio algo de eso me salta un error es por eso que lo pregunto, no podrias darme algo más de info?

Yo lo unico que quiero es que los scripts tengan prioridad sobre la comprobación de datos
  #11 (permalink)  
Antiguo 29/11/2008, 15:09
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Con esto ya termino, conexion SQL

Los scrits de los que hablas son en js?

si es asi pregunta en le foro de js.

Por lo que se, primero se ejecuta js y PHP solo se ejecuta cuando se envian datos al server, en tu caso al hacer submit


Un saludo
  #12 (permalink)  
Antiguo 29/11/2008, 15:25
 
Fecha de Ingreso: noviembre-2008
Mensajes: 100
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Con esto ya termino, conexion SQL

Ok, crei que la orden se tenia que enviar desde php y no js
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 00:28.