Código de Calculadora Científica en PHP con Guardado de Calculos

0
35

file: calculator.php

<?php // Iniciar sesiones para almacenar datos session_start(); // Función para realizar cálculos científicos function calculate($expression) { try { // Evaluar la expresión matemática $result = eval('return ' . $expression . ';'); return $result; } catch (ParseError $e) { return "Error: Expresión inválida"; } } // Manejo de peticiones POST para guardar calculos if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Obtener la expresión y el nombre del usuario $expression = $_POST['expression']; $username = $_SESSION['username']; // Guardar el cálculo en un archivo JSON if ($username) { $file = "calculations_" . $username . ".json"; $data = json_decode(file_get_contents($file), true); if (!is_array($data)) { $data = []; } $data[] = [ 'expression' => $expression, 'result' => calculate($expression) ]; file_put_contents($file, json_encode($data, JSON_PRETTY_PRINT)); } } // Manejo de peticiones GET para mostrar calculos if ($_SERVER['REQUEST_METHOD'] === 'GET') { // Obtener el nombre del usuario $username = $_GET['username']; // Mostrar los calculos del usuario if ($username) { $file = "calculations_" . $username . ".json"; if (file_exists($file)) { $data = json_decode(file_get_contents($file), true); if (is_array($data)) { echo "<h3>Calculos de $username</h3>"; echo "<ul>"; foreach ($data as $calculation) { echo "<li>"; echo "Expresión: $calculation[expression]"; echo "<br>"; echo "Resultado: $calculation[result]"; echo "</li>"; } echo "</ul>"; } } } } // Manejo de peticiones para mostrar ayuda if ($_SERVER['REQUEST_METHOD'] === 'GET') { // Mostrar ayuda echo "<h3>Help</h3>"; echo "<p>Para realizar un cálculo, ingresa la expresión matemática en el campo de texto y haz clic en el botón de cálculo.</p>"; echo "<p>Para guardar un cálculo, ingresa tu nombre de usuario en el campo de texto y haz clic en el botón de guardar.</p>"; echo "<p>Para mostrar tus calculos, ingresa tu nombre de usuario en el campo de texto y haz clic en el botón de mostrar.</p>"; } // Manejo de peticiones para mostrar calculos de todos los usuarios if ($_SERVER['REQUEST_METHOD'] === 'GET') { // Mostrar calculos de todos los usuarios $files = glob("calculations_*.json"); if ($files) { echo "<h3>Calculos de todos los usuarios</h3>"; echo "<ul>"; foreach ($files as $file) { $username = substr($file, 14, -5); $data = json_decode(file_get_contents($file), true); if (is_array($data)) { echo "<li>"; echo "Usuario: $username"; echo "<br>"; echo "<ul>"; foreach ($data as $calculation) { echo "<li>"; echo "Expresión: $calculation[expression]"; echo "<br>"; echo "Resultado: $calculation[result]"; echo "</li>"; } echo "</ul>"; echo "</li>"; } } echo "</ul>"; } } </code>
البحث
الأقسام
إقرأ المزيد
Cybersecurity
Ó╣ÇÓ©äÓ©úÓ©ÀÓ╣êÓ©¡Ó©çÓ©íÓ©ÀÓ©¡Ó©üÓ©▓Ó©úÓ©ØÓ©ÂÓ©üÓ©¡Ó©ÜÓ©úÓ©íÓ©öÓ╣ëÓ©▓Ó©ÖÓ©äÓ©ºÓ©▓Ó©íÓ©øÓ©ÑÓ©¡Ó©öÓ©áÓ©▒Ó©óÓ©ùÓ©▓Ó©çÓ©äÓ©¡Ó©íÓ©×Ó©┤Ó©ºÓ╣ÇÓ©òÓ©¡Ó©úÓ╣î (Thai)
Ó╣ÇÓ©äÓ©úÓ©ÀÓ╣êÓ©¡Ó©çÓ©íÓ©ÀÓ©¡Ó©üÓ©▓Ó©úÓ©ØÓ©ÂÓ©üÓ©¡Ó©ÜÓ©úÓ©íÓ©öÓ╣ëÓ©▓Ó©ÖÓ©äÓ©ºÓ©▓Ó©íÓ©øÓ©ÑÓ©¡Ó©öÓ...
بواسطة Mario Serrano 2026-06-30 10:08:53 0 42
Cybersecurity
CVE-2026-12866 : Ex├®cution de Code Arbitraire dans expr-eval via toJSFunction()
CVE-2026-12866 : Ex├®cution de Code Arbitraire dans expr-eval via toJSFunction() R├®sum├® de la...
بواسطة Mario Serrano 2026-06-30 05:11:43 0 177
أخرى
Titel (in Dutch) (Dutch)
Titel (in Dutch)Samenvatting (in Dutch)Het artikel beschrijft een belangrijk cijfer in de...
بواسطة Mario Serrano 2026-06-30 06:06:56 0 8
Cybersecurity
┌®┘êϪÏ▒█îÏ▓█î┘ä Ï│█îÏ¿Ï▒█î┘å┌» ϺÏ│┌®┘êÏ▒█îϬ█î ϬÏ╣┘ä█î┘à█î (Urdu)
┌®┘êϪÏ▒█îÏ▓█î┘ä Ï│█îÏ¿Ï▒█î┘å┌» ϺÏ│┌®┘êÏ▒█îϬ█î ϬÏ╣┘ä█î┘à█î┘à┘éÏ»┘à█ü (Urdu)Ϻ█î┘å...
بواسطة Mario Serrano 2026-06-30 10:51:40 0 50
Cybersecurity
ðùð░ð│ð¥ð╗ð¥ð▓ð¥ð║ (ðúð║ÐÇð░Ðùð¢ÐüÐîð║ð¥ÐÄ ð╝ð¥ð▓ð¥ÐÄ)
ðùð░ð│ð¥ð╗ð¥ð▓ð¥ð║ (ðúð║ÐÇð░Ðùð¢ÐüÐîð║ð¥ÐÄ ð╝ð¥ð▓ð¥ÐÄ)ðíÐâð╝ð░ÐÇð¢ð©ð╣ ð¥ð│ð╗ÐÅð┤...
بواسطة Mario Serrano 2026-06-30 16:20:17 0 10