Foros del Web » Programando para Internet » PHP »

Problema con Sistema de usuario.

Estas en el tema de Problema con Sistema de usuario. en el foro de PHP en Foros del Web. Hola a todos, soy nuevo en el foro y como estoy estudiando php me uni para poder pulir algunas dudas. Por lo que estuve viendo ...
  #1 (permalink)  
Antiguo 29/06/2015, 17:50
 
Fecha de Ingreso: junio-2015
Mensajes: 2
Antigüedad: 8 años, 9 meses
Puntos: 0
Información Problema con Sistema de usuario.

Hola a todos, soy nuevo en el foro y como estoy estudiando php me uni para poder pulir algunas dudas. Por lo que estuve viendo es muy completa esta comunidad.

Bien paso a mostrarles mi problema.

Cree un sistema de usuario. ahora el problema es que quiero que cuando el usuario se loguee se le muestre una pagina para que ingrese dicho valor y se le agregue en su misma ID en la base de datos. Paso imágenes mas descriptivas

Inicio sesión



Me muestra el campo de horas en home.php



Luego de apretar GO! me carga me pone la pagina en blanco pero en la tabla no se agrega nada.

Muestro mi tabla.



Aqui es donde quiero que se cargue ese valor.

Ahora muestro como tengo los archivos PHP.

home.php

<?php
include_once 'dbconfig.php';
session_start();
if(!$user->is_loggedin())
{
$user->redirect('index.php');
}
$user_id = $_SESSION['user_session'];
$stmt = $DB_con->prepare("SELECT * FROM users WHERE user_id=:user_id");
$stmt->execute(array(":user_id"=>$user_id));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
?>
<!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" />
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="style.css" type="text/css" />
<title>welcome - <?php print($userRow['user_email']); ?></title>
</head>

<body>
<div class="header">
<div class="left">
<label><a href="http://cleartuts.blogspot.com/">cleartuts - programming blog</a></label>
</div>
<div class="right">
<label><a href="logout.php?logout=true"><i class="glyphicon glyphicon-log-out"></i> logout</a></label>
</div>
</div>
<div class="content">
welcome : <?php print($userRow['user_name']); ?>
<br /><br />

<form name="horas" method="post" action="horas.php">

<p>HORAS:<br>
<label>
<input name="horas" type="text" id="horas">
</label>
</p>

<p>
<label></label>
<label>
<input type="submit" name="Submit" value="Go!">
</label>
</p>
<p>
This is Programming Blog Featuring Tutorials on PHP, MySQL, Ajax, jQuery, Web Design and More...<br /><br />
<a href="http://cleartuts.blogspot.com/2015/04/php-login-and-registration-script-with.html">tutorial link</a>
</p>
</div>
</body>
</html>

___________________________________

horas.php

<?php
session_start();

