Avatar Image
Usuario Novato
Usuario Novato

Hola kiero poner una contraseña para ciertas zonas de mi web, he estado buscando pero yo lo que quiero es que haygan mas de una contraseña, y que tenga usuario y contraseña.

PD : No me hace falta ni registro ni na de eso. Gracias

Avatar Image
Machacateclados
Machacateclados

Bueno, si no te hace falta el registro es porque ya tenés los datos en una Base de Datos.

Lo que tienes que hacer es poner un formulario con los dos campos que quieres. Un campo se llamara "nombre" y el ontro "password". despues haces una consulta a tu base de datos para que escoja la contraseña que corresponda al nic. Si yo fuera tú, limpiaria estos datos. para evitar ataques con html o javascript, usas htmlentities() y para escapar los caracteres especiales para MySQL usas mysql_real_escape_string()... ejemplo;

$nic = mysql_real_escape_string(htmlentities($_POST['nombre']));

ya tienes tu variable que contiene (de manera segura) el nic del usuario, ahora lo agregas a la consulta de la base de datos;

$consulta = mysql_query("SELECT contrasena FROM tabla WHERE nombre = '$nic'", $con);
$valores =mysql_fetch_array($consulta);

Doy por hecho que ya sabes establecer la conexión con la BD. Ahora tienes que ver si la contraseña puesta es la misma a la guardada.

if ($_POST['password'] == $valores['contrasena']){
echo 'Bienvenido';
}else{
echo 'Inserte un nombre de usuario y una contraseña válida';
}

Pero esto es muy inseguro, ¿usaste crypt() en el registro verdad? De lo contrario tendras que agregarlo para que la contraseña se guarde encriptada. Para encriptar una contraseña usas;

$contraseña_encriptada = crypt($_POST['contrasena']);

esto debe de ir en tu programa de registro (También usa los comandos para limpiar un valor en todos tus datos de formulario). Volviendo al log-in, ya tienes una consulta MySQL a una contraseña encriptada, ahora hay que comprobarla con el if()

if ($valores['contrasena'] == crypt($_POST['password'], $valores['contrasena']){
echo 'Bienvenido';
}else{
echo 'Inserte un nombre de usuario y una contraseña válida';
}

el segundo parametro en crypt es para que sepa como comparar las contraseñas, usando el mismo algoritomo que usó en ese valor, o algo así entiendo yo.

Debes agregar junto al echo 'Bienvenido'; el comando $_SESSION['nic'] = $_POST['nombre']; para que se agrege a la sessión. $_SESSION['nic'] vendria siendo la variable que comprovaras en los lados donde quieras ver si un usuario esta conectado. Osease, la comprovación quedaria así

if ($valores['contrasena'] == crypt($_POST['password'], $valores['contrasena']){
echo 'Bienvenido';
$_SESSION['nic'] = $_POST['nombre'];
}else{
echo 'Inserte un nombre de usuario y una contraseña válida';
}

Espero haberte ayudado, si no me expliqué bien, por favor dime en que parte te perdiste.

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 17/Jul/2013, 14:46
delarosa88 Josepepe03312kJul/13
Por: User 7815631, el 12/Ago/2011, 16:51
User 7815631 chavp e.aragona GestionXls43kSep/11
Por: , el 02/Jun/2010, 11:37
Power77 NoSetup.org1996Jun/10
Por: , el 17/May/2010, 17:39
jamon33 GestionXls1113kMay/10
Por: , el 01/Ene/2010, 22:24
luismabi NoSetup.org22kJan/10