Foros del Web » Programando para Internet » PHP »

php.. login

Estas en el tema de php.. login en el foro de PHP en Foros del Web. Ola amigos.. Vereis tengo un login en mi web, que esta dividido en 5 partes, estos son mis codigos. Primero index.php Cita: <?php session_start(); echo ...
  #1 (permalink)  
Antiguo 31/01/2008, 10:23
 
Fecha de Ingreso: enero-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
php.. login

Ola amigos..

Vereis tengo un login en mi web, que esta dividido en 5 partes, estos son mis codigos.


Primero index.php
Cita:
<?php
session_start();
echo ‘Bienvenido, ‘;
if (isset($_SESSION[‘k_username’])) {
echo ‘<b>’.$_SESSION[‘k_username’].‘</b>.’;
echo ‘<p><a href="logout.php">Logout</a></p>’;
}else{
echo ‘<p><a href="login.php">Login</a></p>
<p><a href="registrar.php">Registrar</a></p>’;
}
?>
Segundo login.php
Cita:
<form action=“validar_usuario.php” method=“post”>
Usuario:<input type=“text” name=“usuario” size=“20″ maxlength=“20″ />
<br />
Password:<input type=“password” name=“password” size=“10″ maxlength=“10″ />
<br />
<input type=“submit” value=“Ingresar” />
</form>
Tercero validar_usuario.php
Cita:
<?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect(‘localhost’,‘usuario’,‘password’)or die (‘Ha fallado la conexión: ‘.mysql_error());
mysql_select_db(‘mi_base’)or die (‘Error al seleccionar la Base de Datos: ‘.mysql_error());
function quitar($mensaje)
{
$nopermitidos = array(“‘”,‘\\‘,‘<’,‘>’,“\”“);
$mensaje = str_replace($nopermitidos, “”, $mensaje);
return $mensaje;
}
if(trim($HTTP_POST_VARS[“usuario”]) != “” && trim($HTTP_POST_VARS[“password”]) != “”)
{
// Puedes utilizar la funcion para eliminar algun caracter en especifico
//$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"]));
//$password = $HTTP_POST_VARS["password"];
// o puedes convertir los a su entidad HTML aplicable con htmlentities
$usuario = strtolower(htmlentities($HTTP_POST_VARS[“usuario”], ENT_QUOTES));
$password = $HTTP_POST_VARS[“password”];
$result = mysql_query(‘SELECT password, usuario FROM usuarios WHERE usuario=\’‘.$usuario.‘\’‘);
if($row = mysql_fetch_array($result)){
if($row[“password”] == $password){
$_SESSION[“k_username”] = $row[‘usuario’];
echo ‘Has sido logueado correctamente ‘.$_SESSION[‘k_username’].‘ <p>’;
echo ‘<a href="index.php">Index</a></p>’;
//Elimina el siguiente comentario si quieres que re-dirigir automáticamente a index.php
/*Ingreso exitoso, ahora sera dirigido a la pagina principal.
<SCRIPT LANGUAGE="javascript">
location.href = "index.php";
</SCRIPT>*/
}else{
echo ‘Password incorrecto’;
}
}else{
echo ‘Usuario no existente en la base de datos’;
}
mysql_free_result($result);
}else{
echo ‘Debe especificar un usuario y password’;
}
mysql_close();
?>
Quarto registrar.php
Cita:
<?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect(‘localhost’,‘usuario’,‘password’)or die (‘Ha fallado la conexión: ‘.mysql_error());
mysql_select_db(‘mi_base’)or die (‘Error al seleccionar la Base de Datos: ‘.mysql_error());
function formRegistro(){
?>
<form action=“registrar.php” method=“post”>
Usuario (max 20):
<input type=“text” name=“username” size=“20″ maxlength=“20″ /><br />
Password (max 10):
<input type=“password” name=“password” size=“10″ maxlength=“10″ />
Confirma: <input type=“password” name=“password2″ size=“10″ maxlength=“10″ /><br />
Email (max 40):
<input type=“text” name=“email” size=“20″ maxlength=“40″ /><br />
<input type=“submit” value=“Registrar” />
</form>
<?php
}
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST[“username”])) {
$username = $_POST[“username”];
$password = $_POST[“password”];
$password2 = $_POST[“password2″];
$email = $_POST[“email”];
// Hay campos en blanco
if($username==NULL|$password==NULL|$password2==NUL L|$email==NULL) {
echo “un campo está vacio.”;
formRegistro();
}else{
// ¿Coinciden las contraseñas?
if($password!=$password2) {
echo “Las contraseñas no coinciden”;
formRegistro();
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkuser = mysql_query(“SELECT usuario FROM usuarios WHERE usuario=’$username’”);
$username_exist = mysql_num_rows($checkuser);
$checkemail = mysql_query(“SELECT email FROM usuarios WHERE email=’$email’”);
$email_exist = mysql_num_rows($checkemail);
if ($email_exist>0|$username_exist>0) {
echo “El nombre de usuario o la cuenta de correo estan ya en uso”;
formRegistro();
}else{
$query = ‘INSERT INTO usuarios (usuario, password, email, fecha)
VALUES (\’‘.$username.‘\’,\’‘.$password.‘\’,\’‘.$email.‘\ ’,\’‘.date(“Y-m-d”).‘\’)’;
mysql_query($query) or die(mysql_error());
echo ‘El usuario ‘.$username.‘ ha sido registrado de manera satisfactoria.<br />’;
echo ‘Ahora puede entrar ingresando su usuario y su password <br />’;
?>
<FORM ACTION=“validar_usuario.php” METHOD=“post”>
Usuario : <INPUT TYPE=“text” NAME=“usuario” SIZE=20 MAXLENGTH=20><br />
Password: <INPUT TYPE=“password” NAME=“password” SIZE=10 MAXLENGTH=20><br />
<INPUT TYPE=“submit” VALUE=“Ingresar”>
</FORM>
<?php
}
}
}
}else{
formRegistro();
}
?>
Y quinto logout.php
Cita:
<?php
session_start();
// Borramos toda la sesion
session_destroy();
echo ‘Ha terminado la session <p><a href="index.php">index</a></p>’;
?>
<SCRIPT LANGUAGE=“javascript”>
location.href = “index.php”;
</SCRIPT>

