Programación Web y Scripting > PHP
hacer login para entrar a una pagina
andres69:
tengo dos archivos php, el primero es para que los usurios se registren y el segundo para que hagan login. Tengo otros dos archivos php,quiero que esos dos archivos en php sean visibles solamente para los usuarios hagan login. Adjunto el codigo de registro y de login. ¿solo tengo que poner session_start() en los otros archivos para que funcione como quiero?
registros.php
--- Código: PHP ---<? // Configura los datos de tu cuenta $dbhost='namelocalhost'; $dbusername='usuario'; $dbuserpass='password'; $dbname='base'; // Conexión a la base de datos mysql_connect ($dbhost, $dbusername, $dbuserpass); mysql_select_db($dbname) or die("Cannot select database"); // Preguntaremos si se han enviado ya las variables necesarias if (isset($_POST["username"])) { $username = $_POST["username"]; $password = $_POST["password"]; $cpassword = $_POST["cpassword"]; $email = $_POST["email"]; // Hay campos en blanco if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL) { echo "<center>un campo está vacio.</center>"; }else{ // ¿Coinciden las contraseñas? if($password!=$cpassword) { echo "<center>Las contraseñas no coinciden</center>"; }else{ // Comprobamos si el nombre de usuario o la cuenta de correo ya existían $checkuser = mysql_query("SELECT username FROM users WHERE username='$username'"); $username_exist = mysql_num_rows($checkuser); $checkemail = mysql_query("SELECT email FROM users WHERE email='$email'"); $email_exist = mysql_num_rows($checkemail); if ($email_exist>0|$username_exist>0) { echo "<center>EL nombre de usuario o la cuenta de correo estan ya en uso<center>"; }else{ //Todo parece correcto procedemos con la inserccion $query = "INSERT INTO users (username, password, email) VALUES('$username','$password','$email')"; mysql_query($query) or die(mysql_error()); echo "<center>El usuario $username ha sido registrado de manera satisfactoria.</center>"; echo "<center>Pulsa en login para loguearte.</center>"; } } } } ?> <head><!-- <link href="images/estilo.css" rel="stylesheet" type="text/css">--><body background="images/Fondo.png"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Registro</title></head> <body><center><h1>Registro panel</h1><form action="registro.php" method="POST"><table style="border:1px solid #000000;"><tr><td align="right">Nombre de usuario: <input type="text" size="15" maxlength="25" name="username"></td></tr><tr><td align="right">Password: <input type="password" size="15" maxlength="25" name="password"></td></tr><tr><td align="right">Repite Password: <input type="password" size="15" maxlength="25" name="cpassword"></td></tr><tr><td align="right">Email: <input type="text" size="15" maxlength="40" name="email"></td></tr><tr><td align="center"><input type="submit" value="Registrar"></td></tr><tr><td align="center"><center><font class="content">[ <a href="login.php">"Login"</a> ]</font></center></td></tr></table></form></center>
login.php
--- Código: PHP ---<?php// Configura los datos de tu cuenta $dbhost='mysql'; $dbusername='andres'; $dbuserpass='andres'; $dbname='base; session_start(); // Conectar a la base de datosmysql_connect ($dbhost, $dbusername, $dbuserpass);mysql_select_db($dbname) or die('Cannot select database'); if ($_POST['username']) {//Comprobacion del envio del nombre de usuario y password$username=$_POST['username'];$password=$_POST['password']; if ($password==NULL) {echo "<center>La password no fue enviada<center>";}else{$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());$data = mysql_fetch_array($query);if($data['password'] != $password) {echo "<center>Login incorrecto<center>";}else{$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());$row = mysql_fetch_array($query);$_SESSION["s_username"] = $row['username'];header("Location: index.html");}}}?><html><link href="images/estilo.css" rel="stylesheet" type="text/css"><body background="images/Fondo.png"> <head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Login</title></head> <body><center><h1>Login Usuario</h1> <center> <form action='login.php' method='POST'><table style='border:1px solid #000000;'><tr><td align='right'>Nombre de usuario: <input type='text' size='15' maxlength='25' name='username'></td></tr><tr><td align='right'>Password: <input type='password' size='15' maxlength='25' name='password'></td></tr><tr><td align='center'><input type="submit" value="Login"><input type="reset" value="Borrar"></td></tr><tr><td align='center'><center><font class="content">[ <a href="registro.php">"Regístrate"</a> ]</font></center></td></tr></table></form></html>
chesbor:
Lo que deberías poner al principio de los archivos que sólo querés que vean los usuarios logueados sería un
session_start();
if(isset($_SESSION["s_username"])) {
código de la web
} else {
echo "debe loguearse";
}
Tratá de entender todo el proceso de los códigos que descargás porque sino a la más mínima modificación te vas a complicar.
andres69:
gracias chesbor lo hare y te comentare como me fue grcaissss!!!
andres69:
ya tengo la solucion ha este problema, probe el que me dio chesbor, me funciono, pero tambien encpntre este otro:
login.php
--- Código: PHP ---<?phpsession_start();session_register("Cuenta Abierta");$cuenta=array();?>
archivo protegido1:
--- Código: PHP ---<?phpsession_start();if (!session_is_registered("Cuenta Abierta")) die("<br>n<br>n<br>n<br>n<br>n<br>n<center>n" ."<h1>Para entrar correctamente, debes de hacerlo por <font color='red'>" ."LOGIN</font></h1>n</center>");?>
archivo protegido2:
--- Código: PHP ---<?phpsession_start();if (!session_is_registered("Cuenta Abierta")) die("<br>n<br>n<br>n<br>n<br>n<br>n<center>n" ."<h1>Para entrar correctamente, debes de hacerlo por <font color='red'>" ."LOGIN</font></h1>n</center>");?>
salir.php:
--- Código: PHP ---<?phpsession_start();session_destroy();$parametros_cookies = session_get_cookie_params();setcookie(session_name(), 0, 1, $parametros_cookies["path"]);?>
los dos ejemplos sirver, el que puse aqui y el que me ayudo chesbor.
Gracias chesbor!!!!! por tu ayuda.
gpchip:
Hola que tal, soy nuevo en la comunidad y en esto de la programación y tengo una duda.
Quiero probar el sistema de registro, tal y como lo has dejado expuesto, pero me gustaría saber, si serias tan amable de poner la estructura de la Base de datos. Mis conocimientos de Mysql, no son muy altos y no me aclaro a la hora de crearla. Si me dejaras el archivo sql para importarla a mi BD te lo agradecería.
Muchas gracias
Navegación
[#] Página Siguiente
Ir a la versión completa