Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - maska

Páginas: 1 [2]
16
PHP / [SOLUCIONADO] Relacionar usuario con sus fotografías.
« en: 06 de Abril de 2012, 00:09:31 am »
Hola amigos.
Tengo la siguiente tabla en mi base de datos:

Código: [Seleccionar]
CREATE TABLE images (
  id int(10) unsigned NOT NULL auto_increment,
  image blob NOT NULL,
  name varchar(255) NOT NULL default '',
  weight varchar(15) NOT NULL default '',
  type varchar(25) NOT NULL default '',
  PRIMARY KEY  (id)
) ENGINE=MyISAM;

Con el código de php y todo funciona muy bien.
Tengo un sistema de login o usuarios, cómo lo queráis llamar, y cada usuario tiene su respectivo perfil: perfil.php?id_user=25.
La pregunta es la siguiente: ¿cómo selecciono las fotografías de cada usuario si en la tabla images no tengo ningún campo sobre id de usuario?

Yo mismo he intentado sacar algunas conclusiones, pero cómo no sé si estoy en lo cierto, es por lo que estoy aquí preguntando, para que me aconsejéis.

Mi idea era crear una columna en la tabla images con el nombre de id_user, para cuando quiera seleccionar las fotografías del usuario 25, por ejemplo, tan solo haga un SELECT en la tabla images, WHERE id_user='$id_user', dónde $id_user, será una variable igualada al registro de dicha id de usuario.

¿Estoy en lo cierto?

17
PHP / [AYUDA] if(somos amigos) {veo tu perfil} else {no puedo}.
« en: 05 de Abril de 2012, 00:52:08 am »
¿Cómo podría hacer para que un usuario pudiese visitar aquellos perfiles los cuales tenga previamente agregado cómo amigo al usuario de dicho perfil?

Por ejemplo:
Me llamo Pepe y quiero entrar en el perfil de Marta. (imaginemos, de que no la tengo agregada como amiga) Entonces no puedo ver perfil. De lo contrario, de tenerla agregada cómo amiga me dejaría ir y visualizar el perfil de Marta

*NOTA: Tengo el sistema de agregar y eliminar amigos. Tan solo no sé cómo hacer este pequeño script, porque a pesar de que lo he intentado, no me funciona.

Esta es la base de datos que tengo para amigos.sql
Código: [Seleccionar]
CREATE TABLE `amigos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_logueado` varchar(30) COLLATE latin1_general_ci NOT NULL,
`id_amigo` varchar(30) COLLATE latin1_general_ci NOT NULL,
`Estado` varchar(30) COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;