class USER
{

function __construct($DB_con)
{
$this->db = $DB_con;
}

public function register($fname,$lname,$uname,$Horas,$upass)
{
try
{

$new_password = ($upass);




$sql = mysql_query("INSERT INTO users (horas)
VALUES('{$_SESSION['horas']}')");

$stmt->bindparam(":horas", $horas);


$stmt->execute();

return $stmt;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}

public function login($uname,$umail,$upass)
{
try
{
$stmt = $this->db->prepare("SELECT * FROM users WHERE user_name=:uname OR user_email=:umail LIMIT 1");
$stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() > 0)
{

$_SESSION['user_session'] = $userRow['user_id'];
return true;



}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}

public function is_loggedin()
{
if(isset($_SESSION['user_session']))
{
return true;
}
}

public function redirect($url)
{
header("Location: $url");
}

public function logout()
{
session_destroy();
unset($_SESSION['user_session']);
return true;
}
}
?>



DESDE YA SUMAMENTE AGRADECIDO POR SU TIEMPO.
  #2 (permalink)  
Antiguo 30/06/2015, 14:04
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con Sistema de usuario.

con la función update lo puedes hacer validando primero si no hay algun reegistro, es decir si esta vacio que lo inserte y si no que lo actualice, otra cosa, coloca el codigo dentro de las etiquetas para verlo mejor, asi da sueño.
o mejor trabaja con 2 tablas y que la tabla de horas se actualice de acuerdo al usuario logueado
  #3 (permalink)  
Antiguo 01/07/2015, 15:12
 
Fecha de Ingreso: junio-2015
Mensajes: 2
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Problema con Sistema de usuario.

Cita:
Iniciado por xfxstudios Ver Mensaje
con la función update lo puedes hacer validando primero si no hay algun reegistro, es decir si esta vacio que lo inserte y si no que lo actualice, otra cosa, coloca el codigo dentro de las etiquetas para verlo mejor, asi da sueño.
o mejor trabaja con 2 tablas y que la tabla de horas se actualice de acuerdo al usuario logueado
Ah ok Como hago para hacer eso como seria el codigo para actualizar.? Perdon mi ignorancia estoy estudiando php y me interesa saber esto.

Gracias espero su respuesta.
  #4 (permalink)  
Antiguo 01/07/2015, 15:53
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con Sistema de usuario.

yo lo haria de esta manera, claro tampoco soy experto pero es la logica:
Código PHP:
Ver original
  1. //recibo las variables desde el formulario
  2. $usuario = $_GET['usuario'];
  3. $horas = $_GET['hora'];
  4.  
  5. //realizo una conslta para verificar que el usuario esta en la base
  6. $mysqli = new MySQLi(HOST, USUARIO, PASS, BASE);
  7. $resultado = $mysqli->query("SELECT usuario FROM tutabla WHERE usuario = '$usuario'";
  8. $row_result = $result->fetch_assoc();
  9. $totalrows_result = mysqli_num_rows($result);
  10.  
  11. if ($totalrows_result == 1) {
  12.  
  13. $actualiza = "UPDATE tutabla SET hora = '$horas' WHERE usuario = '$usuario';
  14. $result_update = $mysqli->query($actualiza);
  15. mysqli_close($mysqli);
  16. }
  17.  
  18. else {
  19.  
  20. $inserta = "INSERT INTO tutabla (dato1,dato2,dato3) VALUES ('dato1','dato2','dato3'";
  21. $result_insert = $mysqli->query($inserta);
  22. mysqli_close($mysqli);
  23. }
No he probado elcodigo, en caso de que no te funcione, solo analizalo y veras que lo resuelves, de todas formas avisas a ver en que mas puedo ayudarte.
  #5 (permalink)  
Antiguo 01/07/2015, 16:51
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con Sistema de usuario.

mejor usa este codigo que si lo he probado y funciona perfecto:
Código PHP:
Ver original
  1. //realizo la conexion
  2. $dbConex=$seguridad;
  3. //recibo las variables
  4. $usuario = $_GET['nombre'];
  5. $horas = $_GET['horas'];
  6. //verifico que el usuario no este vacio
  7. if($usuario == "") {
  8.     $msg = "";
  9. }
  10. else {
  11. //si todo esta bien procedo con la inserción
  12. //Insercion de datos con MYSQLi
  13. $link = new MySQLi($hostname_seguridad, $username_seguridad, $password_seguridad, $database_seguridad);
  14. $query = "INSERT INTO fecha (nombre,fecha) values ('$usuario','$horas') ON DUPLICATE KEY UPDATE fecha = '$horas'";
  15. $result = $link->query($query);
  16. }
  17. if ($result)
  18. $msg = 'Los datos han sido insertados en la base de datos';
  19. else
  20. $msg = '';
  21.  
  22. mysqli_close($link); // Cerramos la conexion con la base de datos
Como puedes ver alli estoy utilizando la funcion ON DUPLICATE KEY la cual verifica el campo que tengas como unico y si coincide con tu variable en este caso usuario entonces actualza la hora si no inserta el nuevo registro.

Etiquetas: session, sistema, usuarios
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 06:04.