Foros del Web » Programando para Internet » PHP »

Insercion de datos mediante sesiones.

Estas en el tema de Insercion de datos mediante sesiones. en el foro de PHP en Foros del Web. Quiero crear un panel de control para que el usuario que se registre en el sistema pueda por ejemplo subir una foto y aderir una ...
  #1 (permalink)  
Antiguo 26/07/2006, 17:58
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 13 años
Puntos: 1
Insercion de datos mediante sesiones.

Quiero crear un panel de control para que el usuario que se registre en el sistema pueda por ejemplo subir una foto y aderir una descripcion supongamos.

El tema es que no se como hacer que una ves registrado el usuario, en un imput para la descripcion inserte el contenido dentro de ese usuario en la base de datos.

Pienso que se debe utilizar la id del usuario, pero ni idea.
  #2 (permalink)  
Antiguo 26/07/2006, 23:59
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 13 años
Puntos: 1
no idea¿?????
  #3 (permalink)  
Antiguo 27/07/2006, 03:17
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
Supongo que guardarás un identificador de usuario en alguna variable de sesión cuando éste se registre.
Simplemente tienes que asociar los datos que se guarden en la Base de datos con ese identificador.
  #4 (permalink)  
Antiguo 27/07/2006, 14:55
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 13 años
Puntos: 1
Busque ejemplos en el foro, pero no pude encontrar nada.

Si alguien tiene alguno a mano se agredece.
  #5 (permalink)  
Antiguo 27/07/2006, 15:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. es que ejemplos así como lo pintas tu no sé si vas a encontrar (y no sé como los vas a "buscar") ..

Esto es mas simple: Tienes claro el concepto que te comentó Jerkan .. si no es así ... pregunta que "no tienes claro".

Tienes que confirmarnos si tu en tus BBDD ya registras algún dato de tu usuario .. No sé .. un nombre .. un ID .. algo?

Muestra las tablas de tus BBDD que uses al menos .. no sé .. más detalles de tu caso particular para que te indiquemos exactamente como aplicar lo que teóricamente te explicó Jerkan.

Tu namejas una tabla de usuarios en tus BBDD?
Tu ya gestionas el login de tus usuarios y creas alguna variable de sesión?
Con que otros datos (tablas) de tus BBDD los quieres relacionar?

Responde Tú a estas preguntas y adjunta la información solicitada .. así será mejor orientarte.

Se trata de algo tipo:

Una tabla para tus usuarios en tus BBDD:
Cita:
id_usuario
nombre
blabla
Otra tabla para la gestión de lo que tenga que registrar tu aplicación:
Cita:
id_nose
id_usuario <--- Esta será nuestra "clave foránea" para relacionar ambas tablas
bblabla
blabal
Si dices gestionar sesiones .. no sé como lo harás (no has puesto nada de código de lo que usas como para hacernos una idea ya que no lo explicas tampoco) .. pero se trata de tomar tu variable de sesión que identifica al usuario (su "ID" lo ideal) y registrarlo a la hora de tu "INSERT" o tu "UPDATE" a la tabla que corresponda ...

Código PHP:
$sql="INSERT INTO tabla_nose (id_nose,id_usuario,blabla) VALUES ('','".$_SESSION['id_usuario']."',$blabla); 
Así podras hacer consultas SQL donde interventan esa tabla_nose y la de usuarios para ver su "nombre" u otros datos y en general relacionarlo para filtrados vários y demás ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 27/07/2006, 16:31
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 13 años
Puntos: 1
Que tal cluster, aqui te muestro el registro de usuarios:

El registro:

Código:
<HTML>
<HEAD>
</HEAD>
<BODY>
<?

//Conexion con la base
include_once("conex.php");

//Ejecucion de la sentencia SQL
mysql_db_query("registro_de_usuarios","insert into usuarios (nick,password) values ('$nick','$password')");
?>
<h1><div align="center">Registro Completado</div></h1>
</BODY>
</HTML>
El logueo:

