Foros del Web » Programando para Internet » PHP »

Sistema de Usuarios

Estas en el tema de Sistema de Usuarios en el foro de PHP en Foros del Web. Muy Buenas: Escribo esta nota porque necesito que uno de ustedes expertos en esta materia me ayuden a hacer una cuestión muy complicada (al menos ...
  #1 (permalink)  
Antiguo 10/02/2005, 19:45
 
Fecha de Ingreso: febrero-2005
Mensajes: 14
Antigüedad: 19 años, 2 meses
Puntos: 0
Sistema de Usuarios

Muy Buenas:

Escribo esta nota porque necesito que uno de ustedes expertos en esta materia me ayuden a hacer una cuestión muy complicada (al menos para mi) y si alguno por favor sabe como se hace, en verdad les agradecería que me explicaran como si se lo estuvieran explicando a un bruto que no sabe nada de nada de php ni nada de eso jejeje, más o menos tengo idea del tema pero no soy experto en php ni nada de eso, pero repito si tengo idea del tema, más no soy experto!!

Tengo un trabajo en la cual necesito hacer un sistema de usuarios, en la cual cada persona que se registre pueda tener una página PERSONAL que yo le ponga la información en dicha página. La cuestión es que ellos en dicha página puedan ver información acerca de su facturación mensual y otras informaciones que yo le ponga a cada usuario en su página personal.

Vamos a ponerles un ejemplo, En Directv cuando tu entras a la página tu pones tu nombre de usuario y tu clave y en la página que te sale luego de presionar “ENVIAR” tu puedes ver tu factura en línea, puedes comprar películas en línea, etc… Más o menos eso es lo que quiero hacer, claro a excepción de eso de comprar películas online jejee, el punto es que quiero que dependiendo del nombre de usuario y clave envíe a la persona a su página personal sin que 2 usuarios tengan acceso a la misma página…Ejemplo la usuario Ana Pérez entra a www.midominio.com y pone su nombre de usuario anap y su clave 123456 y cuando presiona enviar la manda a su página personal ella ahí puede conocer su estado de cuenta y otras informaciones… Luego viene el usuario Jorge González el cual entra a www.midominio.com y coloca su nombre de usuario jgonzalez y pone su clave y cuando presiona ENVIAR lo manda a una página COMPLETAMENTE diferente a la de Ana Pérez, en la cual Jorge González puede consultar al igual que Ana Pérez su estado de cuenta y otras informaciones que yo le ponga… Pero repito Ana Pérez no tiene nada que ver con Jorge González.

Espero que me puedan ayudar, sé que es algo complicado pero necesito que en verdad me expliquen como se hace como si se lo estuvieran explicando a un burro jajaja… pero o sea yo entiendo del tema tampoco es que soy tan bruto pero no sé tanto así.

Muchas Gracias a todos, Ojalá me puedan ayudar.

PD: Tengo entendido que DotNetNuke tiene el sistema de crear página personalizables a todos los usuarios, el problema es aprenderlo a instalar, no sé mucho inglés y necesitaria un tutorial en español para instalarlo o que alguno de ustedes me explique como se hace paso a paso por favor. Muchas gracias de nuevo.
  #2 (permalink)  
Antiguo 10/02/2005, 19:51
Avatar de akela  
Fecha de Ingreso: septiembre-2000
Ubicación: Frente a la compu
Mensajes: 660
Antigüedad: 23 años, 7 meses
Puntos: 2
Para empezar este post debería ir en el foro de PHP ya que es lo que mas o menos conoces.

Lugo, una sugerencia es que hagas una base de datos donde tu guardaras los datos del usuario en una tabla, luego en otra tabla que este relacionada con la primera mediante su IDdeUsuario podrás guardar la información que le corresponde a casa usuario. Por ejemplo su saldo, consumos etc.

luego haciendo una página PHP te conectarás a la base de datos y extraerás la info que le cofrresponde a cada usuario, después de que este se identifica.

Es una pagina (la misma para todos) pero que muestra información diferente a acad auno.

Logicamente eso es lo que tienes que hacer, yo no se php, pero los pasos son esos los que tienes que hacer.
  #3 (permalink)  
Antiguo 10/02/2005, 19:56
 
Fecha de Ingreso: febrero-2005
Mensajes: 14
Antigüedad: 19 años, 2 meses
Puntos: 0
Re

En verdad gracias por ayudar, bueno he publikdo este mensaje en varios foros de esta página, la pregunta es cual sería el código php para hacer todo eso que dices?
  #4 (permalink)  
Antiguo 10/02/2005, 20:51
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 3 meses
Puntos: 98
Bueno, en realidad para tu problema, el lenguaje es lo de menos, la cuestion aqui es en el diseno de tu base de datos...si tienes la estructura ponla y te ayudamos con el codigo ASP

Ahora si por el contrario quieres que alguien te haga todo eso, vas a tener que alistar la billetera!


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway

Última edición por u_goldman; 10/02/2005 a las 20:52
  #5 (permalink)  
Antiguo 10/02/2005, 20:56
 
Fecha de Ingreso: febrero-2005
Mensajes: 14
Antigüedad: 19 años, 2 meses
Puntos: 0
<?php

*/


function print1(){
echo"<html><head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<title>Bienvenidos al instalador del registro de usuarios de phpfácil.net</title>
<style type=\"text/css\">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
.titulo {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 18px;
font-weight: bold;
}
.subtitulo {font-size: 14px}
body,td,th {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
}
.Estilo2 {font-size: 10px}
-->
</style></head>

<body>
<table width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" bgcolor=\"#CCCCCC\" style=\"border-bottom: 1px #666666 dashed; \">
<tr>
<td><span class=\"titulo\">PHPF&aacute;cil.net <span class=\"subtitulo\"> Registro de usuarios </span></span></td>
</tr>
</table>
<table width=\"90%\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"0\">
<tr>
<td>";

}

function print2(){
echo"<p>Bienvenidos al instalador del script &quot;registro de usuarios&quot; de <a href=\"http://www.phpfacil.net\" target=\"_blank\">phpfacil.net</a><br>
Versi&oacute;n del script: <strong>2.1</strong></p>
<form name=\"formulario\" method=\"post\" action=\"instalar.php\">
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"2\">
<tr bgcolor=\"#CCCCCC\" style=\"border: 1px #00000 solid; \">
<td colspan=\"2\" style=\"border: 1px #00000 solid; \"><strong>Datos de la base de datos </strong></td>
</tr>
<tr>
<td width=\"12%\">Host:</td>
<td width=\"88%\"><input name=\"host\" type=\"text\" id=\"host\" value=\"localhost\"></td>
</tr>
<tr>
<td>Usuario:</td>
<td><input name=\"user\" type=\"text\" id=\"user\"></td>
</tr>
<tr>
<td>Contrase&ntilde;a:</td>
<td><input name=\"pass\" type=\"password\" id=\"pass\"></td>
</tr>
<tr>
<td>Base de datos:</td>
<td><input name=\"basedatos\" type=\"text\" id=\"basedatos\"></td>
</tr>
<tr bgcolor=\"#CCCCCC\">
<td colspan=\"2\" style=\"border: 1px #00000 solid; \"><strong>Datos generales </strong></td>
</tr>
<tr>
<td>Foro:</td>
<td><input name=\"foro\" type=\"radio\" value=\"si\" checked>
Si
<input name=\"foro\" type=\"radio\" value=\"no\">
No</td>
</tr>
<tr>
<td colspan=\"2\" bgcolor=\"#CCCCCC\" style=\"border: 1px #000000 solid; \"><strong>Datos del administrador</strong></td>
</tr>
<tr bgcolor=\"#FFFFFF\">
<td colspan=\"2\" ><span class=\"Estilo2\"><strong>Ayuda:</strong> este usuario que crees ser&aacute; el administrador del resto de usuarios </span></td>
</tr>
<tr bgcolor=\"#FFFFFF\">
<td >Nick:</td>
<td ><input name=\"nick\" type=\"text\" id=\"nick\"></td>
</tr>
<tr bgcolor=\"#FFFFFF\">
<td >Contrase&ntilde;a:</td>
<td ><input name=\"contrasena\" type=\"password\" id=\"contrasena\"></td>
</tr>
<tr bgcolor=\"#FFFFFF\">
<td >E-mail:</td>
<td ><input name=\"email\" type=\"text\" id=\"email\"></td>
</tr>
<tr bgcolor=\"#FFFFFF\">
<td colspan=\"2\"><div align=\"center\">
<input name=\"install\" type=\"submit\" id=\"install\" value=\"Instalar\">
</div></td>
</tr>
</table>
</form>
<p>&nbsp;</p>";

}
function print3(){
echo"
</td>
</tr>
</table>

</body>
</html>";
}

print1();

if($install){

/* Creamos el config.php */
$directorios_777 = array(dirname(__FILE__),"buttons","eforo_imagenes" ,"eforo_estilos","sounds","imagenes","JavaScript", "eforo_imagenes/avatares","eforo_imagenes/caretos");
$total_directorios = count($directorios_777);
$total_directorios-=1;

for($i=0; $i<= $total_directorios; $i++){

if ($i!=0){

$path=dirname(__FILE__)."/";

}

@chmod($directorios_777[$i], 0777);
$chmod_actual=@decoct(@fileperms($directorios_777[$i])) % 1000;

if(is_writable($directorios_777[$i])){
$file_status = "";
} else {
$chmod_error= true;
}

}

if($chmod_error){
$_SESSION['insall_refer']=false;
$error = true;
$msg_error = "El instalador no pudo colocarle automáticamente permiso 777 a los siguientes directorios, <strong>por favor colóqueselo usted a través de su cliente FTP</strong>";
}


$abrir = fopen("config.php","w");
$config = "<?php

/* Config generado por www.phpfacil.net */

\$tuweb = \"$HTTP_HOST\";
\$admin = \"$nick\";

\$host = \"$host\";
\$usdb = \"$user\";
\$padb = \"$pass\";
\$datb = \"$basedatos\";

if(!\$conectar = @mysql_connect(\$host,\$usdb,\$padb)) {

\$error = mysql_error() ;
echo\"<font size=2 face=Verdana>Error al conectar a la base de datos, vuelva a intentarlo en 5 minutos, gracias. <br><br><B>Code Error: </b>\$error</font>\" ;
exit ;

}
mysql_select_db(\$datb,\$conectar) ;
?>";

fputs($abrir,$config);
fclose($abrir);

/* Final del config */

/* Conectamos a la base de datos */

include('config.php');

/* Creamos las tablas */

mysql_query("DROP TABLE IF EXISTS usuarios");
mysql_query("DROP TABLE IF EXISTS mensajes");
mysql_query("DROP TABLE IF EXISTS eforo_foros");
mysql_query("DROP TABLE IF EXISTS eforo_mensajes");
mysql_query("DROP TABLE IF EXISTS eforo_categorias");
mysql_query("DROP TABLE IF EXISTS eforo_config");
mysql_query("DROP TABLE IF EXISTS eforo_enlinea");
mysql_query("DROP TABLE IF EXISTS eforo_moderadores");
mysql_query("DROP TABLE IF EXISTS eforo_rangos");
mysql_query("DROP TABLE IF EXISTS eforo_privados");
mysql_query("DROP TABLE IF EXISTS eforo_recientes");
mysql_query("DROP TABLE IF EXISTS puntos");


$sql1 = "
CREATE TABLE usuarios (
id smallint(5) unsigned NOT NULL auto_increment,
fecha int(10) unsigned DEFAULT '0' NOT NULL,
nick varchar(20) NOT NULL,
contrasena varchar(255) NOT NULL,
Página varchar(150) NOT NULL,
email varchar(40) NOT NULL,
pais varchar(20) NOT NULL,
sexo enum('0','1') DEFAULT '0' NOT NULL,
descripcion tinytext NOT NULL,
ip varchar(15) NOT NULL,
avatar varchar(100) NOT NULL,
web varchar(100) NOT NULL,
firma varchar(100) NOT NULL,
mensajes smallint(5) unsigned DEFAULT '0' NOT NULL,
nombre varchar(20) NOT NULL,
conectado int(10) DEFAULT '0' NOT NULL,
lista varchar(20) NOT NULL,
messenger varchar(200) NOT NULL,
yahoo_messenger varchar(200) NOT NULL,
icq varchar(200) NOT NULL,
aim varchar(200) NOT NULL,
puntos varchar(20) NOT NULL,
rango varchar(3) NOT NULL,
n_dia varchar(5) NOT NULL,
n_mes varchar(5) NOT NULL,
n_ano varchar(5) NOT NULL,
PRIMARY KEY (id),
KEY nick (nick, email),
KEY nick_2 (nick)
);";
mysql_query($sql1);

$sql2 = "
CREATE TABLE mensajes (
id smallint(5) unsigned NOT NULL auto_increment,
nuevo tinyint(1) unsigned DEFAULT '0' NOT NULL,
fecha int(10) unsigned DEFAULT '0' NOT NULL,
remitente varchar(20) NOT NULL,
destinatario varchar(20) NOT NULL,
mensaje text NOT NULL,
asunto varchar(255) NOT NULL,
PRIMARY KEY (id),
KEY destinatario (destinatario)
);";
mysql_query($sql2);

$sql3 = "
CREATE TABLE eforo_categorias (
id tinyint(3) unsigned NOT NULL auto_increment,
orden tinyint(3) unsigned DEFAULT '0' NOT NULL,
categoria varchar(100) NOT NULL,
PRIMARY KEY (id),
KEY orden (orden)
);";
mysql_query($sql3);

$sql4 = "
CREATE TABLE eforo_config (
administrador varchar(20) NOT NULL,
email varchar(100) NOT NULL,
titulo varchar(100) NOT NULL,
temas tinyint(3) unsigned DEFAULT '0' NOT NULL,
mensajes tinyint(3) unsigned DEFAULT '0' NOT NULL,
ultimos tinyint(3) unsigned DEFAULT '0' NOT NULL,
codigo enum('ON','OFF') DEFAULT 'ON' NOT NULL,
caretos enum('ON','OFF') DEFAULT 'ON' NOT NULL,
url enum('ON','OFF') DEFAULT 'ON' NOT NULL,
censurar enum('ON','OFF') DEFAULT 'ON' NOT NULL,
estilo varchar(30) NOT NULL,
privados tinyint(3) unsigned DEFAULT '0' NOT NULL,
avatarlargo smallint(5) unsigned DEFAULT '0' NOT NULL,
avatarancho smallint(5) unsigned DEFAULT '0' NOT NULL,
avatartamano smallint(5) unsigned DEFAULT '0' NOT NULL,
htmlcab text NOT NULL,
htmlpie text NOT NULL,
error404 varchar(5) NOT NULL
);";
mysql_query($sql4);

$sql5 = "
CREATE TABLE eforo_enlinea (
fecha int(10) unsigned DEFAULT '0' NOT NULL,
ip varchar(15) NOT NULL,
usuario varchar(20) NOT NULL,
KEY fecha (fecha)
);";
mysql_query($sql5);
  #6 (permalink)  
Antiguo 10/02/2005, 20:57
 
Fecha de Ingreso: febrero-2005
Mensajes: 14
Antigüedad: 19 años, 2 meses
Puntos: 0
$sql6 = "
CREATE TABLE eforo_foros (
id tinyint(3) unsigned NOT NULL auto_increment,
orden tinyint(3) unsigned DEFAULT '0' NOT NULL,
categoria tinyint(3) unsigned DEFAULT '0' NOT NULL,
foro varchar(100) NOT NULL,
descripcion tinytext NOT NULL,
temas smallint(5) unsigned DEFAULT '0' NOT NULL,
mensajes smallint(5) unsigned DEFAULT '0' NOT NULL,
leer smallint(5) DEFAULT '0' NOT NULL,
nuevo smallint(5) DEFAULT '0' NOT NULL,
responder smallint(5) DEFAULT '0' NOT NULL,
editar smallint(5) DEFAULT '0' NOT NULL,
borrar smallint(5) DEFAULT '0' NOT NULL,
PRIMARY KEY (id),
KEY orden (orden),
KEY categoria (categoria)
);";
mysql_query($sql6);

$sql7 = "
CREATE TABLE eforo_mensajes (
id smallint(5) unsigned NOT NULL auto_increment,
foro tinyint(3) unsigned DEFAULT '0' NOT NULL,
forotema smallint(5) unsigned DEFAULT '0' NOT NULL,
foromostrar enum('0','1') DEFAULT '0' NOT NULL,
visitas smallint(5) unsigned DEFAULT '0' NOT NULL,
mensajes smallint(5) unsigned DEFAULT '0' NOT NULL,
fecha int(10) unsigned DEFAULT '0' NOT NULL,
usuario varchar(20) NOT NULL,
tema varchar(100) NOT NULL,
mensaje text NOT NULL,
caretos enum('0','1') DEFAULT '0' NOT NULL,
codigo enum('0','1') DEFAULT '0' NOT NULL,
url enum('0','1') DEFAULT '0' NOT NULL,
firma enum('0','1') DEFAULT '0' NOT NULL,
aviso enum('0','1') DEFAULT '0' NOT NULL,
editado int(10) unsigned DEFAULT '0' NOT NULL,
ultimo int(10) unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (id),
KEY foro (foro, forotema, foromostrar)
);";
mysql_query($sql7);

$sql8 = "
CREATE TABLE eforo_moderadores (
id smallint(5) unsigned NOT NULL auto_increment,
foro smallint(5) unsigned DEFAULT '0' NOT NULL,
moderador varchar(20) NOT NULL,
PRIMARY KEY (id)
);";
mysql_query($sql8);

$sql9 = "
CREATE TABLE eforo_privados (
id smallint(5) unsigned NOT NULL auto_increment,
nuevo enum('0','1') DEFAULT '0' NOT NULL,
fecha int(10) unsigned DEFAULT '0' NOT NULL,
remitente varchar(20) NOT NULL,
destinatario varchar(20) NOT NULL,
mensaje text NOT NULL,
PRIMARY KEY (id),
KEY destinatario (destinatario)
);";
mysql_query($sql9);

$sql10 = "
CREATE TABLE eforo_rangos (
rango smallint(5) DEFAULT '0' NOT NULL,
minimo smallint(5) unsigned DEFAULT '0' NOT NULL,
descripcion varchar(100) NOT NULL,
PRIMARY KEY (rango)
);";
mysql_query($sql10);

$sql11="
CREATE TABLE eforo_recientes (
usuario varchar(20) NOT NULL,
fecha int(10) unsigned DEFAULT '0' NOT NULL,
foro smallint(5) unsigned DEFAULT '0' NOT NULL,
mensaje smallint(5) unsigned DEFAULT '0' NOT NULL,
KEY usuarios (usuario)
);";
mysql_query($sql11);

$sql12 = "
CREATE TABLE eforo_usuarios (
id smallint(5) unsigned NOT NULL auto_increment,
fecha int(10) unsigned DEFAULT '0' NOT NULL,
nick varchar(20) NOT NULL,
contrasena varchar(20) NOT NULL,
email varchar(40) NOT NULL,
pais varchar(20) NOT NULL,
edad tinyint(2) unsigned DEFAULT '0' NOT NULL,
sexo enum('0','1') DEFAULT '0' NOT NULL,
descripcion tinytext NOT NULL,
web varchar(100) NOT NULL,
firma text NOT NULL,
ip varchar(15) NOT NULL,
mensajes smallint(5) unsigned DEFAULT '0' NOT NULL,
rango smallint(5) DEFAULT '0' NOT NULL,
avatar char(3) NOT NULL,
conectado int(10) unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (id),
KEY nick (nick, contrasena)
);";
mysql_query($sql12);

$contrasena = md5(md5($contrasena));
$fecha = time();

mysql_query("insert into usuarios (fecha,nick,contrasena,email) VALUES ('$fecha','$nick','$contrasena','$email')");
mysql_query("insert into eforo_categorias (orden,categoria) values ('10','Categoría de ejemplo')");
mysql_query("insert into eforo_foros (orden,categoria,foro,descripcion,temas,mensajes) values ('10','1','Foro de ejemplo','Aquí va la descripción','1','1')");
mysql_query("insert into eforo_rangos (rango,minimo,descripcion) values ('-1','0','Banead@')");
mysql_query("insert into eforo_rangos (rango,minimo,descripcion) values ('0','0','Invitad@')");
mysql_query("insert into eforo_rangos (rango,minimo,descripcion) values ('1','0','Nuev@')");
mysql_query("insert into eforo_rangos (rango,minimo,descripcion) values ('500','0','Moderador')");
mysql_query("insert into eforo_rangos (rango,minimo,descripcion) values ('999','0','Administrador')");
mysql_query("update usuarios set rango='1'");
mysql_query("update usuarios set conectado='$fecha'");
mysql_query("update usuarios set rango='999' where nick='$nick'");
mysql_query("insert into eforo_config (administrador,email,titulo,temas,mensajes,ultimos ,codigo,caretos,url,censurar,estilo,avatarlargo,av atarancho,avatartamano,privados,error404) values ('$nick','$email','$HTTP_HOST','25','15','15','ON' ,'ON','ON','OFF','phpfacil','50','150','150','50', 'si')");
mysql_query("
create table puntos (
op1 varchar(10) not null,
op2 varchar(10) not null,
op3 varchar(10) not null,
op4 varchar(10) not null
)");
mysql_query("insert into puntos (op1,op2,op3,op4) VALUES ('30.00','40.00','50.00','60.00')");
mysql_query("create table campos_perfil (
id smallint(5) ungisged not null auto_increment,
titulo varchar(200) not null,
tipo varchar(200) not null,
primary key(id)
)
");


echo"<center><br><br><br>Finalizada la instalación del registro de usuarios, <br>inserta este código donde quieras que se muestre el menú de iniciar sesión <b>&lt;? include('menu.php'); ?&gt;</b><br><br>Vés al <a href=\"entrar.php?nick=$nick&contrasena=$contrasen a&enviar=1&mode=GET&redirect=foroadmin.php\">pan el de administrador</a><br> y configura el sistema de usuarios y el foro</center>";

/* Fin de la creación de las tablas */
} else {

print2();

}

print3();

?>
  #7 (permalink)  
Antiguo 11/02/2005, 09:36
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Movido desde ASP
__________________
...___...
  #8 (permalink)  
Antiguo 11/02/2005, 09:45
Avatar de akela  
Fecha de Ingreso: septiembre-2000
Ubicación: Frente a la compu
Mensajes: 660
Antigüedad: 23 años, 7 meses
Puntos: 2
Creo que nos copiaste todo el codigo que te encontraste en phpfacil.com, pero como te dejo U_goldman, deberías de empezar diseñando tu BASE DE DATOS y después te podremos ayudar con el código:

La base de datos podrías empezar a diseñarla asi:
[IMG]


[/IMG]

Capicci

Última edición por akela; 11/02/2005 a las 09:53
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:15.