Ver Mensaje Individual
  #5 (permalink)  
Antiguo 26/02/2008, 16:43
Avatar de jaronu
jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 17 años
Puntos: 52
Re: sesiones usuarios y panel control

comienza por una DB asi:

CREATE TABLE `usuarios` (
`id` int(11) NOT NULL auto_increment,
`usuario` varchar(20) NOT NULL,
`password` varchar(10) NOT NULL,
`descripcion` text character set utf8 collate utf8_spanish_ci NOT NULL,
`email` varchar(45) character set utf8 collate utf8_spanish_ci default NULL,
`fecha` date NOT NULL,
PRIMARY KEY (`id`)



para mantener al usuario identificado has de comenzar el codigo iniciando una sesion

Código PHP:
session_start(); 

este form para registro:

Código HTML:
<form action="registro.php" method="post">
          <table width="59%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td height="81" colspan="2"><div align="center"><span class="Estilo18">Esta intentando entrar en una zona restringida a usuarios, por favor, registrese, le llevara 30 sg.</span></div></td>
              </tr>
            <tr>
              <td height="81" colspan="2"><div align="center" class="Estilo17">Registro</div></td>
              </tr>
            <tr>
              <td width="43%" height="31" bgcolor="#CCCCCC">Usuario (max 20):</td>
              <td width="49%" bgcolor="#CCCCCC"><input type="text" name="username" size="20" maxlength="20" /></td>
              </tr>
            <tr>
              <td height="29" bgcolor="#CCCCCC">Password (max 10):</td>
              <td bgcolor="#CCCCCC"><input type="password" name="password" size="10" maxlength="10" /></td>
              </tr>
            <tr>
              <td height="29" bgcolor="#CCCCCC">Confirma:</td>
              <td bgcolor="#CCCCCC"><input type="password" name="password2" size="10" maxlength="10" /></td>
              </tr>
            <tr>
              <td height="29" bgcolor="#CCCCCC">Email (max 40): </td>
              <td bgcolor="#CCCCCC"><input type="text" name="email" size="20" maxlength="40" /></td>
              </tr>
            <tr>
              <td height="40" colspan="2"><div align="center">
                <input type="submit" value="Registrar" />
              </div></td>
              </tr>
          </table> 
despues para el registro de user usa este codigo y llamalo registro.php:

Código PHP:
 <?php
session_start
();
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','tu_usuario','tu_password')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('registro')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function 
formRegistro(){
?>
          <?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==NULL|$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 />';
                
?>

para mantener al usuario en la sesion y que el sepa que esta logeado usa este codigo en algun sitio de la cabecera por ejemplo:


Código PHP:
    <?php

if (isset($_SESSION['k_username'])) 
{
echo 
'Hola, ';
echo 
'<b>'.$_SESSION['k_username']. '</b>.';


    echo 
'<a href="salir.php">salir</a>';
    }
?>