Código:
<? 
	
include_once("conex.php");
$link=Conectarse(); 


if ($Accion=="Logon")
			{
			$q="select * from usuarios where nick='$nick' and password='$password'";
			$res=mysql_query($q,$link);
			$cant=mysql_affected_rows($link);
			if ($cant>0) {
						 session_name( 'admin' );
						 session_start();
						 $_SESSION["Admin"] = $nick;
						 session_write_close();
						 header('Location: ' ."panel.php");
						 } else{
						 	echo "<script>alert('Nombre de usuario o contraseña incorrecta, por favor intente nuevamente'); document.location.href='index.php';</script>\n";
							header('Location: ' ."index.php");
						 		}
			}
?>
<link href="css/mkn.css" rel="stylesheet" type="text/css">
<title><? echo "$NombredelSitio";?></title><table width="100%"  border="0" cellpadding="5" cellspacing="0">
  <tr>
    <td align="center" class="TaT">Panel de Gesti&oacute;n de &quot;<? echo "$NombredelSitio";?>&quot; </td>
  </tr>
  <tr>
    <td><p>&nbsp;</p>
      <form name="form1" method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
        <table width="24%"  border="0" align="center" cellspacing="0">
          <tr align="center" valign="middle">
            <td colspan="2" class="TaT">Inicie Sesi&oacute;n </td>
          </tr>
          <tr bgcolor="#EBEBEB">
            <td width="34%" class="TaL"><span class="Texto2">&nbsp;&nbsp;</span><span class="Textoa12">Usuario:</span></td>
            <td width="66%" class="TaR"><input name="nick" type="text" class="Cuadrodetexto" id="nick"></td>
          </tr>
          <tr bgcolor="#EBEBEB">
            <td class="TaL"><span class="Texto2">&nbsp;&nbsp;</span><span class="Textoa12">Contrase&ntilde;a:</span></td>
            <td class="TaR"><input name="password" type="password" class="Cuadrodetexto" id="password"></td>
          </tr>
          <tr align="center" bgcolor="#EBEBEB">
            <td height="35" colspan="2" class="TaD"><input name="Submit" type="submit" class="Boton" value="Continuar">
            <input name="Accion" type="hidden" id="Accion" value="Logon"></td>
          </tr>
        </table>
      </form>      
      <p>&nbsp;</p></td>
  </tr>
</table>
La sesion:

Código:
<?
ini_set(display_errors,0);
session_name( 'admin' );
session_start();
if (!isset($_SESSION["Admin"])){
			echo "<script>alert('Nombre de usuario o contraseña incorrecta, por favor intente nuevamente'); document.location.href='index.php';</script>\n";
			header('Location: ' ."index.php");
			}
?>
Y por ultimo aqui pondremos el panel para el usuario por ejemplo:

Código:
<?
include_once("ses.php");
include_once("conex.php");
?>


Supuestamente <? echo $_SESSION["Admin"];?> ha iniciado sesión

<?
$q="select * from usuarios where nick='$_SESSION[Admin]'";
$res=mysql_query($q);
$r=mysql_fetch_array($res);
echo 'Contraseña: '.$r[password];
echo 'email: '.$r[email];


?>
Hagamos de cuenta que admin corresponde a usuario, ahora yo una ves logueado en el panel quiero por ejemplo mediante un formulario insertar una linea de texto en mi usuario (supongo que debo crear una tabla para cada usuario que se registre? no tengo ni idea como hacerlo), pongo un imput en el panel, y un insert en el php correspondiente.

El problema es que del codigo que arriba mostre no tengo mucha idea como se maneja adecuadamente el uso de las seciones, pero si el alta del usuario.

Yo quiero que una ves que el usuario se registra, el mismo se loguee, y en el panel que yo disponga, la persona pueda insertar contenidos dentro de su usuario.

De que forma puedo lograrlo?

Muchas gracias.
  #7 (permalink)  
