Comunidad de diseño web y desarrollo en internet online

Problema con registro de usuarios

Citar            
MensajeEscrito el 24 Sep 2011 06:45 pm
como van?

tengo un problemilla con el registro de usuarios.. y no pillo la solucion al error.... les dejo el formulario y el codigo php.... el error que me entrega es el siguiente

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Formulario!! registro.html

Código HTML :

<head>
<title>

</title>
</head>

<font face="Arial, Helvetica, sans-serif">
<font size="2">
<body link="#e5e5e5" vlink="eoeoeo">
<p align="center">
<strong>
FORMULARIO DE REGISTRO DE USUARIOS
</strong>
<br>
<br>
Inserte los datos que a continuación se solicitan para registrar a un usuario.
<form name="contacto" method="post" action="registrocodificado.php">
<p align="left">
<strong>
Nombre:
</strong>
<br />
<input name="nombre" type="text" value="" size="50">
<br><br>

<strong>
Apellido Paterno:
</strong>
<br>
<input name="apellidopaterno" type="text" value="" size="50">
<br><br>

<strong>
Apellido Materno:
</strong>
<br>
<input name="apellidomaterno" type="text" value="" size="50">
<br><br>


<strong>
Nombre de Usuario:
</strong>
<br>
<input name="usuario" type="text" value="" size="50">
<br><br>

<strong>
Contraseña:
</strong>
<br>
<input name="password" type="text" value="" size="50">
<br><br>

<strong>
E-mail:
</strong>
<br>
<input name="email" type="text" value="" size="50">
<br><br>

<input type="submit" name="enviar" value="Enviar">
</p>
</form>



Codigo del php registrocodificado.php

Código PHP :

<?php include ('conexion.php')?>

<?php
// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// comprobamos que el formulario no envie campos vacios
if(!empty($_POST['nombre']) && $_POST['apellidopaterno'] && $_POST['apellidomaterno'] && $_POST['apellidomaterno'] && $_POST['usuario'] && $_POST['password'] && $_POST['email']){
// creamos las variables y les asignamos los valores a insertar
$nombre = $_POST['nombre'];
$apellidopaterno = $_POST['apellidopaterno'];
$apellidomaterno = $_POST['apellidomaterno'];
$usuario = $_POST['usuario'];
$password = $_POST['password'];
$email = $_POST['email'];
$contrasena = md5('$password');

$sqluser = mysql_query("INSERT into usuarios (nombre, apellido_paterno, apellido_materno, usuario, password, email, creacion) VALUES ('$nombre', '$apellidopaterno', '$apellidomaterno', '$usuario', '$contrasena', '$email', NOW()", $connection) or die(mysql_error());

// enviamos un mensaje de exito
$mensaje1 = "Datos ingresados con éxito";
print "<script>alert('$mensaje1')</script>";
//print("<script>window.location.replace('Mantencion.php');</script>");
echo "<meta http-equiv='refresh' content='0;URL=muestra_noticias.php'>";
}else{
//si el formulario viene vacio
//enviamos un mensaje de error
$mensaje2 = "Debe ingresar los datos";
print "<script>alert('$mensaje2')</script>";
echo "<meta http-equiv='refresh' content='0;URL=registro.html'>"; 
}
}

?>


Ojala me puedan ayudar...

Saludos y gracias

Por PayaLitron

7 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 25 Sep 2011 10:32 am
es un error en sql no estas cerrando el parentesis de VALUES() en la consulta

Por bray

65 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2011 03:30 pm
ufff como no lo vi.... muchas gracias man.... =D... otra consulta.. le puedo agregar una vadena al md5 para hacer la encriptacion mas segura?

Saludos

Por PayaLitron

7 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 25 Sep 2011 04:59 pm
La encriptacion md5 es un metodo de encriptacion que emplea funciones hash, las funciones hash son imposibles de revertir es decir un usario introduce una contraseña y la contraseña se cifra transformandose en una secuencia de 50 caracteres aparentemente aleatorios, esta cadena es la que se almacena en la BD de datos y cuando un usario introduce una contraseña para acceder , el md5 la codifica y la compara con la de la BD para ver si coincide , el unico inconveniente es que una codificacion puede ser generada por mas de una clave

¿Que te quiero decir con esto ? que es imposible que la encriptacion md5 sea mas segura ya que es "imposible" de descifrar, aun sabiendo la codificacion de la clave es imposible saber que cadena la genero a partir de esa clave.

El problema actual es que hay diccionarios de cadenas codificadas en md5 y la cadena que las genero por lo tanto si alguien es capaz de acceder a tu BD y ver las contraseñas
podria colocarl la codificacion en google y saldria una palabra coincidente con esa codificacion con lo cual se podria engañar a la BD

¿Como evitar esto? ya que md5 es de los standares mas usados te recomiendo usar sha1() como funcion de codificacion que en teoria es algo mas segura que md5() (no puedo asegurar que esto sea cierto, pero lo he leido en varios libros) otra cosa que puedes hacer es Aconsejar cada cierto tiempo (mensualmente por ejemplo) al usuario para que cambie su contraseña.

Un saludo

Por bray

65 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2011 05:02 pm
muchas muchas gracias man revisare lo del sha1..

Saludos

Por PayaLitron

7 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.