Bale, entonces tengo 2 dudas.

La primera es, que haber.. en el index.php me sale el bienvenidos... y yo no quiero que me salga cuando no este registrado..
Osea que si que quiero que cuando logees.. que ponga Bienvenido y tu nombre ...
Pero no quiero que ponga bienvenido al principio.. y me gustaria saber.. como lo quito el Bienvenido del principio.
(He intentado quitar en el codigo..lo de Bienvenido.. pero si lo quito.. luego cuando me logeo.. no sale bienvenido y mi nombre..


Luego la segunda es que me gustaria saber como puedo hacer que los registrados puedan hacer cosas y los no registrados no puedan. Ejemplo.

Los registrados pueden descargarse los programas de mi web y los no registrados no pueden..
Los registrados pueden escribir comentarios en una pagina y los no registrados no pueden..
Como lo ago?

Venga espero que me resuelvan estas 2 dudas. Gracias
  #2 (permalink)  
Antiguo 31/01/2008, 10:53
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: php.. login

La primera parte:

Simplemente mueve de lugar el bienvenido

Código PHP:
<?php
session_start
();

if (isset(
$_SESSION[‘k_username’])) {
echo 
‘Bienvenido;
echo 
<b>.$_SESSION[‘k_username’].</b>.;
echo 
<p><a href="logout.php">Logout</a></p>;
}else{
echo 
<p><a href="login.php">Login</a></p>
<
p><a href="registrar.php">Registrar</a></p>;
}
?>
Ahora bien con respecto a la segunda parte, tienes que verificar si la sesion 'k_username' esta inicializada, de lo contrario no muestras los botones para descargar archivos o agregar comentarios.

Saludillos.
  #3 (permalink)  
Antiguo 31/01/2008, 10:55
 
Fecha de Ingreso: enero-2008
Mensajes: 29
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: php.. login

Si lo que quieres es que no salga "Bienvenidos" cuando no este el usuario logueado, solamente cuando haga login, entonces prueba cambiando esto :

<?php
session_start();

if (isset($_SESSION[‘k_username’])) {
echo ‘Bienvenido <b>’.$_SESSION[‘k_username’].‘</b>.’;
echo ‘<p><a href="logout.php">Logout</a></p>’;
}else{
echo ‘<p><a href="login.php">Login</a></p>
<p><a href="registrar.php">Registrar</a></p>’;
}
?>

Creo que es eso a lo que te refieres...

Saludos...
  #4 (permalink)  
Antiguo 31/01/2008, 11:41
 
Fecha de Ingreso: enero-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: php.. login

Gracias alos 2 ya ta solucionado.

ara me falta la segunda parte.
la segunda es que me gustaria saber como puedo hacer que los registrados puedan hacer cosas y los no registrados no puedan. Ejemplo.

Los registrados pueden descargarse los programas de mi web y los no registrados no pueden..
Los registrados pueden escribir comentarios en una pagina y los no registrados no pueden..
Como lo ago?
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.
Tema Cerrado

SíEste tema le ha gustado a 3 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 02:20.