Galería de Medios
Archivos de Código
index.php
work.php
<?php
session_start();
if (!isset($_SESSION["usuario"])) {
header("Location: login.php");
exit();
}
$usuario = $_SESSION["usuario"];
$mensaje = "";
$dinero_total = 0;
$conexion = mysqli_connect("localhost", "root", "", "sistema");
if (!$conexion) {
die("Error de conexión: " . mysqli_connect_error());
}
// Obtener dinero actual
$consulta = mysqli_query($conexion, "SELECT dinero FROM usuarios WHERE nombre_usuario = '$usuario'");
$fila = mysqli_fetch_assoc($consulta);
$dinero_total = $fila["dinero"];
// Si presionó "trabajar"
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$dinero_ganado = rand(1, 15);
$sql = "UPDATE usuarios SET dinero = dinero + $dinero_ganado WHERE nombre_usuario = '$usuario'";
if (mysqli_query($conexion, $sql)) {
$dinero_total += $dinero_ganado;
$mensaje = "💼 ¡Has trabajado y ganado $$dinero_ganado!";
} else {
$mensaje = "❌ Error al actualizar el dinero.";
}
}
mysqli_close($conexion);
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Work</title>
<style>
body {
font-family: 'Segoe UI', sans-serif;
background: #e0f7fa;
margin: 0;
padding: 0;
}
.container {
max-width: 500px;
margin: 80px auto 30px;
background: white;
padding: 30px;
border-radius: 15px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
text-align: center;
}
.btn {
padding: 12px 25px;
font-size: 18px;
background: #009688;
color: white;
border: none;
border-radius: 8px;
cursor: pointer;
}
</style>
</head>
<body>
<?php include("navbar.php"); ?>
<div class="container">
<h2>Bienvenido, <?php echo htmlspecialchars($usuario); ?>!</h2>
<p style="font-size:18px;">Tu saldo actual: <strong>$<?php echo $dinero_total; ?></strong></p>
<form method="POST">
<button type="submit" class="btn">Trabajar 🛠️</button>
</form>
<p style="margin-top:20px; font-size:17px;"><?php echo $mensaje; ?></p>
</div>
</body>
</html>
banco.php
<?php
session_start();
if (!isset($_SESSION["usuario"])) {
header("Location: login.php");
exit();
}
$usuario = $_SESSION["usuario"];
$mensaje = "";
$conexion = mysqli_connect("localhost", "root", "", "sistema");
if (!$conexion) die("Error de conexión.");
// Obtener datos del usuario
$consulta = mysqli_query($conexion, "SELECT dinero, banco, tarjeta_credito FROM usuarios WHERE nombre_usuario = '$usuario'");
$fila = mysqli_fetch_assoc($consulta);
$dinero = $fila["dinero"];
$banco = $fila["banco"];
$tiene_tarjeta = $fila["tarjeta_credito"];
// Verificar si tiene la tarjeta
if (!$tiene_tarjeta) {
// Mostrar mensaje de restricción si no tiene tarjeta
mysqli_close($conexion);
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Acceso denegado</title>
<style>
body { font-family:sans-serif; background:#fff3e0; margin:0; padding:0; }
.container { max-width:600px; margin:100px auto; background:white; padding:30px; border-radius:12px; box-shadow:0 0 10px rgba(0,0,0,0.1); text-align:center; }
</style>
</head>
<body>
<?php include("navbar.php"); ?>
<div class="container">
<h2>🚫 Acceso denegado al Banco</h2>
<p>Necesitas tener una <strong>Tarjeta de Crédito 💳</strong> para ingresar al banco.</p>
<a href="tienda.php">Ir a la Tienda 🛒</a>
</div>
</body>
</html>
<?php
exit();
}
// Si envió formulario para depositar
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$cantidad = intval($_POST["cantidad"]);
if ($cantidad <= 0) {
$mensaje = "❌ Ingresa una cantidad válida.";
} elseif ($cantidad > $dinero) {
$mensaje = "❌ No tienes suficiente dinero.";
} else {
mysqli_query($conexion, "UPDATE usuarios SET dinero = dinero - $cantidad, banco = banco + $cantidad WHERE nombre_usuario = '$usuario'");
$dinero -= $cantidad;
$banco += $cantidad;
$mensaje = "✅ Has depositado $$cantidad al banco.";
}
}
mysqli_close($conexion);
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Banco</title>
<style>
body { font-family:sans-serif; background:#e8f5e9; margin:0; padding:0; }
.container { max-width:600px; margin:100px auto; background:white; padding:30px; border-radius:12px; box-shadow:0 0 10px rgba(0,0,0,0.1); text-align:center; }
.btn { padding:10px 20px; font-size:16px; background:#1976d2; color:white; border:none; border-radius:6px; cursor:pointer; }
input { padding:8px; width:100px; font-size:16px; margin-right:10px; }
</style>
</head>
<body>
<?php include("navbar.php"); ?>
<div class="container">
<h2>🏦 Banco</h2>
<p>Dinero disponible: $<?php echo $dinero; ?></p>
<p>Dinero en el banco: $<?php echo $banco; ?></p>
<form method="POST">
<input type="number" name="cantidad" placeholder="Cantidad" required>
<button class="btn" type="submit">Depositar 💰</button>
</form>
<p style="margin-top:15px;"><?php echo $mensaje; ?></p>
</div>
</body>
</html>
inversion.php
<?php
session_start();
$conexion = mysqli_connect("localhost", "root", "", "sistema");
$usuario = $_SESSION["usuario"];
// Obtener datos del usuario
$datos = mysqli_query($conexion, "SELECT dinero, bitcoins FROM usuarios WHERE nombre_usuario = '$usuario'");
$fila = mysqli_fetch_assoc($datos);
$dinero = $fila['dinero'];
$bitcoins = $fila['bitcoins'];
// Simular precio actual de bitcoin (puedes reemplazar por un historial real si gustas)
$precioBitcoin = rand(800, 1500);
// Comprar Bitcoin
if (isset($_POST['comprar'])) {
if ($dinero >= $precioBitcoin) {
mysqli_query($conexion, "UPDATE usuarios SET dinero = dinero - $precioBitcoin, bitcoins = bitcoins + 1 WHERE nombre_usuario = '$usuario'");
header("Location: inversion.php");
exit;
} else {
echo "<script>alert('No tienes suficiente dinero');</script>";
}
}
// Vender Bitcoin
if (isset($_POST['vender'])) {
if ($bitcoins >= 1) {
mysqli_query($conexion, "UPDATE usuarios SET dinero = dinero + $precioBitcoin, bitcoins = bitcoins - 1 WHERE nombre_usuario = '$usuario'");
header("Location: inversion.php");
exit;
} else {
echo "<script>alert('No tienes bitcoins para vender');</script>";
}
}
// Simular historial de precios
$historial = [];
for ($i = 0; $i < 10; $i++) {
$historial[] = rand(800, 1500);
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Inversiones</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
}
canvas {
max-width: 400px;
margin: 20px auto;
}
.info {
margin-bottom: 15px;
}
button {
padding: 8px 16px;
margin: 5px;
}
</style>
</head>
<body>
<?php include("navbar.php"); ?>
<h2>📈 Inversión en Bitcoins</h2>
<div class="info">
<p>💰 Dinero disponible: <b>$<?= $dinero ?></b></p>
<p>🪙 Bitcoins disponibles: <b><?= $bitcoins ?></b></p>
<p>📊 Precio actual del Bitcoin: <b>$<?= $precioBitcoin ?></b></p>
</div>
<form method="POST">
<button name="vender">Vender Bitcoin</button>
</form>
<canvas id="grafico" width="400" height="200"></canvas>
<script>
const ctx = document.getElementById('grafico').getContext('2d');
const grafico = new Chart(ctx, {
type: 'line',
data: {
labels: [<?php for ($i = 1; $i <= count($historial); $i++) echo $i . ","; ?>],
datasets: [{
label: 'Precio histórico del Bitcoin',
data: [<?= implode(",", $historial) ?>],
backgroundColor: 'rgba(255, 206, 86, 0.2)',
borderColor: '#ffaa00',
borderWidth: 2,
tension: 0.4
}]
},
options: {
responsive: true,
scales: {
y: {
beginAtZero: false
}
}
}
});
</script>
</body>
</html>
login.php
<?php
session_start();
$mensaje = "";
$conexion = mysqli_connect("localhost", "root", "", "sistema");
if (!$conexion) die("Error de conexión");
// LOGIN
if (isset($_POST["login"])) {
$usuario = $_POST["nombre_usuario"];
$clave = $_POST["contraseña"];
$consulta = mysqli_query($conexion, "SELECT * FROM usuarios WHERE nombre_usuario = '$usuario'");
$fila = mysqli_fetch_assoc($consulta);
if ($fila && password_verify($clave, $fila["contraseña"])) {
$_SESSION["usuario"] = $usuario;
header("Location: index.php");
exit();
} else {
$mensaje = "❌ Usuario o contraseña incorrectos.";
}
}
// REGISTRO
if (isset($_POST["registro"])) {
$usuario = $_POST["nombre_usuario"];
$clave = $_POST["contraseña"];
$clave_segura = password_hash($clave, PASSWORD_DEFAULT);
// Verificar si ya existe
$existe = mysqli_query($conexion, "SELECT * FROM usuarios WHERE nombre_usuario = '$usuario'");
if (mysqli_num_rows($existe) > 0) {
$mensaje = "⚠️ El nombre de usuario ya existe.";
} else {
mysqli_query($conexion, "INSERT INTO usuarios (nombre_usuario, contraseña) VALUES ('$usuario', '$clave_segura')");
$mensaje = "✅ Usuario registrado correctamente. Ahora puedes iniciar sesión.";
}
}
mysqli_close($conexion);
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Login & Registro</title>
<style>
body {
font-family: sans-serif;
background: #e0f7fa;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.contenedor {
background: white;
padding: 30px;
border-radius: 12px;
box-shadow: 0 0 15px rgba(0,0,0,0.15);
width: 300px;
text-align: center;
}
input {
width: 90%;
padding: 10px;
margin: 10px 0;
font-size: 15px;
}
button {
padding: 10px 20px;
font-size: 15px;
background: #009688;
color: white;
border: none;
border-radius: 8px;
cursor: pointer;
margin-top: 10px;
}
.mensaje {
margin-top: 15px;
color: #d32f2f;
}
h2 {
margin-bottom: 10px;
}
</style>
</head>
<body>
<div class="contenedor">
<h2>🔐 Iniciar Sesión</h2>
<form method="POST">
<input type="text" name="nombre_usuario" placeholder="Usuario" required>
<input type="password" name="contraseña" placeholder="Contraseña" required>
<button type="submit" name="login">Entrar</button>
</form>
<h2 style="margin-top:30px;">📝 Registrarse</h2>
<form method="POST">
<input type="text" name="nombre_usuario" placeholder="Nuevo usuario" required>
<input type="password" name="contraseña" placeholder="Nueva contraseña" required>
<button type="submit" name="registro">Registrarse</button>
</form>
<p class="mensaje"><?php echo $mensaje; ?></p>
</div>
</body>
</html>
logout.php
<?php
session_start();
session_destroy();
header("Location: login.php");
exit();
navbar.php
<?php
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
$usuario = $_SESSION['usuario'] ?? 'Invitado';
?>
<style>
.navbar {
background-color: #00695c;
color: white;
padding: 15px 30px;
display: flex;
justify-content: space-between;
align-items: center;
}
.navbar .logo {
font-size: 24px;
font-weight: bold;
display: flex;
align-items: center;
}
.navbar .logo img {
height: 30px;
margin-right: 10px;
}
.navbar a {
color: white;
margin-left: 20px;
text-decoration: none;
font-weight: 500;
}
.navbar .right {
display: flex;
align-items: center;
}
.logout-btn {
background: #e53935;
color: white;
padding: 10px 20px;
border: none;
border-radius: 8px;
margin-left: 20px;
cursor: pointer;
}
</style>
<div class="navbar">
<div class="logo">
<img src="logo.png" alt="Logo"> EcoSistema
</div>
<div class="right">
<a href="index.php">🏠 Inicio</a>
<a href="work.php">💼 Work</a>
<li><a href="inversion.php">Inversión 💹</a></li>
<li><a href="retirar.php">Retirar 💵</a></li>
<a href="banco.php">🏦 Banco</a>
<a href="tienda.php">🛒 Tienda</a>
<a href="perfil.php">👤 Perfil</a>
<?php if ($usuario !== 'Invitado') : ?>
<form action="logout.php" method="post" style="display:inline;">
<button class="logout-btn" type="submit">Cerrar sesión</button>
</form>
<?php endif; ?>
</div>
</div>
perfil.php
<?php
session_start();
if (!isset($_SESSION["usuario"])) {
header("Location: login.php");
exit();
}
$usuario = $_SESSION["usuario"];
$mensaje = "";
// Conexión
$conexion = mysqli_connect("localhost", "root", "", "sistema");
if (!$conexion) die("Error de conexión.");
// Subir foto de perfil
if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_FILES["foto"])) {
$nombre_archivo = $_FILES["foto"]["name"];
$ruta_temp = $_FILES["foto"]["tmp_name"];
$carpeta_destino = "uploads/";
$extension = pathinfo($nombre_archivo, PATHINFO_EXTENSION);
$nuevo_nombre = $usuario . "_" . time() . "." . $extension;
$ruta_final = $carpeta_destino . $nuevo_nombre;
if (move_uploaded_file($ruta_temp, $ruta_final)) {
// Guardar en base de datos
mysqli_query($conexion, "UPDATE usuarios SET foto_perfil = '$ruta_final' WHERE nombre_usuario = '$usuario'");
$mensaje = "✅ Foto de perfil actualizada.";
} else {
$mensaje = "❌ Error al subir la imagen.";
}
}
// Obtener datos del usuario
$consulta = mysqli_query($conexion, "SELECT * FROM usuarios WHERE nombre_usuario = '$usuario'");
$datos = mysqli_fetch_assoc($consulta);
$dinero = $datos["dinero"];
$banco = $datos["banco"];
$tarjeta = $datos["tarjeta_credito"] ? "Sí ✅" : "No ❌";
$foto_perfil = $datos["foto_perfil"] ?? "uploads/default.png";
mysqli_close($conexion);
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Perfil de Usuario</title>
<style>
body {
font-family: 'Segoe UI', sans-serif;
background: #f0f4c3;
margin: 0;
padding: 0;
}
.container {
max-width: 600px;
margin: 100px auto;
background: white;
padding: 30px;
border-radius: 12px;
box-shadow: 0 0 15px rgba(0,0,0,0.15);
text-align: center;
}
.perfil-img {
width: 150px;
height: 150px;
border-radius: 50%;
object-fit: cover;
border: 4px solid #009688;
margin-bottom: 20px;
}
input[type="file"] {
margin-top: 10px;
}
.btn {
margin-top: 10px;
padding: 10px 20px;
background-color: #009688;
color: white;
border: none;
border-radius: 8px;
cursor: pointer;
}
p {
font-size: 18px;
}
.stats {
text-align: left;
margin-top: 20px;
}
.stats p {
margin: 8px 0;
}
</style>
</head>
<body>
<?php include("navbar.php"); ?>
<div class="container">
<h2>👤 Perfil de <?php echo htmlspecialchars($usuario); ?></h2>
<img src="<?php echo htmlspecialchars($foto_perfil); ?>" alt="Foto de perfil" class="perfil-img">
<form method="POST" enctype="multipart/form-data">
<input type="file" name="foto" accept="image/*" required><br>
<button type="submit" class="btn">Subir nueva foto</button>
</form>
<p style="color: green;"><?php echo $mensaje; ?></p>
<div class="stats">
<p><strong>💵 Dinero disponible:</strong> $<?php echo $dinero; ?></p>
<p><strong>🏦 Dinero en el banco:</strong> $<?php echo $banco; ?></p>
<p><strong>💳 Tarjeta de crédito:</strong> <?php echo $tarjeta; ?></p>
</div>
</div>
</body>
</html>
retirar.php
<?php
session_start();
if (!isset($_SESSION["usuario"])) {
header("Location: login.php");
exit();
}
$usuario = $_SESSION["usuario"];
$mensaje = "";
$conexion = mysqli_connect("localhost", "root", "", "sistema");
if (!$conexion) {
die("Error de conexión: " . mysqli_connect_error());
}
// Obtener saldo del banco y dinero actual
$consulta = mysqli_query($conexion, "SELECT dinero, banco FROM usuarios WHERE nombre_usuario = '$usuario'");
$fila = mysqli_fetch_assoc($consulta);
$dinero = $fila["dinero"];
$banco = $fila["banco"];
// Si se envió el formulario
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$cantidad = intval($_POST["cantidad"]);
if ($cantidad > 0 && $cantidad <= $banco) {
// Realizar el retiro
$sql = "UPDATE usuarios
SET banco = banco - $cantidad,
dinero = dinero + $cantidad
WHERE nombre_usuario = '$usuario'";
if (mysqli_query($conexion, $sql)) {
$mensaje = "✅ Retiraste $$cantidad del banco.";
$dinero += $cantidad;
$banco -= $cantidad;
} else {
$mensaje = "❌ Error al retirar el dinero.";
}
} else {
$mensaje = "⚠️ Cantidad inválida o insuficiente en el banco.";
}
}
mysqli_close($conexion);
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Retirar del banco</title>
<style>
body {
font-family: Arial, sans-serif;
background: #f3f3f3;
}
.container {
max-width: 450px;
margin: 70px auto;
background: #fff;
padding: 25px;
border-radius: 10px;
box-shadow: 0 3px 10px rgba(0,0,0,0.15);
text-align: center;
}
input[type="number"] {
padding: 10px;
width: 60%;
font-size: 16px;
margin-bottom: 10px;
}
button {
padding: 10px 20px;
background: #00796b;
color: white;
border: none;
font-size: 16px;
border-radius: 6px;
cursor: pointer;
}
p {
font-size: 16px;
}
</style>
</head>
<body>
<?php include("navbar.php"); ?>
<div class="container">
<h2>🏦 Retirar Dinero del Banco</h2>
<p>Saldo en banco: <strong>$<?= $banco ?></strong></p>
<p>Dinero disponible: <strong>$<?= $dinero ?></strong></p>
<form method="POST">
<input type="number" name="cantidad" placeholder="Cantidad a retirar" min="1" max="<?= $banco ?>" required>
<br>
<button type="submit">Retirar</button>
</form>
<p style="margin-top:15px;"><?= $mensaje ?></p>
</div>
</body>
</html>
sistema.sql
-- Crear base de datos
CREATE DATABASE IF NOT EXISTS economia;
USE economia;
-- Tabla de usuarios
CREATE TABLE IF NOT EXISTS usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre_usuario VARCHAR(50) UNIQUE NOT NULL,
contraseña VARCHAR(255),
dinero INT DEFAULT 0,
banco INT DEFAULT 0,
tarjeta_credito BOOLEAN DEFAULT 0,
foto_perfil VARCHAR(100) DEFAULT 'uploads/default.png'
);
-- Insertar un usuario de prueba
INSERT INTO usuarios (nombre_usuario, contraseña, dinero, banco, tarjeta_credito)
VALUES ('Admin', '1234', 1000, 0, 0);
tienda.php
<?php
session_start();
if (!isset($_SESSION["usuario"])) {
header("Location: login.php");
exit();
}
$usuario = $_SESSION["usuario"];
$mensaje = "";
$conexion = mysqli_connect("localhost", "root", "", "sistema");
if (!$conexion) die("Error de conexión.");
$consulta = mysqli_query($conexion, "SELECT dinero, tarjeta_credito, bitcoins FROM usuarios WHERE nombre_usuario = '$usuario'");
$fila = mysqli_fetch_assoc($consulta);
$dinero = $fila["dinero"];
$tiene_tarjeta = $fila["tarjeta_credito"];
$bitcoins = $fila["bitcoins"] ?? 0;
// Comprar tarjeta de crédito
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST["comprar_tarjeta"])) {
$costo_tarjeta = 500;
if ($tiene_tarjeta) {
$mensaje = "✅ Ya tienes una tarjeta de crédito.";
} elseif ($dinero >= $costo_tarjeta) {
mysqli_query($conexion, "UPDATE usuarios SET dinero = dinero - $costo_tarjeta, tarjeta_credito = 1 WHERE nombre_usuario = '$usuario'");
$mensaje = "💳 ¡Has comprado la tarjeta de crédito!";
$dinero -= $costo_tarjeta;
$tiene_tarjeta = 1;
} else {
$mensaje = "❌ No tienes suficiente dinero para la tarjeta.";
}
}
// Comprar Bitcoin
if (isset($_POST["comprar_bitcoin"])) {
$precio_bitcoin = 1000;
if ($dinero >= $precio_bitcoin) {
mysqli_query($conexion, "UPDATE usuarios SET dinero = dinero - $precio_bitcoin, bitcoins = bitcoins + 1 WHERE nombre_usuario = '$usuario'");
$mensaje = "🪙 Compraste 1 Bitcoin.";
$dinero -= $precio_bitcoin;
$bitcoins += 1;
} else {
$mensaje = "❌ No tienes suficiente dinero para comprar bitcoins.";
}
}
}
mysqli_close($conexion);
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Tienda</title>
<style>
body { font-family:sans-serif; background:#f1f8e9; margin:0; padding:0; }
.container { max-width:600px; margin:100px auto; background:white; padding:30px; border-radius:12px; box-shadow:0 0 10px rgba(0,0,0,0.1); text-align:center; }
.btn { padding:10px 20px; font-size:16px; background:#4caf50; color:white; border:none; border-radius:6px; cursor:pointer; margin-top: 10px; }
</style>
</head>
<body>
<?php include("navbar.php"); ?>
<div class="container">
<h2>🛒 Tienda</h2>
<p>Dinero actual: $<?php echo $dinero; ?></p>
<p>Bitcoins: <?php echo $bitcoins; ?> 🪙</p>
<!-- Comprar tarjeta -->
<form method="POST">
<button class="btn" name="comprar_tarjeta" <?php if($tiene_tarjeta) echo "disabled"; ?>>
Comprar Tarjeta de Crédito 💳 ($500)
</button>
</form>
<!-- Comprar Bitcoin -->
<form method="POST">
<button class="btn" name="comprar_bitcoin">
Comprar 1 Bitcoin 🪙 ($1000)
</button>
</form>
<p style="margin-top:15px;"><?php echo $mensaje; ?></p>
</div>
</body>
</html>
Comentarios (2)
Inicia sesión para comentar
Buen sistema, te la rifaste Kira
Gracias jaja, vere si hago otro parecido