Antiguo 27/07/2006, 16:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. el tema de gestión de usuarios lo puedes orientar como quieras.

Esa tabla "usuarios" .. que campos tiene? .. no tiene un ID? (campo autonumérico y único?) .. es necesario!!! para establecer relaciones entre tablas mejor y más óptimo.

Cada usuarios que crees no se trata de crearle una "tabla" sino un sólo registro en una tabla general de "usuarios".

Cita:
Yo quiero que una ves que el usuario se registra, el mismo se loguee, y en el panel que yo disponga, la persona pueda insertar contenidos dentro de su usuario.
Que significa eso de "pueda insertar contenidos dentro de su usuario"? .. Serán más campos asociados a ese usuario? .. será una "aplicacion" aparte que gestione datos en general relacionado con ese usuario? ..

En cualquier caso la "relación" es la misma que antes te dejé a nivel de Base de datos (que es lo primero que tendrías que tener claro su diseño antes de meterte a programar nada en PHP) ..

Te recomiendo unos buenos manuales sobre diseño de base de datos y normalización:
www.mysql-hispano.com

Un saludo,

PD: sobre tu código .. No sé ni como te funcionan esos "alert" de javascript y redirecionamientos vía header() .. realmente no deberías usarlo así .. DEBES redireccionar al script que corresponda y ahí procesar el mensaje de error o exito que tengas ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 27/07/2006, 17:23
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 13 años
Puntos: 1
El id esta definido ya. En cuanto a la tabla por usuario, hable ganzadas, jaja, no se que se me cruzo por la cabesa.

Supongamos que tenemos: el nick, el passoword, estos 2 campos seran insertados en el registro, y el id ira incrementandose automaticamente.

Ahora una ves logueado el usuario, queremos que el mismo pueda insertar una descripcion personal en el panel, por lo que la tabla usuarios contara con otro campo "descripcion".

Para esto habra que guardar el id del usuario en un variable cuando se loguea cierto? y en el panel, a la hora de insertar la descripcion que use el id de referencia.

Como lo hago??

Última edición por Snake nS; 27/07/2006 a las 17:32
  #9 (permalink)  
Antiguo 27/07/2006, 19:15
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 13 años
Puntos: 1
Ya resolvi el problema, gracias.

Última edición por Snake nS; 28/07/2006 a las 01:39
  #10 (permalink)  
Antiguo 28/07/2006, 08:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por Snake nS
Ya resolvi el problema, gracias.
Despues de todo .. amerita una explicación -real- de tu problema y como lo solucionastes ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 28/07/2006, 13:39
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 13 años
Puntos: 1
Mi problema resindia en que si bien yo sabia como registrar los usuarios, una ves logueados los mismos queria que puedan insertar otros registros.

Es decir el usuario registraba su cuenta, luego se logueaba y dentro del panel al cual ingresaba mediante el loguin el podia insertar una descripcion, la cual seria insertada en el campo descripcion en la id del usuario.

Lo que hise, una ves que recupera la fila con $r=mysql_fetch_array($res);, habro la session, y luego tomo la id en una variable de session:

$_SESSION["Admin"] = $r[id];

Ahora en el archivo panel, solo habra que especificar en el insert de un determinado imput
Cita:
where id='$_SESSION[Admin]'";
al final de la sentencia sql.

Saludos.

PD: gracias joemakina, por explicarmelo.
  #12 (permalink)  
Antiguo 28/07/2006, 13:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ok, entonces no era "insertar" sino más bien "filtrar" una consulta SQL bajo cierto criterio por tal valor de una variable de sesión .. Es decir .. si tu ya haces tu login del usuario y generas un identificador del usuario en la sesión .. y en tus BBDD "asocias" esos datos por el usuario en un campo de esta, ahora lo que te faltaba era la consulta SQL "filtrada" bajo tu variable de sesión.

(hice un resumen .. creo que será eso lo que tenías problemas .. el "INSERTAR" de tu título original a mi me lió por completo).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:21.