Comunidad oficial de diseñadores web, web developers y Webmasters. Aqui podemos tratar temas actuales sobre diseño y tecnología. Podemos compartir y actualizarnos. Flash, PHP, ASP, Java, HTML, CSS, MySQL, CMS, etc. Unite YA y lee los Sticky

Ver más
  • 17,525 Miembros
  • 13,190 Temas
  • 5,130 Seguidores
  • 0

[Ayuda] Insertar en tabla el usuario de la sesion

Buenas, la hago breve. Quiero que al insertar un post, pueda agarrar el usuario de la sesión mediante la cual envíe el post y que lo inserte en dicha tabla. Por ahora, en mi sistema de posts, cualquiera publica algo y no se guarda en la BD por que usuario fue publicado cada uno. Me dijeron algo de poner un input oculto en la creación del post, que capte el usuario de sesión, algo de $_SESSION['MM_Username'] pero no entendí muy bien. Les agradecería muchísimo su ayuda.

Con esto podría obtener los demás datos del usuario y mostrarlos en las publicaciones.
  • 0
  • 0Calificación
  • 1Seguidores
  • 201Visitas
  • 0Favoritos

23 comentarios

@Cris218 Hace más de 10 meses
Bueno no te recomiendo lo del input oculto porque pueden editarlo muy facil mira prueba con esto



$Usuario = $_SESSION['MM_Username'];

 echo  $Usuario;

@stalking2114 Hace más de 10 meses
Bueno te explico soy novato pero tuve este mismo problema varias veces, 1 la variable $_SESSION sirve para recopilar datos del usuario que ha iniciado session por ejemplo
tu creas tu login y compruebas con una tabla que tengas creada que el email o usuario exista y que la contraseña sea igual una vez hecho esto se crea una session de este tipo segun sea el caso por lo menos asi lo hago yo



if(isset($_SESSION['id_usr']))
{
    include ("sistema.php");
}
else
{

include ("index_nologin.php");
}


en ese codigo compruebas que la variable exista como se ve el if si existe la variable incluye el archivo sistema si no el index_nologin eso se podria hacer de muchas formas.

ahora como recuperas datos hay varias formas si es unicamente para el usuario que se hizo login puedes utilizar $_SESSION['columna'] que hace esto busca del usuario su id y va a la columna que tiene ese id por ejemplo

echo $_SESSION['nombre_usuario']; en pantalla imprimiria el nombre de la persona que se logeo si quieres que vea su propia foto harias lo mismo solo que dentro de una etiqueta img


 <img src="imagenes/<?php echo $_SESSION['avatar_usuario']; ?>" border="0" /> este como ejemplo recuerda que en la tabla tendras que guardar las url donde se encuentran las imagenes o guardar el nombre y colocar una direccion predefinida.

Para obtenerlas de cualuqier usuario deberias crear un archivo en php como perfil y utilizar el metodo GET 
en el link del usuario tu utilizarias http://tusitio.com/prefil.php?id=19 que haces aqui tu en el php utilizas el metodo GET

como esto

[code]
<?php

$sql="select * from usuarios where id_usr=".$_GET["id"]."";
$res=mysql_query($sql,$con);