Este es el código que he podido sacar, pero no me funciona. ¿Alquién me ayuda?
Código: [Seleccionar]
<?php
// OBLIGATORIO.
session_start();
include(&
#39;includes/conectar_db.php&#39;);
if(isset($_SESSION[&#39;user_nombre&#39;])) {


$nombre_usuario =$_SESSION[&#39;user_nombre&#39;];
$id_usuario=$_SESSION[&#39;user_id&#39;];


$amigos mysql_query("SELECT * FROM amigos WHERE Estado=&#39;aceptado&#39;") or die(mysql_error());
    if(
mysql_num_rows($amigos)) { 
        
$row mysql_fetch_array($amigos);
        
$id $row["id"];
$id_logueado $row["id_logueado"];
$id_amigo $row["id_amigo"];
$Estado $row["Estado"];


if ($id_amigo=="$id_usuarioor $id_logueado=="$id_usuario") { 


echo "pagina de tu amigo"


} else {echo "no puedes ver la página de tu amigo";}





// Fin de if(mysql_num_rows($perfil)) {.
} else { echo "inicio.php"; }

// Fin de $_SESSION[&#39;user_nombre&#39;].
} else { echo "acceso.php"; }
?>


18
PHP / [SOLUCIONADO] Problemilla con header.
« en: 04 de Abril de 2012, 21:57:08 pm »
En esta página mensajes.php tengo un menu, el cual es:

Código: [Seleccionar]
<ul>
        <li><a href="javascript:Open('mensajes/crear.php','center')" title="Redacta un mensaje.">Escribir un mensaje</a></li>
        <li><a href="javascript:Open('mensajes/listar.php','center')" title="Bandeja de entrada.">Mensajes recibidos</a></li>
        <li><a href="javascript:Open('mensajes/leer.php','center')" title="Bandeja de salida.">Mensajes enviados</a></li>
</ul>

Si pulso en Mensajes recibidos me abre justamente al lado en un divs la página listar.php. En listar, tengo la opción de borrar los mensajes. Borro los mensajes correctamente y no tengo problemas hasta ahí.

Mi problema es que otra página que tengo llamada borrar.php tengo puesto un header con Location a la página mensajes.php que es la que contiene el menú que puse anteriormente, y, claro, me redirige a la página mensajes.php pero no me abre el archivo listar.

Aquí os muestro un ejemplo de lo que quiero a pesar que esté mal. Quiero que el header de la página borrar.php haga algo así cómo:

Código: [Seleccionar]
<?php header("location:../mensajes.php/javascript:Open(&#39;mensajes/listar.php&#39;,&#39;center&#39;)"); ?>
Para que me pueda abrir la página mensajes.php justamente por el include de listar.php.

¿Cómo podría hacer eso?

19
PHP / [AYUDA] ¿Cómo puedo hacer este código más ligero?
« en: 03 de Abril de 2012, 20:01:33 pm »
Estoy creando un pequeño calendario para que mis usuarios puedan visualizar la aproximación de algunos eventos. Tengo una tabla que se detallada en el código que he puesto.
La pregunta es: ¿cómo podría poner una <table></table> dentro de un array sin que se repita la tabla. Sino, tan solo los datos.?

Puse la tabla en un echo, pero me la repite tantas veces como usuarios hay registrados y eso no quiero.

Mi código es:

Código: [Seleccionar]
<?php
$calendario 
mysql_query("SELECT * FROM users");
if(
mysql_num_rows($calendario)){
while($row mysql_fetch_array($calendario)){
$user_id $row["user_id"];
$user_nombre $row["user_nombre"];
$user_apellido1 $row["user_apellido1"];
$user_apellido2 $row["user_apellido2"];
$user_diaNac $row["user_diaNac"];
$user_mesNac $row["user_mesNac"];
$user_anioNac $row["user_anioNac"];


// Fecha actual.
$dia=date(&#39;d&#39;);
$mes=date(&#39;m&#39;);
$ano=date(&#39;Y&#39;);
// Fecha de nacimiento.
$dianaz=$user_diaNac;
$mesnaz=$user_mesNac;
$anonaz=$user_anioNac;

//CALENDARIO.
$manana mktime(000date(&#39;d&#39;)+1, date(&#39;m&#39;), date(&#39;Y&#39;));
$semana_siguiente mktime(000date(&#39;d&#39;)+7, date(&#39;m&#39;), date(&#39;Y&#39;));

echo "
<div class=&#39;subcontenido-div&#39;>
  <table width=&#39;200&#39;>
    <tr>
  <td>Hoy</td>
</tr>
<tr>
  <td class=&#39;color1&#39;>AQUÍ QUIERO PONER EL PRIMER IF</td>
</tr>
  </table>
</div><!-- class subcontenido -->
<div class=&#39;subcontenido-div&#39;>
  <table width=&#39;200&#39;>
<tr>
  <td>Mañana</td>
</tr>
<tr>
  <td class=&#39;color1&#39;>AQUÍ QUIERO PONER EL SEGUNDO IF</td>
</tr>
  </table>
</div><!-- class subcontenido -->
<div class=&#39;subcontenido-div&#39;>
  <table width=&#39;200&#39;>
<tr>
  <td>Pasado mañana</td>
</tr>
<tr>
  <td class=&#39;color1&#39;>AQUÍ QUIERO PONER EL TERCER IF</td>
</tr>
  </table>
</div><!-- class subcontenido -->
"
;

if ((
$dianaz == $dia) && ($mesnaz == $mes)) { echo "
<tr><td class=&#39;color1&#39;>Cumpleaños de <a href=&#39;perfil.php?user_id="
.$user_id."&#39;>$user_nombre $user_apellido1 $user_apellido2</a></td></tr>"; }

if ((
$dianaz == date(&#39;d&#39;)+1) && ($mesnaz == $mes)) {echo "Mañana cumple $user_nombre $user_apellido1 $user_apellido2";}

if (($dianaz == date(&#39;d&#39;)+2) && ($dianaz == date(&#39;d&#39;)+2) && ($mesnaz == $mes)) {echo "Esta semanana cumple $user_nombre $user_apellido1 $user_apellido2";}




// ************* No Tocar.
} }
?>

20
PHP / Agregar y eliminar amigos, adaptación al sistema de users. [AYUDA]
« en: 22 de Marzo de 2012, 14:48:11 pm »
Hola amigos.

Tengo un Sistema de Usuarios al cual quiero adaptarle un código que ví en una página. Ya que no soy capaz de montar un Sistema de Agregar y Eliminar amigos desde cero porque me hago un lío.
Mi idea, como he dicho es adaptarlo con vuestra ayuda. Así que a continuación os pongo el código de mi Sistema de Usuarios y el código de gente.php y agregara.php

Sistema de Usuarios

acceso.php
Código: [Seleccionar]
<form action="comprobar.php" method="post">
            <label>Usuario:</label>
            <br />
            <input type="text" name="user_nombre" /><br />
            <label>Contraseña:</label>
            <br />
            <input type="password" name="user_clave" /><br />
            <br />
            <br />
            <input type="submit" name="enviar" value="Ingresar" /> | <a href="registro.php">Regístrate </a>
        </form>

comprobar.php
Código: [Seleccionar]
<?php
    session_start
();
    include(&
#39;includes/conectar_db.php&#39;);
    
if(isset($_POST[&#39;enviar&#39;])) { // Comprobamos que se hayan enviado los datos del formulario.



// Comprobamos que los campos user_nombre y user_clave no estén vacíos.
        
if(empty($_POST[&#39;user_nombre&#39;]) || empty($_POST[&#39;user_clave&#39;])) {
            
echo "No has introducido todo tus datos. <a href=&#39;javascript:history.back();&#39;>Reintentar</a>";
        }else {
            
// "Limpiamos" los campos del formulario de posibles códigos maliciosos.
            
$user_nombre mysql_real_escape_string($_POST[&#39;user_nombre&#39;]);
            
$user_clave mysql_real_escape_string($_POST[&#39;user_clave&#39;]);
            
$user_clave md5($user_clave);
            
// Comprobamos que los datos ingresados en el formulario coincidan con los de la base de datos.
            
$sql mysql_query("SELECT user_id, user_nombre, user_clave FROM users WHERE user_nombre=&#39;".$user_nombre."&#39; AND user_clave=&#39;".$user_clave."&#39;");
            if(
$row mysql_fetch_array($sql)) {
                
$_SESSION[&#39;user_id&#39;] = $row[&#39;user_id&#39;]; // Creamos la sesión "user_id" y le asignamos como valor el campo user_id.
                
$_SESSION[&#39;user_nombre&#39;] = $row[&#39;user_nombre&#39;]; // Creamos la sesión "user_nombre" y le asignamos como valor el campo user_nombre.
$_SESSION[&#39;ultimoAcceso&#39;]= date(&#39;Y-n-j H:i:s&#39;); // Creamos la sesión "ultimoAcceso" y le asignamos como valor date.
                
header("Location: acceso.php");

// Script: usuarios online. Comprobamos si ya se ha ingresado anteriormente.
$online mysql_query("SELECT onlineuser FROM online WHERE onlineuser=&#39;".$_POST[&#39;user_nombre&#39;]."&#39;");
$online_exist mysql_num_rows($online);
// Script: usuarios online. Si no existe ninguna coincidencia insertamos nueva conexión, de lo contrario actualizamos la conexión existente.
if($online_exist==0){
mysql_query("INSERT INTO `online` (`onlineuser`, `lastdate`, `ip`) VALUES (&#39;".$_POST[&#39;user_nombre&#39;]."&#39;, &#39;".time()."&#39;, &#39;".$_SERVER[&#39;REMOTE_ADDR&#39;]."&#39;)") or die(mysql_error());
}else{
mysql_query("UPDATE online SET lastdate=&#39;".time()."&#39;,ip=&#39;".$_SERVER[&#39;REMOTE_ADDR&#39;]."&#39; WHERE onlineuser=&#39;".$_POST[&#39;user_nombre&#39;]."&#39;") or die(mysql_error());
// Fin de script: usuarios online

            }else {
?>

                Ha ocurrido un error. <a href="acceso.php">Reintentar</a>
<?php
            
}
        }
    }else {

        
header("Location: acceso.php");
    }
?>

perfil.php
Código: [Seleccionar]
<?php
// OBLIGATORIO.
session_start();
include(&
#39;includes/conectar_db.php&#39;);
if(isset($_SESSION[&#39;user_nombre&#39;])) {
include(&#39;includes/funciones.php&#39;);

// Datos de perfil.php
$perfil mysql_query("SELECT * FROM users WHERE user_id=&#39;".$_GET[&#39;user_id&#39;]."&#39;") or die(mysql_error());
    
if(mysql_num_rows($perfil)) { // Comprobamos que exista el registro con la ID ingresada.
        
$row mysql_fetch_array($perfil);
        
$user_id $row["user_id"];
        
$user_nombre $row["user_nombre"];
        
$user_email $row["user_email"];
        
$user_reg $row["user_reg"];
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Perfil</title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<link rel="shortcut icon" href="imagenes/logotipo/">
<link href="css/plantilla.css" rel="stylesheet" type="text/css">
<link href="css/perfil.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php include(&#39;includes/header.php&#39;); ?>
<div id="wrap" class="clearfix">
  <div id="container">
    <div id="margen-izq">
      <div class="div">
        <div class="titulo-div">Perfil</div><!-- class titulo-div -->
        <div id="datos-user">
          <p>ID: <?=$user_id?><br />
            Nombre: <?=$user_nombre?><br />
            Email: <?=$user_email?><br />
            Registro: <?=$user_reg?>
          </p>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
        </div><!-- fin de datos-user -->
      </div><!-- class div -->     
    </div><!-- FIN de margen-izq -->
    <div id="center">
      <div class="div">
        <div class="titulo-div">Comentarios</div><!-- class titulo-div -->
        <div id="novedades" style="font-size:12px;">Si quieres trabajar con nosotros no dudes en contactar con nosotros. Si quieres trabajar con nosotros no dudes en contactar con nosotros. Si quieres trabajar con nosotros no dudes en contactar con nosotros. Si quieres trabajar con nosotros no dudes en contactar con nosotros. Si quieres trabajar con nosotros no dudes en contactar con nosotros. Si quieres trabajar con nosotros no dudes en contactar con nosotros.
        </div><!-- fin de novedades -->
      </div><!-- class div -->
    </div><!-- FIN de center -->
    <div id="margen-dcha">
      <div class="div">
        <div class="titulo-div">Fotografías</div><!-- class titulo-div -->
        <div id="proximamente">Álbum vacío.</div><!-- fin de proximamente -->
      </div><!-- class div -->
    </div><!-- FIN de margen-dcha -->
  </div><!-- FIN DE CONTAINER -->
  <?php include(&#39;includes/footer.php&#39;); ?>
</div><!-- FIN DE WRAP -->
</body>
</html>
<?php
// Fin de if(mysql_num_rows($perfil)) {.
} else { header("Location: inicio.php"); }

// Fin de $_SESSION[&#39;user_nombre&#39;].
} else { header("Location: acceso.php"); }
?>

gente.php y agregara.php

gente.php
Código: [Seleccionar]
<?php
// OBLIGATORIO.
session_start();
include(&
#39;includes/conectar_db.php&#39;);
if(isset($_SESSION[&#39;user_nombre&#39;])) {
include(&#39;includes/funciones.php&#39;);
?>





<?php
$nombre 
=$_SESSION[&#39;user_nombre&#39;];
$id_usuario=$_SESSION[&#39;user_id&#39;];
?>


<?php
include("config.php");
$registros=mysql_query("select * from users WHERE user_id != &#39;$id_usuario&#39; ORDER BY user_id desc "$conexion)or
die(
"Problemas en el select:".mysql_error());
$i=0;
while(
$reg=mysql_fetch_array($registros))
?>

<img src="<?php echo "".$reg[&#39;imagen&#39;]. "";?>" /><br />
<?php
$consulta
="select Estado from amigos where id_logueado=&#39;$id_usuario&#39; and id_amigo=&#39;$reg[id]&#39;";
$ejecuta=mysql_query($consulta) or die("Problemas en el select:".mysql_error());
$cantidad=mysql_num_rows($ejecuta);
$consulta1="select Estado from amigos where id_logueado=&#39;$reg[id]&#39; and id_amigo=&#39;$id_usuario&#39;";
$ejecuta1=mysql_query($consulta1) or die ("Problemas en el select:".mysql_error());
$cantidad1=mysql_num_rows($ejecuta1);
if(
$cantidad 0)
{
$row mysql_fetch_assoc($ejecuta);
switch(
$row[&#39;Estado&#39;])
{
case &
#39;pendiente&#39;:
echo &#39;<div class="amigos">Ya mandaste petición</div>&#39;;
echo $reg[&#39;nombre&#39;];
break;
case &
#39;aceptado&#39;:
echo &#39;<a href="perfil.php?id=&#39;.$reg[&#39;id&#39;].&#39;">&#39;.$reg[&#39;nombre&#39;].&#39;</a>&#39;;
break;

}
}
elseif(
$cantidad1 0)
{
$row1mysql_fetch_assoc($ejecuta1);
switch(
$row1[&#39;Estado&#39;])
{
case &
#39;pendiente&#39;:
echo &#39;<div class="amigos">
<form action="agregara.php" method="post">
<
input type="hidden" name="id" value="&#39;.$reg[&#39;id&#39;].&#39;">
<
input type="hidden" name="accion" value="modificar">
<
input type="submit" value="Aceptar petición">
</
form>
</
div>&#39;;
echo $reg[&#39;nombre&#39;];
break;
case &
#39;aceptado&#39;:
echo &#39;<a href="perfil.php?id=&#39;.$reg[&#39;id&#39;].&#39;">&#39;.$reg[&#39;nombre&#39;].&#39;</a>&#39;;
break;
}
}
else
{
echo &
#39;<div class="amigos">
<form action="agregara.php" method="post">
<
input type="hidden" name="id" value="&#39;.$reg[&#39;id&#39;].&#39;">
<
input type="hidden" name="accion" value="insertar">
<
input type="submit" value="Agregar Amigos">
</
form>
</
div>&#39;;
echo $reg[&#39;nombre&#39;];
}



?>







<div id="consulta"></div>
<? } ?>


<?php
// Fin de $_SESSION[&#39;user_nombre&#39;].
} else { header("Location: acceso.php"); }
?>

agregara.php
Código: [Seleccionar]
<?php
// OBLIGATORIO.
session_start();
include(&
#39;includes/conectar_db.php&#39;);
if(isset($_SESSION[&#39;user_nombre&#39;])) {
include(&#39;includes/funciones.php&#39;);
?>





<?php
$nombre 
=$_SESSION[&#39;user_nombre&#39;];
$id_usuario=$_SESSION[&#39;user_id&#39;];
?>


<?php
$id_amigo
=$_POST[&#39;id&#39;];
$accion=$_POST[&#39;accion&#39;];
echo "$accion <br>";
echo 
"$id_usuario <br>";
echo 
"$id_amigo";
include(
"config.php");
switch(
$accion) {
case &
#39;insertar&#39;:
$registros=mysql_query("insert into amigos (id, id_logueado, id_amigo, Estado) values (&#39;null&#39;,&#39;$id_usuario&#39;,&#39;$id_amigo&#39;,&#39;pendiente&#39;)",$conexion);
break;
case &
#39;modificar&#39;:
$registros2=mysql_query("update amigos set Estado=&#39;aceptado&#39; where id_amigo=&#39;$id_usuario&#39;",$conexion);
break;
/*case &#39;delete&#39;:
echo "";
break;*/
}
?>

<?php
// Fin de $_SESSION[&#39;user_nombre&#39;].
} else { header("Location: acceso.php"); }
?>

amigos.sql
Código: [Seleccionar]
CREATE TABLE `amigos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_logueado` varchar(30) COLLATE latin1_general_ci NOT NULL,
`id_amigo` varchar(30) COLLATE latin1_general_ci NOT NULL,
`Estado` varchar(30) COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;

21
PHP / [SOLUCIONADO] Error tonto con un buscador.
« en: 16 de Marzo de 2012, 16:26:11 pm »
Tengo un buscador que autocompleta el nombre de usuario el cual me consulta en la base de datos. Exactamente en una columna que se llama user.

El formulario es el siguiente:
Código: [Seleccionar]
<form action="recibe.php" method="post">
  <input id="tags" name="buscador" class="buscador" />
</form>

recibe.php
Código: [Seleccionar]
<?php
// 1ª opción:      echo $buscador=$_POST[&#39;buscador&#39;];
// 2ª opción:      header("Location: perfil.php?user_id=$user_id")
?>

1ª opción:
La línea
Código: [Seleccionar]
echo $buscador=$_POST['buscador']; no me da problema. Al buscar por admin, por ejemplo, en el formulario del buscador, le doy a enter y me lleva a recibe.php y me muestra el mismo valor por el que busqué, es decir, admin.
Pero esta opción no me interesa.

2ª opción:
La línea
Código: [Seleccionar]
header("Location: perfil.php?user_id=$user_id") sí me da problema. Al buscar por admin, por ejemplo, en el formulario del buscador, le doy a enter y me lleva a recibe.php hace el header perfectamente si lo cambio por
Código: [Seleccionar]
("Location: mensajes.php") pero no me hace el header primero.

Lo que trato es que cuando busque por admin al pulsar enter vaya al perfil de admin.
Por ejemplo: busco por Pedro y tras pulsar enter me dirige a perfil.php?user_id=2

Nota: suponiendo que Pedro tiene como id el número 2 en la base de datos.


¿Podrían ayudarme? Gracias.

22
PHP / [SOLUCIONADO] Mostrar nombres de los usuarios en linea en un div
« en: 11 de Marzo de 2012, 01:00:42 am »
Tengo un Sistema de Usuarios y lo que pretendo es que todos los usuarios que estén en línea (lógicamente para estar en línea (visualizando la web) tendrán que estar registrados y logueados) aparezcan en un div en un columna en orden alfabético.

### Ejemplo: ###

     Usuarios en línea:

     Alba
     Alberto
     María
     Pedro
     Sandra

### FIN DE EJEMPLO ###


Mi idea para crear este script es la siguiente, pero quiero que lo superviséis para estar más seguro.

  • Crear una columna en la misma tabla de usuarios llamada por ejemplo status.
  • Asignarle a la columna status de la tabla usuarios el valor por defecto 0 (desconectado) ó, D (desconectado)
  • Crear el script mediante condicionales, es decir, mediante if.

    Por ejemplo:

    - si(está logueado) {actualizar en la columna status de la tabla usuarios a 1 (conectado), ó, C (conectado)} else {header(Location: index.php)}
    - seleccionar la tabla usuarios dónde obtendré la id de cada usuario.
    - muestro el nombre del usuarios en función de su id.

¿Estaría en lo correcto con mi idea?

### CÓDIGO ###

db.php
Código: [Seleccionar]
CREATE TABLE IF NOT EXISTS `online` (
  `onlineid` int(11) NOT NULL AUTO_INCREMENT,
  `onlineuser` varchar(40) NOT NULL,
  `lastdate` varchar(100) NOT NULL,
  `ip` varchar(255) NOT NULL,
  PRIMARY KEY (`onlineid`)
)

users.php
Código: [Seleccionar]
<?php
// OBLIGATORIO.
session_start();
include(&
#39;includes/conectar_db.php&#39;);
if(isset($_SESSION[&#39;user_nombre&#39;])) {
include(&#39;includes/funciones.php&#39;);
?>




<?php
//Pequeño extra de verificación de actividad del usuario

mysql_query("UPDATE online SET lastdate=&#39;".time()."&#39;,ip=&#39;".$_SERVER[&#39;REMOTE_ADDR&#39;]."&#39; WHERE onlineuser=&#39;".$_SESSION[&#39;user_nombre&#39;]."&#39;");

//Verificar usuarios online
$online "SELECT * FROM users,online";
$online mysql_query($online) or mysql_error();

while(
$user_online=mysql_fetch_array($online)){

$duracion 1*60*60;
$expira $user_online[&#39;lastdate&#39;]+$duracion;
if(time() >= $expira){
$eliminar_online "DELETE FROM online WHERE onlineuser=&#39;".$user_online[&#39;user_nombre&#39;]."&#39;";
mysql_query($eliminar_online) or die(mysql_error());
}
}
//Mostrar cantidad de usuarios
$resultado=mysql_query("SELECT COUNT(*) as total FROM online") or die (mysql_error());
$total=mysql_result($resultado,0,"total");

echo 
"Usuarios online: $total";
?>




<?php
// Fin de $_SESSION[&#39;user_nombre&#39;].
} else { header("Location: acceso.php"); }
?>

comprobar.php
Código: [Seleccionar]
<?php
    session_start
();
    include(&
#39;includes/conectar_db.php&#39;);
    
if(isset($_POST[&#39;enviar&#39;])) { // Comprobamos que se hayan enviado los datos del formulario.



//Comprobamos si ya se ha ingresado anteriormente
$online mysql_query("SELECT onlineuser FROM online WHERE onlineuser=&#39;".$_POST[&#39;user_nombre&#39;]."&#39;");
$online_exist mysql_num_rows($online);

//Si no existe ninguna coincidencia insertamos nueva conexión, de lo contrario actualizamos la conexión existente.
if($online_exist==0){
mysql_query("INSERT INTO `online` (`onlineuser`, `lastdate`, `ip`) VALUES
(&#39;"
.$_POST[&#39;user_nombre&#39;]."&#39;, &#39;".time()."&#39;, &#39;".$_SERVER[&#39;REMOTE_ADDR&#39;]."&#39;") or mysql_error();
}else{
mysql_query("UPDATE online SET lastdate=&#39;".time()."&#39;,ip=&#39;".$_SERVER[&#39;REMOTE_ADDR&#39;]."&#39; WHERE onlineuser=&#39;".$_POST[&#39;user_nombre&#39;]."&#39;") or mysql_error();
}




        
// Comprobamos que los campos user_nombre y user_clave no estén vacíos.
        
if(empty($_POST[&#39;user_nombre&#39;]) || empty($_POST[&#39;user_clave&#39;])) {
            
echo "No has introducido todo tus datos. <a href=&#39;javascript:history.back();&#39;>Reintentar</a>";
        }else {
            
// "Limpiamos" los campos del formulario de posibles códigos maliciosos.
            
$user_nombre mysql_real_escape_string($_POST[&#39;user_nombre&#39;]);
            
$user_clave mysql_real_escape_string($_POST[&#39;user_clave&#39;]);
            
$user_clave md5($user_clave);
            
// Comprobamos que los datos ingresados en el formulario coincidan con los de la base de datos.
            
$sql mysql_query("SELECT user_id, user_nombre, user_clave FROM users WHERE user_nombre=&#39;".$user_nombre."&#39; AND user_clave=&#39;".$user_clave."&#39;");
            if(
$row mysql_fetch_array($sql)) {
                
$_SESSION[&#39;user_id&#39;] = $row[&#39;user_id&#39;]; // Creamos la sesión "user_id" y le asignamos como valor el campo user_id.
                
$_SESSION[&#39;user_nombre&#39;] = $row[&#39;user_nombre&#39;]; // Creamos la sesión "user_nombre" y le asignamos como valor el campo user_nombre.
$_SESSION[&#39;ultimoAcceso&#39;]= date(&#39;Y-n-j H:i:s&#39;); // Creamos la sesión "ultimoAcceso" y le asignamos como valor date.
                
header("Location: acceso.php");
            }else {
?>

                Ha ocurrido un error. <a href="acceso.php">Reintentar</a>
<?php
            
}
        }
    }else {

        
header("Location: acceso.php");
    }
?>

logout.php
Código: [Seleccionar]
<?php
session_start
();
include(&
#39;includes/conectar_db.php&#39;); // ******
if(!empty($_SESSION[&#39;user_nombre&#39;])) {
mysql_query("DELETE FROM online WHERE onlineuser=&#39;".$_SESSION[&#39;user_name&#39;]."&#39;") or die(mysql_error()); // ******
$_SESSION = array();
session_unset();
session_destroy();
header("Location: acceso.php");
} else {
echo 
"Operaci&oacute;n incorrecta.";
}
?>

en la página de users.php me aparece Usuarios online: 0. ¿A qué se debe esto?
Le echo un vistazo a la base de datos y en la tabla de online no me inserta nada.

23
PHP / [SOLUCIONADO] Sistema de usuarios
« en: 23 de Febrero de 2012, 20:35:33 pm »
Hola, gente.

Voy hacer una pequeña aportacion de un Sistema de Usuarios (claro está que puede ser muy mejorable), pero para los que quieran comenzar les serán de mucha utilidad.

A su vez, quiero que me resuelvan estas preguntas que os hago a continuación:
   - Archivo: registro.php ---------------------- Deprecated: Function eregi() is deprecated in C:\xampp\htdocs\registro.php on line 6
   - Cuando pulso en acceso.php "Salir" me da error. Dice que no encuentra la página.
   - En perfil.php ----------------------- Notice: Undefined index: id in C:\xampp\htdocs\perfil.php on line 4


db.sql
Código: [Seleccionar]
CREATE TABLE `usuarios` (
    `usuario_id` int(4) NOT NULL AUTO_INCREMENT,
    `usuario_nombre` varchar(15) NOT NULL DEFAULT '',
    `usuario_clave` varchar(32) NOT NULL DEFAULT '',
    `usuario_email` varchar(50) NOT NULL DEFAULT '',
    `usuario_freg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`usuario_id`)
)

acceso_db.php
Código: [Seleccionar]
<?php
    $host_db 
"localhost"// Host de la BD
    
$usuario_db "root"// Usuario de la BD
    
$clave_db "contrasena"// Contraseña de la BD
    
$nombre_db "sistema_users"// Nombre de la BD
    
    //conectamos y seleccionamos db
    
mysql_connect($host_db$usuario_db$clave_db);
    
mysql_select_db($nombre_db);
?>

registro.php
Código: [Seleccionar]
<?php
    
include(&#39;acceso_db.php&#39;); // incluimos el archivo de conexión a la Base de Datos
    
if(isset($_POST[&#39;enviar&#39;])) { // comprobamos que se han enviado los datos desde el formulario
        // creamos una función que nos parmita validar el email
        
function valida_email($correo) {
            if (
eregi("^[_.0-9a-z-]+@[0-9a-z._-]+.[a-z]{2,4}$"$correo)) return true;
            else return 
false;
        }
        
// Procedemos a comprobar que los campos del formulario no estén vacíos
        
$sin_espacios count_chars($_POST[&#39;usuario_nombre&#39;], 1);
        
if(!empty($sin_espacios[32])) { // comprobamos que el campo usuario_nombre no tenga espacios en blanco
            
echo "El campo <em>usuario_nombre</em> no debe contener espacios en blanco. <a href=&#39;javascript:history.back();&#39;>Reintentar</a>";
        }elseif(empty(
$_POST[&#39;usuario_nombre&#39;])) { // comprobamos que el campo usuario_nombre no esté vacío
            
echo "No haz ingresado tu usuario. <a href=&#39;javascript:history.back();&#39;>Reintentar</a>";
        }elseif(empty(
$_POST[&#39;usuario_clave&#39;])) { // comprobamos que el campo usuario_clave no esté vacío
            
echo "No haz ingresado contraseña. <a href=&#39;javascript:history.back();&#39;>Reintentar</a>";
        }elseif(
$_POST[&#39;usuario_clave&#39;] != $_POST[&#39;usuario_clave_conf&#39;]) { // comprobamos que las contraseñas ingresadas coincidan
            
echo "Las contraseñas ingresadas no coinciden. <a href=&#39;javascript:history.back();&#39;>Reintentar</a>";
        }elseif(!
valida_email($_POST[&#39;usuario_email&#39;])) { // validamos que el email ingresado sea correcto
            
echo "El email ingresado no es válido. <a href=&#39;javascript:history.back();&#39;>Reintentar</a>";
        }else {
            
// "limpiamos" los campos del formulario de posibles códigos maliciosos
            
$usuario_nombre mysql_real_escape_string($_POST[&#39;usuario_nombre&#39;]);
            
$usuario_clave mysql_real_escape_string($_POST[&#39;usuario_clave&#39;]);
            
$usuario_email mysql_real_escape_string($_POST[&#39;usuario_email&#39;]);
            // comprobamos que el usuario ingresado no haya sido registrado antes
            
$sql mysql_query("SELECT usuario_nombre FROM usuarios WHERE usuario_nombre=&#39;".$usuario_nombre."&#39;");
            if(
mysql_num_rows($sql) > 0) {
                echo 
"El nombre usuario elegido ya ha sido registrado anteriormente. <a href=&#39;javascript:history.back();&#39;>Reintentar</a>";
            }else {
                
$usuario_clave md5($usuario_clave); // encriptamos la contraseña ingresada con md5
                // ingresamos los datos a la BD
                
$reg mysql_query("INSERT INTO usuarios (usuario_nombre, usuario_clave, usuario_email, usuario_freg) VALUES (&#39;".$usuario_nombre."&#39;, &#39;".$usuario_clave."&#39;, &#39;".$usuario_email."&#39;, NOW())");
                if(
$reg) {
                    echo 
"Datos ingresados correctamente.";
                }else {
                    echo 
"ha ocurrido un error y no se registraron los datos.";
                }
            }
        }
    }else {
?>

    <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
        <label>Usuario:</label><br />
        <input type="text" name="usuario_nombre" maxlength="15" /><br />
        <label>Contraseña:</label><br />
        <input type="password" name="usuario_clave" maxlength="15" /><br />
        <label>Confirmar Contraseña:</label><br />
        <input type="password" name="usuario_clave_conf" maxlength="15" /><br />
        <label>Email:</label><br />
        <input type="text" name="usuario_email" maxlength="50" /><br />
        <input type="submit" name="enviar" value="Registrar" />
        <input type="reset" value="Borrar" />
    </form>
<?php
    
}
?>

acceso.php
Código: [Seleccionar]
<?php
    session_start
();
    include(&
#39;acceso_db.php&#39;);
    
if(empty($_SESSION[&#39;usuario_nombre&#39;])) { // comprobamos que las variables de sesión estén vacías        
?>

        <form action="comprobar.php" method="post">
            <label>Usuario:</label><br />
            <input type="text" name="usuario_nombre" /><br />
            <label>Contraseña:</label><br />
            <input type="password" name="usuario_clave" /><br />
            <input type="submit" name="enviar" value="Ingresar" />
        </form>                   
<?php
    
}else {
?>

        <p>Hola <strong><?=$_SESSION['usuario_nombre']?></strong> | <a href="perfil.php">Perfil</a> | <a href="logout.php">Salir</a></p>
<?php
    
}
?>

comprobar.php
Código: [Seleccionar]
<?php
    session_start
();
    include(&
#39;acceso_db.php&#39;);
    
if(isset($_POST[&#39;enviar&#39;])) { // comprobamos que se hayan enviado los datos del formulario
        // comprobamos que los campos usuarios_nombre y usuario_clave no estén vacíos
        
if(empty($_POST[&#39;usuario_nombre&#39;]) || empty($_POST[&#39;usuario_clave&#39;])) {
            
echo "El usuario o la contraseña no han sido ingresados. <a href=&#39;javascript:history.back();&#39;>Reintentar</a>";
        }else {
            
// "limpiamos" los campos del formulario de posibles códigos maliciosos
            
$usuario_nombre mysql_real_escape_string($_POST[&#39;usuario_nombre&#39;]);
            
$usuario_clave mysql_real_escape_string($_POST[&#39;usuario_clave&#39;]);
            
$usuario_clave md5($usuario_clave);
            
// comprobamos que los datos ingresados en el formulario coincidan con los de la BD
            
$sql mysql_query("SELECT usuario_id, usuario_nombre, usuario_clave FROM usuarios WHERE usuario_nombre=&#39;".$usuario_nombre."&#39; AND usuario_clave=&#39;".$usuario_clave."&#39;");
            if(
$row mysql_fetch_array($sql)) {
                
$_SESSION[&#39;usuario_id&#39;] = $row[&#39;usuario_id&#39;]; // creamos la sesion "usuario_id" y le asignamos como valor el campo usuario_id
                
$_SESSION[&#39;usuario_nombre&#39;] = $row["usuario_nombre"]; // creamos la sesion "usuario_nombre" y le asignamos como valor el campo usuario_nombre
                
header("Location: acceso.php");
            }else {
?>

                Error, <a href="acceso.php">Reintentar</a>
<?php
            
}
        }
    }else {
        
header("Location: acceso.php");
    }
?>

perfil.php
Código: [Seleccionar]
<?php
    session_start
();
    include(&
#39;acceso_db.php&#39;);
    
$perfil mysql_query("SELECT * FROM usuarios WHERE usuario_id=&#39;".$_GET[&#39;id&#39;]."&#39;") or die(mysql_error());
    
if(mysql_num_rows($perfil)) { // Comprobamos que exista el registro con la ID ingresada
        
$row mysql_fetch_array($perfil);
        
$id $row["usuario_id"];
        
$nick $row["usuario_nombre"];
        
$email $row["usuario_email"];
        
$freg $row["usuario_freg"];
?>

        <strong>Nick:</strong> <?=$nick?><br />
        <strong>Email:</strong> <?=$email?><br />
        <strong>Registrado el:</strong> <?=$freg?><br />
        <strong>URL del perfil:</strong> <a href="perfil.php?id=<?=$id?>">Click aquí</a>
<?php
    
}else {
?>

        <p>El perfil seleccionado no existe o ha sido eliminado.</p>
<?php
    
}
?>

logout.php
Código: [Seleccionar]
<?php
    session_start
();
    include(&
#39;acceso_db.php&#39;); // incluímos los datos de acceso a la BD
    // comprobamos que se haya iniciado la sesión
    
if(isset($_SESSION[&#39;usuario_nombre&#39;])) {
        
session_destroy();
        
header("Location: index.php");
    }else {
        echo 
"Operación incorrecta.";
    }
?>

Ayúdenme a solventar o solucionar mis dudas. Me serán de gran ayuda para continuar mi proyecto.

Saludos.

24
PHP / [AYUDA] - Listar usuarios registrados online.
« en: 20 de Febrero de 2012, 17:44:52 pm »
Tengo:

- Sistema de login (con sessiones).

Lo que intento hacer:

- Pretendo que cuando un usuario esté logueado, aparezcan listados (todos los demas, menos el) en un div con sus respectivos nombres de usuario.

¿Cual seria la idea para poder desarrollarlo?

25
PHP / [AYUDA] ¿Error en el código?
« en: 15 de Febrero de 2012, 22:43:27 pm »
No se el error que estaré cometiendo pero al pulsar el botón "Enviar" no me graba en la base de datos. Agradecería mucho la ayuda de alguien de la comunidad.

Gracias de antemano.


Código: [Seleccionar]
<?php
include (&#39;conectar_db.php&#39;);
?>

<?php
if(isset($_POST[&#39;enviar&#39;]));
{
if(!empty($_POST[&#39;nombre&#39;]) && !empty($_POST[&#39;fecha&#39;]) && !empty($_POST[&#39;descripcion&#39;]) && !empty($_POST[&#39;autor&#39;]))
{
$fecha_creacion date("j/m/Y, g:i a");
$sql "INSERT INTO eventos (nombre,fecha,descripcion,fecha_creacion,autor) VALUES (&#39;".$_POST[&#39;nombre&#39;]."&#39;,&#39;".$_POST[&#39;fecha&#39;]."&#39;,&#39;".$_POST[&#39;descripcion&#39;]."&#39;,&#39;".$fecha_creacion."&#39;,&#39;".$_POST[&#39;autor&#39;].")";
mysql_query($sql,$db);
echo "El evento ha sido creado correctamente.";
}
}
?>

<form name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>">
  <h1>Crear un evento</h1>
  <p>
    <label>Nombre<br>
      <input type="text" name="nombre" id="nombre">
    </label>
  </p>
  <p>
    <label>Fecha del evento<br>
      <input type="text" name="fecha" id="fecha">
    </label>
  </p>
  <p>
    <label>Descripci&oacute;n<br>
  <textarea name="descripcion" id="descripcion" cols="45" rows="5"></textarea>
    </label>
  </p>
  <p>
    <label>Autor<br>
      <input type="text" name="autor" id="autor">
    </label>
  </p>
  <p>&nbsp;</p>
  <p>
    <label>
      <input type="submit" name="enviar" id="enviar" value="Crear evento">
    </label>
  </p>
</form>

Páginas: 1 [2]