Muy buenas, antes que nada me presento:
Mi nombre es Matias y estoy comenzando en esto del desarrollo de aplicaciones en PHP.
LLevo varias horas tras el ordenador leyendo y documentandome acerca de como funciona, pero como dicen "La práctica hace al maestro" he decidido comenzar mi primer proyecto para poner a prueba lo que he aprendido.
Antes de comentaros mi problema, os agradezco vuestro tiempo por leerlo y toda ayuda que me podais brindar.
Estoy desarrollando un programa en el cual, los usuarios pueden realizar operaciones de "prueba" en el mercado bursátil, forex, etc.
(para los que no sabéis de que va: [URL="http://es.wikipedia.org/wiki/Mercado_de_divisas"]Enlace a Wikipedia[/URL])
Hasta ahora, el proyecto consta de 4 páginas.
1
Op.php (Raíz de la página) Código PHP:
<?php
//Configuracion para conectar a db.
require_once("config/db.php");
// Carga la clase para nuevas operaciones.
require_once("classes/Newop.php");
//Crea el objeto para nuevas operaciones
$newop = new Newop();
// Muestra el formulario de operaciones
include("views/formforex.php");
2
db.php (Datos para conexión a db) Código PHP:
<?php
/* Configuración conexión db*/
define("DB_HOST", "localhost");
define("DB_NAME", "login");
define("DB_USER", "root");
define("DB_PASS", "");
3
formforex.php (Formulario recolección de datos) Código PHP:
<?php
if (isset($newop)) {
if ($newop->errors) {
foreach ($newop->errors as $error) {
echo $error;
}
}
if ($newop->messages) {
foreach ($newop->messages as $message) {
echo $message;
}
}
}
?>
Código HTML:
<!-- op form -->
</div>
<form method="post" action="op.php" name="x">
<label for="select_simbol">
<div align="center">Simbolo</div>
</label>
<div align="center">
<select name="select_simbol" class="select_simbol" name="simbol" />
<option value ="eurusd">EURUSD</option>
<option value ="usdchf">USDCHF</option>
</select>
<br />
<label for="select_tipo">
<div align="center">Tipo</div>
</label>
<div align="center">
<select name="select_tipo" class="select_tipo" name="tipo" />
<option value name="buy">Comprar</option>
<option value name="sell">Vender</option>
</select>
<br/>
<input type="submit" class="bt" name="newop" value="Ejecutar" />
</div>
</form>
4
newop.php (Guardando datos en db) Código PHP:
<?php
class Newop
{
private $db_connection = null;
public $errors = array();
public $messages = array();
public function __construct()
{
if (isset($_POST["newop"])) {
$this->ejecutarnuevaop();
}
}
private function ejecutarnuevaop()
{
switch($_POST['select_simbol']){
case "eurusd":
function between($beg, $end, $str) {
$a = explode($beg, $str, 2);
$b = explode($end, $a[1]);
return $beg . $b[0] . $end;}
$url = file_get_contents ("https://es.finance.yahoo.com/q?s=EURUSD=X");
$eleccion = between('<span id="yfs_l10_eurusd=x">', '</span>', $url);
break;
case "usdchf":
$eleccion = "test"; break;
{
// crando conexión a db
$this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
// Si no hay errores
if (!$this->db_connection->connect_errno) {
$fecha = date('d-m-Y');
$tipo = $_POST['tipo'];
$estado = "abierto";
$capitalrequerido= "4";
$sql = "INSERT INTO operaciones ( Tipo, Cotizacion, Fecha, CapitalRequerido, Estado)
VALUES('" . $Tipo . "', '" . $seleccion . "', '" . $fecha . "','" . $capitalrequerido . "', '" . $estado . "',);";
$query_new_op_insert = $this->db_connection->query($sql);
// si la operacion se realizo con exito
if ($query_new_op_insert) {
$this->messages[] = "Op se ha realizado con exito.";
} else {
$this->errors[] = "Sorry, your op failed. Please go back and try again.";
}
}
else {
$this->errors[] = "Sorry, no database connection.";
}
}
}
}
}
El error (por el cual hace 3 horas estoy frente al monitor probando, cambiando, sin obtener resultado alguno.) es que, al hacer click en "ejecutar" no funciona, ni da error ni nada. Simplemente el estado de navegación dice "esperando a localhost..." y la página sigue igual.
Es desesperante y soy consciente de que puede ser un error muy sencillo (de principiante, vamos...)
Debo aclarar que el código no fue escrito integramente por mí, tome como plantilla un registro y login (su autor php-login) y lo adapte a mi programa.
Os agradezco de antemano a todos los que tengais tiempo de leer y brindarme alguna solución, yo de momento seguiré buscando en que estoy fallando.