if ($reg=mysql_fetch_array($res))
{
// en medio de esto colocas como quieres que aparezca lo unico que añades entre lineas o entre espacios puede ser html o php etc  como sigue 
?>
<div class="nombre">
<?php echo $reg["nombre"];?>
</div>



De esta manera a cuando entren al http://tusitio.com/prefil.php?id=19 aparecerán los datos del usuario 19 si colocan 50 aparecerán los de ese usuario basicamente asi es los que sepan mas me corregiran pero asi lo hago yo ya después si quieres que las url sean limpias puedes usar htaccess para configurarlas por el usuario u otro

te recomiendo investigar mas sobre la variable $_SESSION y sobre el metodo GET

Saludos y espero te sirva
@stalking2114 Hace más de 10 meses

Bueno te explico soy novato pero tuve este mismo problema varias veces, 1 la variable $_SESSION sirve para recopilar datos del usuario que ha iniciado session por ejemplo
tu creas tu login y compruebas con una tabla que tengas creada que el email o usuario exista y que la contraseña sea igual una vez hecho esto se crea una session de este tipo segun sea el caso por lo menos asi lo hago yo



if(isset($_SESSION['id_usr']))
{
    include ("sistema.php");
}
else
{

include ("index_nologin.php");
}


en ese codigo compruebas que la variable exista como se ve el if si existe la variable incluye el archivo sistema si no el index_nologin eso se podria hacer de muchas formas.

ahora como recuperas datos hay varias formas si es unicamente para el usuario que se hizo login puedes utilizar $_SESSION['columna'] que hace esto busca del usuario su id y va a la columna que tiene ese id por ejemplo

echo $_SESSION['nombre_usuario']; en pantalla imprimiria el nombre de la persona que se logeo si quieres que vea su propia foto harias lo mismo solo que dentro de una etiqueta img


 <img src="imagenes/<?php echo $_SESSION['avatar_usuario']; ?>" border="0" /> este como ejemplo recuerda que en la tabla tendras que guardar las url donde se encuentran las imagenes o guardar el nombre y colocar una direccion predefinida.

Para obtenerlas de cualuqier usuario deberias crear un archivo en php como perfil y utilizar el metodo GET 
en el link del usuario tu utilizarias http://tusitio.com/prefil.php?id=19 que haces aqui tu en el php utilizas el metodo GET

como esto

[code]
<?php

$sql="select * from usuarios where id_usr=".$_GET["id"]."";
$res=mysql_query($sql,$con);

if ($reg=mysql_fetch_array($res))
{
// en medio de esto colocas como quieres que aparezca lo unico que añades entre lineas o entre espacios puede ser html o php etc  como sigue 
?>
<div class="nombre">
<?php echo $reg["nombre"];?>
</div>



De esta manera a cuando entren al http://tusitio.com/prefil.php?id=19 aparecerán los datos del usuario 19 si colocan 50 aparecerán los de ese usuario basicamente asi es los que sepan mas me corregiran pero asi lo hago yo ya después si quieres que las url sean limpias puedes usar htaccess para configurarlas por el usuario u otro

te recomiendo investigar mas sobre la variable $_SESSION y sobre el metodo GET

Saludos y espero te sirva



hehehe me equivoque de tema hehe sorry pero lo puedes utilizar igual
@stalking2114 Hace más de 10 meses
puedes utilizar en el comentario un input invisible con el comando $_SESSION y al momento de hacer post incluyas ese input en tu codigo esa es la mejor solucion y segun lo que te entendi

ejemplo
<input type="hidden" name="id_usuario" value="<?php echo $_SESSION['id_usr'];?>">

@stalking2114 Hace más de 10 meses
revisa este link y seguro encontraras mucho sobre lo que buscas solo tienes que saber ingles o utilizar google translate http://php.net/manual/es/reserved.variables.session.php
@soloxd Hace más de 10 meses
Mira usar un input hidden para obtener la session del usuario es una mala práctica, por que? Porque yo agarro edito el input, pongo otro usuario y listo.
Ahora podrías probar así viendo el primer ejemplo de la documentación oficial de php: http://www.php.net/manual/es/function.session-start.php

PD: Acordate de usar esta función antes de crear las sesiones "session_start()"
@alejandro08 Hace más de 10 meses
guardas en una session, el usuario o el id.. y luego lo guardas en el post.. esos datos.. el id o el usuario..

entonces, para la tabla post, va a tener, id, titulo, descripcion, etc.. y un campo, autor.. ese campo autor almacenara lo que contiene la session activa.. sea el nombre del usuario o el id..
@alejandro08 Hace más de 10 meses
y para recuperar los datos del autor del post.. haces una consulta a la tabla post, obtenes el autor, sea el id o el nombre de usuario y luego lo buscas en la tabla usuarios..

select * from post, usuarios where post.autor = usuarios.id (o usuarios.nombreusuario)

o con un left join...
@qwerty1349 Hace más de 10 meses

<?php
session_start();
$_SESSION['MM_Username'] = "Lettro";
mysql_query("INSERT INTO post (titulo,contenido,autor) VALUES ('".$titulo."','".$contenido."','".$_SESSION['MM_Username']."')");
?>

@alejandro08 Hace más de 10 meses
podrias ser mas claro, aportando lo que ya tenes y las tablas que usas con que campos.. ?
@qwerty1349 Hace más de 10 meses
Según entiendo, quieres hacer esto:

<?php
$res = mysql_query("SELECT * FROM post WHERE id='".$_GET['id']."'");
$post = mysql_fetch_array($res);
echo $post['autor']; //autor del post
?>

@alejandro08 Hace más de 10 meses
en la tabla donde tenes los post, tenes que tener un campo... "autor" cuyo valor, sera el id del usuario quien escribio el post.. dicho id.. lo obtenes mediante la variable de sesion que utilizas.. podes guardar el id o el nombre del usuario.. ya que son datos unicos.. que no habra dos iguales en mas de una instancia..
@alejandro08 Hace más de 10 meses


<?php
session_start();
$_SESSION['Username'] = "Lettro";
mysql_query("INSERT INTO post (titulo,contenido,autor) VALUES ('".$titulo."','".$contenido."','".$_SESSION['Username']."')");
?>

@alejandro08 Hace más de 10 meses
deberias especificar como funciona tu sistema de posteos.. porque asi al aire.. es como intentar construir una casa sin tener un plano..
Tienes que ser miembro para responder en este tema