Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Antoniio

#1
Hola, buenas. Quisiera ver cuál es la forma de tener una categoría oculta o que todos los servicios que cree se vayan a una categoría sin tener que seleccionarla.
El sistema me pide opción de "Descripción, Categoría y Precio" pero quité el de "Categoría" dejando solo el de "Descripción y Precio" pero cuando creo un servicio me arroja este error:



Osea, hay una condición en el código que me impide crear un servicio sin categoría, por eso quiero saber cómo hago para que no me mande esa condición. La parte del código que debo modificar es esta:

Código (php) [Seleccionar]
<?php
 
if(isset($_POST['add_product'])){
   
$req_fields = array('product-title','product-categorie','product-quantity','buying-price''saleing-price' );
   
validate_fields($req_fields);
   if(empty(
$errors)){
     
$p_name  remove_junk($db->escape($_POST['product-title']));
     
$p_cat   remove_junk($db->escape($_POST['product-categorie']));
     
$p_qty   remove_junk($db->escape($_POST['product-quantity']));
     
$p_buy   remove_junk($db->escape($_POST['buying-price']));
     
$p_sale  remove_junk($db->escape($_POST['saleing-price']));
     if (
is_null($_POST['product-photo']) || $_POST['product-photo'] === "") {
       
$media_id '0';
     } else {
       
$media_id remove_junk($db->escape($_POST['product-photo']));
     }
     
$date    make_date();
     
$query  "INSERT INTO products (";
     
$query .=" name,quantity,buy_price,sale_price,categorie_id,media_id,date";
     
$query .=") VALUES (";
     
$query .=" '{$p_name}', '{$p_qty}', '{$p_buy}', '{$p_sale}', '{$p_cat}', '{$media_id}', '{$date}'";
     
$query .=")";
     
$query .=" ON DUPLICATE KEY UPDATE name='{$p_name}'";
     if(
$db->query($query)){
       
$session->msg('s',"Producto agregado exitosamente. ");
       
redirect('add_product.php'false);
     } else {
       
$session->msg('d',' Lo siento, registro falló.');
       
redirect('product.php'false);
     }

   } else{
     
$session->msg("d"$errors);
     
redirect('add_product.php',false);
   }

 }

?>

<?php include_once('layouts/header.php'); ?>
<div class="row">
 <div class="col-md-12">
   <?php echo display_msg($msg); ?>
 </div>
</div>
 <div class="row">
 <div class="col-md-9">
     <div class="panel panel-default">
       <div class="panel-heading">
         <strong>
           <span class="glyphicon glyphicon-th"></span>
           <span>Agregar Servicio</span>
        </strong>
       </div>


Y este:

Código (php) [Seleccionar]
function validate_fields($var){
 global $errors;
 foreach ($var as $field) {
   $val = remove_junk($_POST[$field]);
   if(isset($val) && $val==''){
     $errors = $field ." No puede estar en blanco.";
     return $errors;
   }
 }
}



Me podrían ayudar a saber cómo quitar que sea obligatoria una categoría o cómo hacer que todos los servicios que se generen se vayan a 1 categoría que esté oculta??

Gracias de antemano, saludos !!!



Mod: Tamaño máximo de las imágenes -> 800x600px.
#2
Programación C/C++ / Cual es el error en mi clase?
17 Septiembre 2018, 23:01 PM
Hola, alguien sabe cuáles son los errores que tienen mis clases??

class Ejemplo{
public:
Ejemplo(int y = 10): dato(y) {}
int getDatoIncrementado() const { return ++dato; }
private:
int dato;
};



Por ejemplo, puedo incluir contructores simultaneamente así?
Tiempo(int hora = 0, int min = 0, int seg = 0);

Tiempo();
#3
Hola, buenas. Hace unos años compré una PC lanix mini torre, viene el monitor con bocinas integradas, funcionaba correctamente, después de unos años dejé de usarla y el CPU ya no funcionó.

Hace una semana puse ese monitor en otro CPU, formateé esa computadora y le instalé el windows 10, el problema es que las bocinas no funcionan, no se escucha, intenté lo siguiente:

1) El clásico "Solucionar Problemas", la opción que te da windows pero no funcionó.
2) Busqué los drivers de "lanix mini torre" y los instalé, específicamente los de sonido pero tampoco funcionó.
3) Seguí algunos tutoriales en youtube para solucionar ese problema pero ninguno me funcionó.

Cuál puede ser el problema?, cómo podría solucionarlo?, espero alguien sepa la respuesta y me pueda ayudar, gracias de antemano.

Saludos.
#4
Hola, buenas. Estoy modificando mi página de reciclaje, todo iba perfecto, estaba a punto de terminar pero no puedo eliminar 3 pestañas o páginas del código que están en blanco sin que se pierda la información de la página de "Contacto".
Antes que nada, esta es la página: https://recyclingtheworld.info/
Lo que quiero eliminar son estas tres pestañas:


Pero cuando intento borrar esa parte del código, osea esto del index.html:
Código (html5) [Seleccionar]
<!-- PROYECTOS -->
     <div class="section myWork" id="section4">
       <div class="container">
         <div class="workTitle"></div>
         <!-- Proyecto 1 Freelancer -->
         <div class="row">
           <div class="col-lg-6 col-md-10 col-sm-11 col-xs-10 projects freelancerImg"></div>
           <div class="description col-lg-6 col-md-10 col-sm-10 col-xs-10 text-justify freelancerText"></div>
         </div>
       </div>
     </div>
     <!-- proyecto 2 LabCar -->
     <div class="section myWork" id="section5">
       <div class="container">
         <div class="row">
           <div class="description col-lg-6 col-md-10 col-sm-10 col-xs-10 text-justify labcarText"></div>
           <div class="col-lg-6 col-md-10 col-sm-11 col-xs-10 projects labcarImg"></div>
         </div>
       </div>
     </div>
     <!-- proyecto 3 Catbook Red Social -->
     <div class="section myWork" id="section6">
       <div class="container">
         <div class="row">
           <div class="col-lg-6 col-md-10 col-sm-11 col-xs-10 projects catbookImg"></div>
           <div class="description col-lg-6 col-md-10 col-sm-10 col-xs-10 text-justify catbookText"></div>
         </div>
       </div>
     </div>
     <!-- proyecto 4 Art Gallery -->
     <div class="section myWork" id="section7">
       <div class="container">
         <div class="row">
           <div class="description col-lg-6 col-md-10 col-sm-10 col-xs-10 text-justify artText"></div>
           <div class="col-lg-6 col-md-10 col-sm-11 col-xs-10 projects artImg"></div>
         </div>
       </div>
     </div>


Si elimino eso los circulos ya no aparecen, eso es lo que quiero, que ya no se vean esos 3 circulos pero a la vez, toda la información de la pestaña "Contactos" también queda en blanco, y no entiendo por qué si no modifico nada de eso. Qué podrá ser?, alguien podría ayudarme por favor?, se lo agradecería mucho.

Un saludo!!




Aquí está el Js que se usa, supongo que puede estar el error ahí:

Código (javascript) [Seleccionar]
$(document).ready(function() {  
 /*
 * Inicialización biblioteca
 */
 $('#pagepiling').pagepiling({
   menu: '#menu',
   anchors: ['page1', 'page2', 'page3', 'page4', 'page8'],
   sectionsColor: ['#FFFFFF', '#FFF', '#FFF', '#6B4A90', '#2C3E50'],
   navigation: {
       'position': 'right',
   },

   afterRender: function() {
     $('#pp-nav').addClass('custom');
     $('#pp-nav span').addClass('navigation');    
   },

   afterLoad: function(anchorLink, index) {
     if (index > 1) {
       $('#pp-nav').removeClass('custom');
     } else {
       $('#pp-nav').addClass('custom');
     }
     // Sección 2
     if (index === 2) {
       $('.me').html('');
       $('.textAboutMobile').html('');
       $('.textAboutDesktop').html('');
       // foto
       $('.me').append(`<img src="assets/img/perfil_camila.png" alt="" class="">`);
       $('.me img').addClass('animated fadeInLeft');
       // texto
       if($(window).width() <= 768) {
         $('.textAboutMobile').append(`<div id="aboutMeMobile"><h1></h1></div>`);
         $('#aboutMeMobile').addClass('animated fadeInRight');
       } else {
         $('.textAboutDesktop').append(`<div id="aboutMeDesktop"><h1>Sobre Nosotros</h1><p> <span>¡Recycling The World</span></p> <p>Bienvenidos  a Reciclando El Mundo, nuestro maravilloso proyecto para ayudar a sobrevivir y mejorar nuestro medio ambiente. Una de las claves  fundamentales para la existencia  de la vida en nuestro planeta, es un medio ambiente limpio, libre  de virus, bacterias, y otros organismos contaminantes.
Por ello,  en nuestro maravilloso proyecto trabajamos en un conjunto de ideas, de las cuales pudimos fusionar y llegar a ubicarlas de manera que todas puedan combinarse.
Reciclando El Mundo es el fruto de tal combinación, como primera instancia nuestro proyecto principal será la construcción de plantas recicladoras de residuos, que serán esparcidas alrededor del mundo, sabemos que el 60% (cada vez mas) del total de la  basura del planeta, es basura que se puede reciclar (Volver a usar), aquí es donde todo empieza a funcionar.
</p>
             </div>`);
         $('#aboutMeDesktop').addClass('animated fadeInRight');
       }
       
     }
     if (index !== 2) {
       // foto
       $('.me img').removeClass('fadeInLeft');
       $('.me img').addClass('fadeOut');
       // texto
       $('#aboutMeMobile').removeClass('fadeInRight');
       $('#aboutMeMobile').addClass('fadeOut');
       $('#aboutMeDesktop').removeClass('fadeInRight');
       $('#aboutMeDesktop').addClass('fadeOut');
     }
     // Sección 3
     if (index === 3) {
       // título
       $('.skillTitle').html('');
       $('.skillTitle').append(`<h1>STAFF</h1>`);
       $('.skillTitle h1').addClass('animated fadeIn');
       // imagenes del staff
       $('.skillLogo').html('');
       $('.skillLogo').append(`<div class="col-lg-2 col-md-2 col-sm-3 col-xs-3 col-lg-offset-1">
             <img src="assets/img/DANILO.png" alt=""></div><div class="col-lg-2 col-md-2 col-sm-3 col-xs-3">
             <img src="assets/img/GABRIEL.png" alt=""></div><div class="col-lg-2 col-md-2 col-sm-3 col-xs-3">
             <img src="assets/img/BRENDA.png" alt=""></div><div class="col-lg-2 col-md-2 col-sm-3 col-xs-3">
             <img src="assets/img/MARIANO.png" alt=""></div><div class="col-lg-2 col-md-2 col-sm-3 col-xs-3">
             <img src="assets/img/ANGEL.png" alt=""></div><div class="col-lg-offset-1 col-lg-2 col-md-2 col-sm-3 col-xs-3">
             <img src="assets/img/KIEN.png" alt=""></div><div class="col-lg-2 col-md-2 col-sm-3 col-xs-3">
             <img src="assets/img/DANIEL.png" alt=""></div><div class="col-lg-2 col-md-2 col-sm-3 col-xs-3">
             <img src="assets/img/JEFF.png" alt=""></div><div class="col-lg-2 col-md-2 col-sm-3 col-xs-3 mobile">
             <img src="assets/img/KAT.png" alt=""></div><div class="col-lg-2 col-md-2 col-sm-3 col-xs-3">
             <img src="assets/img/Jesus.png" alt=""></div><div class="col-lg-2 col-md-2 col-sm-2s col-xs-2">
             <img src="assets/img/MILAGROS.png" alt=""></div>`);
       $('.skillLogo img').addClass('animated fadeIn');
     }
     if (index !== 3) {
       $('.skillTitle h1').removeClass('fadeIn');
       $('.skillTitle h1').addClass('fadeOut');
       $('.skillLogo img').removeClass('fadeIn');
       $('.skillLogo img').addClass('fadeOut');        
     }
     // Sección 4
     if (index === 4) {
       // título
       $('.workTitle').html('');
       $('.workTitle').append(`<h1>NOTICIAS</h1>`);
       $('.workTitle h1').addClass('animated fadeIn');
       // imagen
       $('.freelancerImg').html('');
       $('.freelancerImg').append(`<img src="assets/img/freelancer_forma.png" alt="freelancer_project">`);
       $('.freelancerImg img').addClass('animated fadeInLeft');
       // descripción
       $('.freelancerText').html('');
       $('.freelancerText').append(`<div id="text"><h2>Crece hasta el 40% la recogida selectiva de basura en Cataluña</h2><p>Los catalanes separan cada vez más los residuos. El año pasado, el 40% de los residuos municipales que se generan en Cataluña se recogió de forma selectiva, un porcentaje que supone un notable salto en positivo: del 7% respecto a 2016. En total, la basura separada suma 1,5 millones de toneladas, explicó ayer el director de la Agencia de Residuos, Josep Maria Tost. Los catalanes generan de media 509 kilos de basura al año, algo por encima de la media europea.</p>  
         
             <button class="btn"><a href="">ir a las Noticias</a></button></div>`);
       $('#text').addClass('animated fadeInRight');
     }
     if (index !== 4) {
       $('.workTitle h1').removeClass('fadeIn');
       $('.workTitle h1').addClass('fadeOut');
       $('.freelancerImg img').removeClass('fadeInLeft');
       $('.freelancerImg img').addClass('fadeOut');
       $('#text').removeClass('fadeInRight');
       $('#text').addClass('fadeOut');
     }
 
     // Sección 8
     if (index === 8) {
       // título
       $('.contactTitle').html('');
       $('.contactTitle').append(`<h1>CONTACTO</h1>`);
       $('.contactTitle h1').addClass('animated fadeIn');
       // navecita
       $('.contactIcons').html('');
       $('.contactIcons').append(`<a id="ufito" class="ufoContact" href="mailto:admin@recyclingtheworld.info" data-toggle="tooltip" data-placement="right" title="Escribe: admin@recyclingtheworld.info"><img id="ufo" src="assets/img/UFO.png"></a>`)
       $('#ufo').addClass('animated zoomInRight');
       $('[data-toggle="tooltip"]').tooltip();
       // github y linkedin
       $('.RRSS').html('');
       $('.RRSS').append(`<a id="github" href=""><span class="icon-github"></span></i></a>
           <a id="linkedin" href=""><span class="icon-linkedin2"></span></i></a>`)
       $('.RRSS').addClass('animated zoomIn');
       // footer
       $('.footer').html('');
       $('.footer').append(`<p>Recycling The World | 2018</p>`);
       $('.footer p').addClass('animated fadeIn');
     }
     if (index !== 8) {
       $('.contactTitle h1').removeClass('fadeIn');
       $('.contactTitle h1').addClass('fadeOut');
       $('#ufo').removeClass('zoomInRight');
       $('#ufo').addClass('fadeOut');
       $('.RRSS').removeClass('zoomIn');
       $('.RRSS').addClass('fadeOut');
       $('.footer p').removeClass('fadeIn');
       $('.footer p').addClass('fadeOut');
     }

   } // afterLoad
 })  // pagepiling
}); // document.ready





Mod: No hacer doble post. Utilizar el botón: Modificar para agregar contenido.
#5
Hola, buenas. Encontré este sistema de inversiones en GitHub: https://github.com/miguelc1234/InversionesPhp
Creo la base de datos, extraigo los archivos en xampp-htdocs y creo la página pero al momento de quererme conectar me manda un mensaje de error: Local host dice: Error al conectar con el servidor


Así venía el código de conexión:
[PHP]
Código (php) [Seleccionar]
<?php
abstract class DBAbstractModel
{

   private 
$db_host 'aprendicesrisaraldac.ipagemysql.com';
    private 
$db_user 'inversion';
    private 
$db_port '3033';
    private 
$db_pass 'invent@r';
    protected 
$db_name 'bdinversiones';
    protected 
$query;
    public 
$rows = array();
    protected 
$conn;
    public 
$mensaje 'Hecho';

    
# métodos abstractos para ABM de clases que hereden    
    
abstract protected function get();
    abstract protected function 
set();
    abstract protected function 
edit();
    abstract protected function 
delete();
    
    
# los siguientes métodos pueden definirse con exactitud y no son abstractos
# Conectar a la base de datos
public function open_connection() 
{
    try 
    {
        $this->conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name"$this->db_user$this->db_pass);
    } 

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

# Desconectar la base de datos
public function close_connection() 
{
$this->conn null;
}
}
?>


Y me manda el error, así lo puse:
Código (php) [Seleccionar]
<?php
abstract class DBAbstractModel
{

    private 
$db_host 'localhost';
    private 
$db_user 'root';
    private 
$db_port '';
    private 
$db_pass '';
    protected 
$db_name 'bdinversiones';
    protected 
$query;
    public 
$rows = array();
    protected 
$conn;
    public 
$mensaje 'Hecho';

    
# métodos abstractos para ABM de clases que hereden    
    
abstract protected function get();
    abstract protected function 
set();
    abstract protected function 
edit();
    abstract protected function 
delete();
    
    
# los siguientes métodos pueden definirse con exactitud y no son abstractos
# Conectar a la base de datos
public function open_connection() 
{
    try 
    {
        $this->conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name"$this->db_user$this->db_pass);
    } 

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

# Desconectar la base de datos
public function close_connection() 
{
$this->conn null;
}
}
?>


Lo pongo con "root" y sin "root" y es el mismo resultado. Cuál puede ser el problema??

Gracias de antemano.
#6
Hola, buenas. Tengo un lg stylus 2 y hoy al cargarlo me apareció este mensaje: "your device is corrupted and cannot be trusted"

qué podrá ser y cómo puedo hacer para que ya no aparezca ? Hay algún tutorial que me indique los pasos para quitar eso?

Gracias de antemano.
#7
Hardware / Problema con pantalla táctil
26 Junio 2018, 05:18 AM
Hola, buenas. Hace unos días se me cayó mi laptop y desde entonces se miran unas ruedas en ma pantalla, estas:


Qué podrá ser?


[MOD] Imagen redimensionada según normas del Foro.
#8
Windows / Enter Administrator Password Bios Hp
13 Junio 2018, 03:20 AM
Nombre del Producto: Hp Notebook x360
Hola, buenas. Mi bios me está pidiendo una contraseña de administrador para entrar, leí distintos tutoriales donde me dicen que vea el código que me aparece después de poner la contraseña incorrecta, me aparece: i 50963667, después entro a la página bios-pw.org para tener el código y me sale: "yundefinedq1ogfggx" pero cuando lo estoy poniendo solo llega hasta la penúltima g, ese no debe de ser, que podría hacer? Gracias de antemano, saludos!!
#9
Hola, buenas.
Estoy haciendo un trabajo en clase en Android Studio, el ejercicio es que en la App aparezcan banderas correspondientes a ciertos países y que al dar click salga la información de ese país.

Hasta el momento pude colocar las banderas, pero he tenido problemas para dar su información.
Sé que debo hacer, por ejemplo, en el main activity necesito obtener la posición con el metodo onclick y hacer un intent entre esa mainactivity y la nueva actividad donde debo poner la información de la bandera y mandar la posición pero me arroja errores, por eso quisiera ver si alguien podría ayudarme a ver cómo podría colocar la información de cada país por favor?, gracias de antemano.


Adjunto el archivo: https://mega.nz/#!3RR1XBZR!Gt6Q1fpPGil1hIQct5rV2Qj9Z42Fy2lL9u9xpz37KYQ

Saludos.

#10
PHP / Error al registrar un usuario en el sistema
23 Febrero 2018, 19:15 PM
Hola, buenas. Estoy teniendo otro problema con un sistema de subastas, el problema es que al momento de querer registrar un usuario me manda un error, este:



Me dirijo a la línea del código donde me indica el error pero tengo los datos correctos:


Cuáles podrán ser los casos por los que me mande ese error?, gracias de antemano.

Saludos.
#11
Hola, buenas. Estoy intentando subir un sistema a mi local host pero me dice:
"localhost no puede procesar esta solicitud en este momento. HTTP ERROR 500"

Hago lo correcto para que cargue, enviaré imágenes de los pasos que sigo para subir el sistema:

1) Utilizo Xampp, entonces creo la bd que viene dentro del sistema:


2) Pego el archivo del sistema a la ruta donde se encuentra Xampp-htdocs:


3) Coloco los datos de usuario y pass en el archico config de la bd:


4) Intento ingresar pero me marca este error:


Según yo sigo todos los pasos correctos como debería ser pero me marca ese error, cuál podrá ser la solución?, gracias de antemano.

Saludos.
#12
Hardware / Apagado Repentino
20 Febrero 2018, 03:24 AM
Hola, buenas. Estoy teniendo problemas con mi Lap, es una Laptop HP Beats Special Edition. El problema es que al momento de tenerla encendida con las luces del teclado se apaga, dura cierto tiempo encendida pero luego de un rato la pantalla queda en negro y ya no tengo control de nada, ni si quiera puedo apagar de nuevo las luces, simplemente queda en negro y tengo que apagarla desde el botón encendido para que se reinicie.

Esto sucede solo cuando la tengo desconectada del cargador, cuando se está cargando no se me ha quedado apagada, cuando tengo apagadas las luces del teclado, si bien recuerdo, tampoco se me apaga o si se llega a apagar es después de mucho tiempo de usarla.

Alguien tiene alguna idea de qué pueda ser?, ya formateé la lap pero esa no fue la solución. Hace mucho, se dio el caso de que en lugar de quedarse la pantalla en negro se quedó en azul y me aparecía en pantalla el error que era, solo que ya no se ha vuelto a quedar en azul y no recuerdo cual fue ese error.

Saludos.
#13
Programación C/C++ / Operadores Matriz
9 Febrero 2018, 00:38 AM
Hola, me podrían decir que tanto le hace falta al código para cumplir con estos requisitos:

Implemente la clase Matriz con las siguientes operaciones:

Suma de dos matrices de mxn
Resta de dos matrices de mxn
Producto de una matriz de mxn por una de nxk
Producto de una matriz de mxn por un escalar
Transpuesta de una matriz de mxn
Inversa de una matriz cuadrada de orden n
La implementación deberá incluir:

Asignación dinámica de memoria
Sobrecarga de operadores
+ (Suma de dos matrices)
- (Resta de dos matrices)
* (Producto de dos matrices y de matriz por escalar)
[] (Para el acceso a la entrada m[j] de la matriz)
<< (Imprimir una matriz)
>> (Captura de una matriz)
OJO: La transpuesta e inversa no deben usar operadores.

Producto por escalar conmutativo
Excepciones
Métodos constantes
Definición por default de matrices 1x1 o mx1. Evite la conversión implícita de enteros a matrices.



Este es el código:
matrix.h


#ifndef MATRIX_H
#define MATRIX_H

#include <iostream>
#include <time.h>
#include <stdlib.h>

using namespace std;

template <class T>
class Matrix {
    public:
        Matrix();
        Matrix(int, int);
        Matrix(const Matrix &m);
        ~Matrix();

        Matrix<T> operator+ (const Matrix &matrix_2);
        Matrix<T> operator- (const Matrix &matrix_2);
        Matrix<T> operator* (const Matrix &matrix_2);

        bool isSymmetric();
        bool isIdentity();

        T get_max();
        T get_min();
        T get_mode();

        void delete_matrix();
        void fill_by_user();
        void fill_random();
        void get_transpose();
        void multiply_by_scalar(T);
        void print_matrix();
        void swap_cols(int, int);
        void swap_rows(int, int);

    private:
        T m_ele;
        T m_max;
        T m_min;
        T m_mode;
        T **m_matrix;

        int m_dim_matrix;
        int m_cols;
        int m_rows;
};

#endif // MATRIX_H


matriz.cpp
#include "matrix.h"

// Constructor por defecto
template<typename T>
Matrix<T>::Matrix()
{
    m_rows = 4;
    m_cols = 4;
}

// Constructor copia
template<typename T>
Matrix<T>::Matrix(const Matrix &m)
{
    *this = m;
}

// Constructor por parámetro
template<typename T>
Matrix<T>::Matrix(int rows , int cols)
{
    m_cols = cols;
    m_rows = rows;
    m_matrix = new T*[m_rows];

    for (int i = 0; i < m_rows; i++) {
        m_matrix[i] = new T[m_cols];
    }
}

// Suma de matrices con sobrecarga de operadores
template<typename T>
Matrix<T> Matrix<T>::operator+ (const Matrix &matrix_2)
{
    Matrix matrix_result(m_rows, m_cols);
    for (int i = 0; i < m_rows; i++) {
        for (int j = 0; j < m_cols; j++) {
            matrix_result.m_matrix[i][j] = m_matrix[i][j] + matrix_2.m_matrix[i][j];
        }
    }
    return matrix_result;
}

// Resta de matrices con sobrecarga de operadores
template<typename T>
Matrix<T> Matrix<T>::operator- (const Matrix &matrix_2)
{
    Matrix matrix_result(m_rows, m_cols);
    for (int i = 0; i < m_rows; i++) {
        for (int j = 0; j < m_cols; j++) {
            matrix_result.m_matrix[i][j] = m_matrix[i][j] - matrix_2.m_matrix[i][j];
        }
    }
    return matrix_result;
}

// Multiplicación de matrices con sobrecarga de operadores
template<typename T>
Matrix<T> Matrix<T>::operator* (const Matrix &matrix_2)
{
    Matrix matrix_result(m_rows, matrix_2.m_cols);
    T total;

    for (int i = 0; i < m_rows; i++) {
        for (int j = 0; j < matrix_2.m_cols; j++) {
            for (int k = 0; k < m_cols; k++) {
                total += (m_matrix[i][k] * matrix_2.m_matrix[k][j]);
            }
            matrix_result.m_matrix[i][j] = total;

            // Limpiar el total sumado arriba
            total = 0;
        }
    }
    return matrix_result;
}

// Verificar si una Matriz es simétrica
template<typename T>
bool Matrix<T>::isSymmetric()
{
    if (m_rows != m_cols) {
        return false;
    }

    for (int i = 0; i < m_rows; i++) {
        for (int j = 0; j < m_cols; j++) {
            if (m_matrix[i][j] != m_matrix[j][i]) {
                return false;
            }
        }
    }
    return true;
}

// Verificar si una Matriz es identidad
template<typename T>
bool Matrix<T>::isIdentity()
{
    if (m_rows != m_cols) {
        return false;
    }

    for (int i = 0; i < m_rows; i++) {
        for (int j = 0; j < m_cols; j++) {
            if (i == j) {
                if (m_matrix[i][j] != 1)
                    return false;
            } else {
                if (m_matrix[i][j] != 0)
                    return false;
            }
        }
    }
    return true;
}

// Obtener el mayor de la Matriz
template<typename T>
T Matrix<T>::get_max()
{
    for (int i = 0; i < m_rows; i++) {
        for (int j = 0; j < m_cols; j++) {
            if (m_matrix[i][j] > m_max) {
                m_max = m_matrix[i][j];
            }
        }
    }
    return m_max;
}

// Obtener el menor de la Matriz
template<typename T>
T Matrix<T>::get_min()
{
    for (int i = 0; i < m_rows; i++) {
        for (int j = 0; j < m_cols; j++) {
            if (m_matrix[i][j] < m_min) {
                m_min = m_matrix[i][j];
            }
        }
    }
    return m_min;
}

// Obtener la moda de la Matriz
template<typename T>
T Matrix<T>::get_mode()
{
    // Creo una Matrix auxiliar
    Matrix matrix_aux(m_rows, m_cols);

    // Lleno la Matriz con ceros
    for (int i = 0; i < m_rows; i++) {
        for (int j = 0; j < m_cols; j++) {
            matrix_aux.m_matrix[i][j] = 0;
        }
    }

    m_dim_matrix = m_rows * m_cols;

    // Para retener una fila n veces
    int y = 0;

    // Para retener una columna n veces
    int z = 0;

    // Empiezo a comparar cada elemento n veces
    for (int x = 0; x < m_dim_matrix; x++) {
        for (int i = 0; i < m_rows; i++) {
            for (int j = 0; j < m_cols; j++) {
                if (m_matrix[y][z] == m_matrix[i][j]) {
                    matrix_aux.m_matrix[i][j]++;
                }
            }
        }

        // Pasar a la siguiente columna despues de n comparaciones
        z++;

        /* Empiezo a comparar con la siguiente fila
           despues empiezo nuevamente en la 1era columna
           Y luego paso a la siguiente fila */
        if (z == m_cols) {
            z = 0;
            y++;
        }
    }

    // Obtengo el mayor valor de la Matriz
    m_max = matrix_aux.get_max();

    // Si ningun valor se ha repetido más de una vez, entonces no hay moda
    if (m_max == 1) {
        return -1;
    } else {
        for (int i = 0; i < m_rows; i++) {
            for (int j = 0; j < m_cols; j++) {
                if (matrix_aux.m_matrix[i][j] == m_max) {
                    m_mode = m_matrix[i][j];
                }
            }
        }
    }

    return m_mode;
}

template<typename T>
void Matrix<T>::delete_matrix()
{
    for (int i = 0; i < m_rows; i++) {
        delete[] m_matrix[i];
    }
    delete[] m_matrix;
}

// Llenar una Matriz desde teclado
template<typename T>
void Matrix<T>::fill_by_user()
{
    for (int i = 0; i < m_rows; i++) {
        cout << "Fila " << i + 1 << endl;
        for (int j = 0; j < m_cols; j++) {
            cout << "Ingresa el elemento " << j + 1 << endl;
            cin >> m_ele;
            m_matrix[i][j] = m_ele;
        }
        cout << endl;
    }
    m_max = m_matrix[0][0];
    m_min = m_matrix[0][0];
}

// Llenar aleatoriamente una Matriz
template<typename T>
void Matrix<T>::fill_random()
{
    for (int i = 0; i < m_rows; i++) {
        for (int j = 0; j < m_cols; j++) {
            m_matrix[i][j] = rand() % 30;
        }
    }

    m_max = m_matrix[0][0];
    m_min = m_matrix[0][0];
    srand(time(NULL));
}

// Obtener la transpuesta de una Matriz
template<typename T>
void Matrix<T>::get_transpose()
{
    Matrix matrix_result(m_cols, m_rows);

    for (int i = 0; i < m_cols; i++) {
        for (int j = 0; j < m_rows; j++) {
            matrix_result.m_matrix[i][j]= m_matrix[j][i];
        }
    }
    matrix_result.print_matrix();
}

// Multiplicar a una Matriz por un escalar
template<typename T>
void Matrix<T>::multiply_by_scalar(T scalar)
{
    for (int i = 0; i < m_rows; i++) {
        for (int j = 0; j < m_cols; j++) {
            m_matrix[i][j] = m_matrix[i][j] * scalar;
        }
    }
    cout << "Se multiplicó a la Matriz por el escalar " << scalar << endl;
}

// Imprimir Matriz
template<typename T>
void Matrix<T>::print_matrix()
{
    for (int i = 0; i < m_rows; i++) {
        for (int j = 0; j < m_cols; j++) {
            cout << m_matrix[i][j] << " ";
        }
        cout << endl << endl;
    }
    cout << endl << endl;
}

// Intercambiar dos columnas en una Matriz
template<typename T>
void Matrix<T>::swap_cols(int col_1, int col_2)
{
    if (col_1 > m_cols || col_2 > m_cols) {
        cout << "Esa columna se encuentra fuera de rango." << endl;
    } else {
        T temp;
        col_1--;
        col_2--;

      for (int i = 0; i < m_rows; i++) {
          temp = m_matrix[i][col_1];
          m_matrix[i][col_1] = m_matrix[i][col_2];
          m_matrix[i][col_2] = temp;
      }
      cout << "Se intercambiaron las columnas " << col_1 + 1 << " y " << col_2 + 1 << endl;
    }
}

// Intercambiar dos filas en una Matriz
template<typename T>
void Matrix<T>::swap_rows(int row_1, int row_2)
{
    if (row_1 > m_rows || row_2 > m_rows) {
        cout << "Esa fila se encuentra fuera de rango." << endl;
    } else {
        T temp;
        row_1--;
        row_2--;

        for (int i = 0; i < m_cols; i++) {
            temp = m_matrix[row_1][i];
            m_matrix[row_1][i] =  m_matrix[row_2][i];
            m_matrix[row_2][i] = temp;
        }
        cout << "Se intercambiaron las filas: " << row_1 + 1 << " y " << row_2 + 1 << endl;
    }
}

template<typename T>
Matrix<T>::~Matrix() {}


main.cpp:
#include <iostream>
#include "matrix.h"
#include "matrix.cpp"

using namespace std;

int main()
{
    // Para no generar los mismos números aleatorios
    srand(time(NULL));

    int n_rows;
    int n_cols;

    int col_1;
    int col_2;
    int row_1;
    int row_2;
    int scalar;

    cout << "Ingresa nro de filas: " << endl;
    cin >> n_rows;
    cout << "Ingresa nro de columnas: " << endl;
    cin >> n_cols;
    cout << endl;

    Matrix<int> a(n_rows, n_cols);
    Matrix<int> b(n_rows, n_cols);

    // Matriz para almacenar el resultado de las operaciones
    Matrix<int> c(n_rows, n_cols);

    a.fill_random();
    b.fill_random();

    cout << "********** Operaciones básicas con la Matriz A **********" << endl;
    cout << "Matriz A " << endl;
    a.print_matrix();

    cout << "El mayor de la Matriz es: " << a.get_max() << endl;
    cout << "El menor de la Matriz es: " << a.get_min() << endl;
    cout << "La moda de la Matrix es: " << a.get_mode() << endl;
    cout << (a.isSymmetric() ? "" : "No") << " Es simétrica." << endl;
    cout << (a.isIdentity() ? "" : "No") << " Es identidad." << endl;
    cout << endl;

    cout << "Ingresa el escalar: " << endl;
    cin >> scalar;
    a.multiply_by_scalar(scalar);
    a.print_matrix();

    cout << "Intercambio: Ingresa 2 columnas del 1 al " << n_cols << endl;
    cout << "Columna 1: " << endl;
    cin >> col_1;
    cout << "Columna 2: " << endl;
    cin >> col_2;
    a.swap_cols(col_1, col_2);
    a.print_matrix();

    cout << "Intercambio: Ingresa 2 filas del 1 al " << n_rows << endl;
    cout << "Fila 1: " << endl;
    cin >> row_1;
    cout << "Fila 2: " << endl;
    cin >> row_2;
    a.swap_rows(row_1, row_2);
    a.print_matrix();

    cout << "Transpuesta de A " << endl;
    a.get_transpose();

    cout << "********** Operaciones con matrices **********" << endl;
    cout << "Matriz A " << endl;
    a.print_matrix();

    cout << "Matriz B " << endl;
    b.print_matrix();

    cout << "Matriz A + B " << endl;
    c = a + b;
    c.print_matrix();

    cout << "Matriz A - B " << endl;
    c = a - b;
    c.print_matrix();

    cout << "Matriz A * B " << endl;
    c = a * b;
    c.print_matrix();

    a.delete_matrix();
    b.delete_matrix();
    c.delete_matrix();

    return 0;
}


Gracias de antemano, saludos !!
#14
Es una duda que tengo en programación C++, en que casos es mejor definir una función como amiga de la clase??

Un saludo.
#15
Hola, buenas. Estoy trabajando con el libro de inglés "American English File" (Second Edition) de Oxford university press en versión Web. Al momento de querer escuchar los audios me aparece un mensaje de "Error to load audio" , cuál puede ser el problema?, ya miré que el cable estuviese bien conectado e intenté diversas maneras de hacerlo escuchar siguiendo tutoriales de youtube como este:
https://www.youtube.com/watch?v=ahXxW1C4bPE

y este:
https://www.youtube.com/watch?v=DXgPvZixTFs

pero no logro solucionarlo, alguna sugerencia?, un saludo.
#16
Windows / No lee mi USB booteable
27 Enero 2018, 01:02 AM
Hola, buenas. Estoy intentando formatear mi laptop, seguí los pasos tal cual:

1) Descargué el ISO de Windows 10 e hice mi memoria booteable:


2) Conecto la USB, enciendo la Lap, ingreso a la BIOS con F10:


3) Configuro de esta forma para que lea primero la USB y arranque desde ahí:

Nota: Estaba seleccionada la opción de la memoria por eso se mira en blanco, casi no se nota pero es la primer opción.

4) Ingreso al Boot Option con F9 pero no me aparece la opción de arranque de la USB:


Cuál puede ser el error?, gracias de antemano.

Saludos.
#17
Hola, buenas. He comprado un dominio para tener un sistema siempre en línea pero estoy teniendo problemas para poder subirlo al servidor, sigo los pasos que la página me indica pasando todos los documentos a la carpeta "public_html" , creando la bd y asociando pero me aparece "Error al Conectar"

Me conecto mediante FileZilla y subo los documentos del sistema a public_html:


Creo la bd:


Así lo configuro:


Pero me marca error por esto:


Y cuando intento ingresar aparece así el inicio:



Cómo Podría solucionarlo?, alguna sugerencia??, gracias de antemano.

Saludos.

MOD: Imagenes adaptadas a lo permitido (ya deberías saber ésto)
#18
PHP / No puedo agregar clientes nuevos
21 Octubre 2017, 02:01 AM
Hola, buenas. Estoy intentando agregar nuevos usuarios o clientes en un sistema de inventario pero cuando los doy de alta no me aparecen en la lista.

Aquí se mira como creo al cliente:


Y aquí se muestra como me informa que ha sido creado:


Pero cuando entro a la lista de clientes no aparece:


Yo agregué campos extra, como cuenta, horas de pago, etc. De seguro eso es, este es el código de los registros que venía en el sistema:
https://pastebin.com/WQw9H5h8

Y así lo edité y fue cuando ya no aparecieron en la lista los usuarios que iba creando:
https://pastebin.com/JmzMTf4d

O tendría que cambiar algo más en la bd?


Espero alguien pueda apoyarme o decirme cuál puede ser el error, gracias de antemano !!

Saludos.
#19
Hola, buenas tardes. Tengo este sistema de cotización que encontré en internet:
http://cotizadorweb.com.mx/

Pero me gustaría saber cómo hago para abajo de la imagen del producto aparezcan varios colores (en imagen) y cuando se seleccione uno, la imagen de arriba cambie con el color seleccionado:



Algo así que si pone alfombra y selecciona el color rojo, cambie la imagen con una alfombra roja, y así para el resto, algo como lo que se hace aquí: http://www.persianasfarz.com/producto.php?prodId=16&cate=Enrollable

Supongo que es como esto:
function sel_estilo(value) //lo que pasa cuando se selecciona un estilo
 {
   $('#rango').val('').change();
   var select=document.getElementById("rango");
   var op=select.getElementsByTagName("option");

   if(value==''){
     for (var i = 1; i < op.length; i++) op[i].style.display="none";
   }else if(value=='Trafico'){
     for (var i = 1; i < 3; i++) op[i].style.display="block";
     for (var i = 3; i < op.length; i++) op[i].style.display="none";
   }else if(value=='Residencial'){
     $("#msg-pedido").modal({
       modal: true,
       buttons: {
           Ok: function() {
               $( this ).modal( "close" );
           }
       }
     });
     for (var i = 1; i < 3; i++) op[i].style.display="none";
     for (var i = 3; i < 10; i++) op[i].style.display="block";
     for (var i = 10; i < op.length; i++) op[i].style.display="none";
   
   }else if(value=='7mm'){
     for (var i = 1; i < 12; i++) op[i].style.display="none";
     for (var i = 12; i < 14; i++) op[i].style.display="block";
     for (var i = 14; i < op.length; i++) op[i].style.display="none";
   }else if(value=='8mm'){
     for (var i = 1; i < 14; i++) op[i].style.display="none";
     for (var i = 14; i < 16; i++) op[i].style.display="block";
     for (var i = 16; i < op.length; i++) op[i].style.display="none";
   }else if(value=='10mm'){
     for (var i = 1; i < 16; i++) op[i].style.display="none";
     for (var i = 16; i < 18; i++) op[i].style.display="block";
     for (var i = 18; i < op.length; i++) op[i].style.display="none";

   }else if(value=='12mm'){
     for (var i = 1; i < op.length; i++) op[i].style.display="none"; //??????

   }else if(value=='Rollet'){

   }else if(value=='Wollet'){

   }else if(value=='Panellet'){

   }else if(value=='Aluminix'){

   }
 }


Pero no se como hacer para aplicarlo ahora con colores y hacer que vaya cambiando la imagen...

Un saludo !!.
#20
Hola, buenas. Me preguntaba si alguien conoce alguna forma o un tutorial que me ayude para hacer un sistema de localización. Por ejemplo, en mi sistema los usuarios se registran y por medio de una Api de Google colocan la localización de la ciudad en donde viven, lo que intento hacer es un buscador de usuarios mediante esa localización, que se pueda filtrar por distancia, encontrar los usuarios registrados a x kilómetros de distancia de donde yo me registré, algo parecido a la búsqueda que hace el sitio "Badoo". Conocen algún tutorial de php que funcione para hacer eso? Gracias de antemano.
Saludos!!
#21
PHP / Cotizador, error al enviar correo
16 Julio 2017, 06:21 AM
Hola, buenas. Tengo un problema, pensé que lo había resuelto pero no. Hace poco me descargué este sistema de cotizaciones: http://obedalvarado.pw/blog/cotizador-web-camisetas-php/
Está sencillo y es simple pero requiere tener un servidor de correos configurado para el envío de correo electrónico de notificación. Aquí está mi problema, no sé si lo que pide es hacer lo que me muestra en este tutorial: https://www.youtube.com/watch?v=FnNdSa9Q4Qs
Lo seguí al pie de la letra y ya configuré mi correo previamente creado en mi servidor. Pero me envía el error: Error al enviar mensaje: Could not execute: /usr/sbin/sendmail
No se si sea porque hago las pruebas desde mi localhost, debo subir el sistema a mi servidor web para que funcione?, o lo que hice en ese tutorial no es lo que se necesita??, alguien me puede dar una explicación??

Gracias de antemano, saludos !!!
#22
Redes / Servidor de Correos Configurado
13 Julio 2017, 20:13 PM
Resuelto.
#23
Hola, buenas. Cuento con un sitio web con dominio propio y en él cuento con un sistema, quisiera saber cómo hago para que en el menú, al presionar un botón de ejemplo "Cotización" me mande al otro sistema de cotizaciones?, me habían comentado que se podía con un subdominio o en una carpeta, por ejemplo, y que dicho botón se dirija ahí pero cómo hago eso??

Gracias de antemano. Saludos.
#24
Hola, buenas. Tengo un código para subir archivos a una plataforma con extensión "jpg, rar, txt y zip" y quisiera saber cómo hago para cambiar esas extensiones permitidas por las siguientes: "mp4, mpeg, mwv", el código es el siguiente:
Código (php) [Seleccionar]
  <!-- ### FORM POST ### -->
          <div class="box box-info">
            <!-- form start -->
            <form id="poster" class="form-horizontal">
              <div class="box-body">
                 <textarea id="thetextpost" name="posttext" class="form-control" rows="3"></textarea>
              </div>
              <!-- /.box-body -->
            </form>

              <div class="box-footer">
                <button class="btn btn-danger btn-sm pull-left" data-toggle="modal" data-target="#ModalDocumment"> <i class="fa fa-file-archive-o" aria-hidden="true"></i> Archivo</button>
                <button class="posterbtn btn btn-info btn-sm pull-right"><i class="fa fa-pencil"></i> Publicar</button>
              </div>
              <!-- /.box-footer -->
          </div>         
          <!-- ### FORM POST ### -->



          <!-- ### COMMENT ### -->
          <div id="timeliner">

          <?php takemylast6post(); ?>         

          </div>
          <!-- ### COMMENT ### -->
          <div id="loaderlinetime" class="col-sm-12 text-center">
            <div class="loader-inner ball-pulse-sync"><div></div><div></div><div></div></div>
          </div>



       </div>
       <div id="sidebar" class="col-sm-3">
           <?php include 'includes/adsense.html'?>
       </div>
     </div>
     <!-- container -->


     <!-- Modal -->
     <div class="modal fade" id="ModalDocumment" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
       <div class="modal-dialog" role="document">
         <div class="modal-content">
           <div class="modal-header">
             <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
             <h4 class="modal-title" id="myModalLabel"><i class="fa fa-upload" aria-hidden="true"></i> Subir Archivo</h4>
           </div>
           <div class="modal-body">
             
             
              <div id="thefilattch" class="col-sm-12">
                <form id="attachmentfrm">
                  <label>Descripción:</label>
                  <textarea class="form-control" name="descripcion" rows="3"></textarea>
                  <label>Archivo:</label>
                  <input type="file" name="archivo" class="form-control">
                </form>

                <p></p>
                <p>Solo se aceptan archivos con la extension: <?php validextlist(); ?></p>
               
              </div>
              <!-- progress -->
              <div id="loadeingarchive" class="progress active">
                <div class="progress-bar progress-bar-primary progress-bar-striped" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%">
                </div>
              </div>
              <!-- progress -->
              <button type="button" class="uploadarchive btn btn-primary pull-right">Subir Archivo</button>

           </div>
         </div>
       </div>
     </div>



Código (php) [Seleccionar]
// Sacamos las extensiones permitidas para los archivos que se suben
function gettheextattachment(){

    // conexion de base de datos
    $conexion = Conexion::singleton_conexion();

    $SQL = 'SELECT archiveextensions FROM '.SSPREFIX.'socialconfig WHERE id = 1';
    $stn = $conexion -> prepare($SQL);
    $stn -> execute();
    $rstl = $stn -> fetchAll();
    if (empty($rstl)){
    }else{
      foreach ($rstl as $key){
        $fileext = $key['archiveextensions'];
        return $fileext;
      }
    }
}


function validextlist(){

    // conexion de base de datos
    $conexion = Conexion::singleton_conexion();

    $SQL = 'SELECT archiveextensions FROM '.SSPREFIX.'socialconfig WHERE id = 1';
    $stn = $conexion -> prepare($SQL);
    $stn -> execute();
    $rstl = $stn -> fetchAll();
    if (empty($rstl)){
    }else{
      foreach ($rstl as $key){
         echo '<b>'.str_replace('|', ' / ', $key['archiveextensions']).'</b>';
      }
    }

}


function formatSizeUnits($bytes){
        if ($bytes >= 1073741824)
        {
            $bytes = number_format($bytes / 1073741824, 2) . ' GB';
        }
        elseif ($bytes >= 1048576)
        {
            $bytes = number_format($bytes / 1048576, 2) . ' MB';
        }
        elseif ($bytes >= 1024)
        {
            $bytes = number_format($bytes / 1024, 2) . ' kB';
        }
        elseif ($bytes > 1)
        {
            $bytes = $bytes . ' bytes';
        }
        elseif ($bytes == 1)
        {
            $bytes = $bytes . ' byte';
        }
        else
        {
            $bytes = '0 bytes';
        }

        return $bytes;
}


// Para subir un archivo
function attachmentfiles($file,$description){

    // conexion de base de datos
    $conexion = Conexion::singleton_conexion();

    // Primero el Año
    $theyear = date('Y');

    // Ahora el Mes
    $themonth = date ('m');

    // Ahora usamos la sesion del usuario para su respectiva carpeta
    $theuser = $_SESSION['ssid'];

    // Creamos un alfanumerico aleatorio.
    $characters = 'abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $string = '';
    for ($i = 0; $i < 60; $i++) {
     $string .= $characters[rand(0, strlen($characters) - 1)];
    }

    // Tomamos la fecha y hora con segundos
    $fechaseconds = date('Y-m-d h:i:s');
    $fechanormal =  date('Y-m-d');

    // Nuevo nombre del Archivo
    $thenewname = sha1($fechaseconds.$theuser.$string);

    // Obtenemos la extension
    $fileext = new SplFileInfo($file);
    $getextension = $fileext->getExtension();

    // convertimos extension a minusculas
    $extension = strtolower($getextension);

    //comprobamos si el archivo ha subido y lo movemos a una su respectiva ruta
    if ($file && move_uploaded_file($_FILES['archivo']['tmp_name'],"../attachments/".$theuser."/".$theyear."/".$themonth."/".$thenewname.".".$extension)){
    } 

    // Creamos ruta del temporal
    $temporal = "../attachments/".$theuser."/".$theyear."/".$themonth."/".$thenewname.".".$extension;


    // Creamos el permalink de la publicacion
    $permalink = sha1($string.$fechaseconds);


    // Limitamos las publicaciones a tan solo 1000 caracteres
    $postparse = substr($description, 0,1000);

    // Filtramos para evitar XSS Injection
    $filtro = new InputFilter();
    $finalpost = $filtro->process($postparse);

    // Tamaño del archivo
    $filesize = $_FILES['archivo']['size'];

    // Nombre del Archivo
    $filename = $_FILES['archivo']['name'];

    // Revisamos si el resultado es vacio para no tener que postearlo
    if (empty($finalpost)){
       exit();
    }

    if (is_null($finalpost)){
       exit();
    }

    // Hacemos el registro del Archivo
    $FileAttch = 'INSERT INTO '.SSPREFIX.'attachment (ruta, nombre, usuario, fecha, ext, peso, permalink) VALUES (:ruta, :nombre, :usuario, :fecha, :ext, :peso, :permalink)';
    $stnfile = $conexion -> prepare($FileAttch);
    $stnfile -> bindParam(':ruta', $temporal ,PDO::PARAM_STR);
    $stnfile -> bindParam(':usuario', $_SESSION['ssid'] ,PDO::PARAM_STR);
    $stnfile -> bindParam(':nombre', $filename ,PDO::PARAM_INT);
    $stnfile -> bindParam(':fecha', $fechaseconds ,PDO::PARAM_STR);
    $stnfile -> bindParam(':ext', $extension ,PDO::PARAM_STR);
    $stnfile -> bindParam(':peso', $filesize ,PDO::PARAM_STR);
    $stnfile -> bindParam(':permalink', $thenewname ,PDO::PARAM_STR);
    $stnfile -> execute();
    $lastidfile = $conexion -> lastInsertId();

    // Post con archivo
    $thepostpostarchive = $lastidfile.'|'.$finalpost;

    // Como es un post de archivo es 4
    $tipo = 4;

    $SQL = 'INSERT INTO '.SSPREFIX.'posts (post, usuario, permalink, fecha, tipo) VALUES (:post, :usuario, :permalink, :fecha, :tipo)';
    $stn = $conexion -> prepare($SQL);
    $stn -> bindParam(':post', $thepostpostarchive ,PDO::PARAM_STR);
    $stn -> bindParam(':usuario', $_SESSION['ssid'] ,PDO::PARAM_INT);
    $stn -> bindParam(':permalink', $permalink ,PDO::PARAM_STR);
    $stn -> bindParam(':fecha', $fechaseconds ,PDO::PARAM_STR);
    $stn -> bindParam(':tipo', $tipo ,PDO::PARAM_INT);
    $stn -> execute();
    $lastid = $conexion -> lastInsertId();

    // imagen de perfil
    $profileimg = userprofile($_SESSION['ssid']);
   
    // Fecha
    $fechastronger = fechastring($fechanormal,$permalink);

    echo'
        <div id="post-public'.$lastid.'" class="box box-widget">
            <div class="box-header with-border">
              <div class="user-block">
                <img class="img-circle" src="'.$profileimg.'" alt="'.gettheusernamepost().'">
                <span class="username"><a href="profile.php?leanserwebmaster">'.gettheusernamepost().'</a></span>
                '.$fechastronger.'
              </div>
              <!-- /.user-block -->
              <div class="box-tools">
                <button data-post="'.$lastid.'" class="eliminarthispost btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
              </div>
              <!-- /.box-tools -->
            </div>
            <!-- /.box-header -->
            <div class="box-body">
              <!-- post text -->';

                $postexplode = explode('|', $thepostpostarchive);
                getattachblock($postexplode[0],$postexplode[1]);

         echo'<!-- Social sharing buttons -->
              <button id="liker'.$lastid.'" type="button" data-target="'.$lastid.'" onclick="thelikeloadtimeclick('.$lastid.');" class="btn btn-default btn-xs"><i class="fa fa-thumbs-o-up"></i> Me gusta</button>
              <span id="likecomment'.$lastid.'" class="pull-right text-muted">
                 
              </span>
            </div>

            <!-- /.box-footer -->
            <div class="box-footer">
              <form class="commentfrm" data-form="'.$lastid.'" id="commentfrm'.$lastid.'">
                <img  id="mypiccomment" class="img-responsive img-circle img-sm" src="'.$profileimg.'">
                <!-- .img-push is used to add margin to elements next to floating images -->
                <div class="img-push">
                  <input type="text" class="form-control input-sm" name="comentario" placeholder="Comentar...">
                </div>
              </form>
            </div>
            <!-- /.box-footer -->

            <!-- /.box-body -->
            <div id="box-commets-body-'.$lastid.'" class="box-footer box-comments">

            </div>

          </div>
    ';


    $conexion = '';



}



function downloadarchive($permalink){

     // conexion de base de datos
     $conexion = Conexion::singleton_conexion();

     $SQL = 'SELECT * FROM '.SSPREFIX.'attachment WHERE permalink = :permalink LIMIT 1';
     $stn = $conexion -> prepare($SQL);
     $stn -> bindParam(':permalink', $permalink ,PDO::PARAM_STR);
     $stn -> execute();
     $rstl = $stn -> fetchAll();
     if (empty($rstl)){
       header('Location: 404.php');
     }else{
       foreach ($rstl as $key){
          $ruta = str_replace('../', '', $key['ruta']);
          $nombre = $key['nombre'];
       }
     }

     header("Content-type: application/octet-stream");
     header("Content-Type: application/force-download");
     header("Content-Disposition: attachment; filename=\"$nombre\"\n"); readfile($ruta);


}





// Tomamos los ultimos 6 post
function takepostperpermalink($permalink){

    // conexion de base de datos
    $conexion = Conexion::singleton_conexion();


    $SQL = 'SELECT '.SSPREFIX.'usuarios.id AS userid, '.SSPREFIX.'posts.tipo AS posttipo, '.SSPREFIX.'posts.id AS postingid, '.SSPREFIX.'posts.post, '.SSPREFIX.'posts.permalink, '.SSPREFIX.'posts.fecha, '.SSPREFIX.'usuarios.nombre, '.SSPREFIX.'usuarios.apellido, '.SSPREFIX.'usuarios.permalink AS userperma FROM '.SSPREFIX.'posts INNER JOIN '.SSPREFIX.'usuarios ON '.SSPREFIX.'usuarios.id = '.SSPREFIX.'posts.usuario WHERE '.SSPREFIX.'posts.permalink = :permalink ORDER BY '.SSPREFIX.'posts.fecha DESC LIMIT 1';
    $stn = $conexion -> prepare($SQL);
    $stn -> bindParam(':permalink' , $permalink, PDO::PARAM_INT);
    $stn -> execute();
    $rstl = $stn -> fetchAll();
    if (empty($rstl)){
      # code...
    }else{
      foreach ($rstl as $key){

       
        // imagen de perfil
        $profileimg = userprofile($key['userid']);

        // Fecha
        $fecha = fechastring($key['fecha'],$key['permalink']);

        // Imagen de perfil en el post
        $perfilactual = userprofile($_SESSION['ssid']);


        echo'

        <div id="post-public'.$key['postingid'].'" class="box box-widget">
            <div class="box-header with-border">
              <div class="user-block">
                <img class="img-circle" src="'.$profileimg.'" alt="'.$key['nombre'].' '.$key['apellido'].'">
                <span class="username"><a href="profile.php?'.$key['userperma'].'">'.$key['nombre'].' '.$key['apellido'].'</a></span>
                '.$fecha.'
              </div>
              <!-- /.user-block -->
            </div>
            <!-- /.box-header -->
            <div class="box-body">
              <!-- post text -->';

              if ($key['posttipo'] == 1){
                profileimageposttake($key['post']);
              }elseif ($key['posttipo'] == 3) {
                portadaimageposttake($key['post']);
              }elseif ($key['posttipo'] == 4) {

                $postexplode = explode('|', $key['post']);
                getattachblock($postexplode[0],$postexplode[1]);

              }else{
                echo'<p>'.emoticons($key['post']).'</p>';
              }

              echo'<!-- Social sharing buttons -->
              ';

              checklike($key['postingid']);

              echo'

              <span id="likecomment'.$key['postingid'].'" class="pull-right text-muted">
                 ';

                      checklikeandcomments($key['postingid']);

                 echo'
              </span>
            </div>

            <!-- /.box-footer -->
            <div class="box-footer">
              <form class="commentfrm" data-form="'.$key['postingid'].'" id="commentfrm'.$key['postingid'].'">
                <img  id="mypiccomment" class="img-responsive img-circle img-sm" src="'.$perfilactual.'">
                <!-- .img-push is used to add margin to elements next to floating images -->
                <div class="img-push">
                  <input type="text" class="form-control input-sm" name="comentario" placeholder="Comentar...">
                </div>
              </form>
            </div>
            <!-- /.box-footer -->

            <!-- /.box-body -->
            <div id="box-commets-body-'.$key['postingid'].'" class="box-footer box-comments">';

               commentsajx($key['postingid'],$key['permalink']);

             echo'</div>
          </div>

        ';

      }
    }


    $conexion = '';

}


Gracias de antemano, saludos !!
#25
PHP / Descontar Cantidad en Utilidad
14 Mayo 2017, 06:30 AM
Hola, buenas. Tengo un sistema de inventario que no fue creado por mi pero estoy intentando modificarle algunas cosas. Hay una opción que se llama "Utilidades" dentro del sistema, es la suma de comisiones de cada vendedor, lo que yo quisiera saber es cómo hago para descontarle x cantidad a ese número, osea, tener la opción de poder descontar ese número:


Se utiliza este código en esa parte:
<?php
$u 
null;
if( 
Session::getUID() != "" && !empty( $_GET["id"] ) ):

$u UserData::getByIdSession::getUID() );
    
$user $u->name." ".$u->lastname;
    
$client_id $_GET["id"];
    
$client ClientData::getById$client_id );
    
$cliente false;
elseif( 
Session::getUID() != "" && empty( $_GET["id"] ) ):

$u UserData::getByIdSession::getUID() );
    
$user $u->name." ".$u->lastname;
    
    
$client ClientData::getByIdUser$u->id );
    
$client_id $client->id;
    
$cliente true;
else:

print "<script>window.location='index.php';</script>";
endif;
?>

<div class="row">
<div class="col-md-12">
<h1><i class='fa fa-clock-o'></i> <?php echo $client->name." ".$client->lastname?> </h1>
<br>

<?php
$products = array();
if(isset($_GET["start_at"]) && $_GET["start_at"]!="" && isset($_GET["finish_at"]) && $_GET["finish_at"]!=""){

if($_GET["start_at"]<$_GET["finish_at"]){

$products OperationData::getAllByClientIdAndRange$client->id,$_GET["start_at"], $_GET["finish_at"] );
}
}
else{

$products OperationData::getAllByClientId$client->id );
}
$comision_total 0;
if( count$products ) > ){
?>

<br>
<table class="table table-bordered table-hover ">
<thead>
<th>Clave</th>
<th>Precio de Venta</th>
<th>Precio de Costo</th>
<th>Fecha del pedido</th>
<th>Comisión</th>
<?
                if( $u->is_admin == 1 ):?>
<th></th>
<?
endif;?>
</thead>
<?php 
#echo "<pre>";print_r( $products );echo "</pre>";
foreach($products as $sell):


#$item = $sell->getItem();
$book BookData::getById$sell->book_id );
?>

<tr>
<td>
<?php echo $book->isbn?>
</td>
<td><?php echo $book->cantidad?></td>
<td><?php echo $book->precio_costo?></td>
<td><?php echo $sell->start_at?></td>
<td>
<?
$comision = $book->cantidad - $book->precio_costo;
if( $comision >= 80 ){

echo '$40';
$comision_total = 40 + $comision_total;
}
else{

echo '$20';
$comision_total = 20 + $comision_total;
}
?>
</td>
<?
                if( $u->is_admin == 1 ):?>
<td>
<a href="index.php?action=delorder&id=<?php echo $sell->id;?>" class="btn btn-danger btn-xs">Eliminar</a>
</td>
<?
endif;?>
</tr>
<?php
endforeach; ?>

</table>

<div class="clearfix"></div>
<?php
}
else{
?>

<p class="alert alert-danger">No hay pedidos.</p>
<?php
}
$inventario OperationData::getInventory$client->id );
$list_inventario OperationData::Discount_list$client->id );
$inventario_sum OperationData::Discount_sum$client->id );
$initial_vendedor ClientData::getById$client->id );
?>

<div class="row">
<div class="col-lg-3">
Inventario Inicial<br>
<?
if( !$cliente ):?>
<form action="index.php?action=updateinventory" method="post">
<input id="vendedor" type="hidden" name="vendedor" value="<?= $client->id ?>">
<input required id="invetory_initial" type="text" name="invetory_initial" value="<?= $initial_vendedor->initial_inventory ?>">
<button type="submit" class="btn btn-success">Editar</button>
</form>
<?
else:?>
<h3>$<?= $initial_vendedor->initial_inventory ?></h3>
<?
endif;?>
</div>
<div class="col-lg-2">
Pedidos Realizados: <h3> $<?= ( empty( $inventario[0]->total ) ) ? 0 : $inventario[0]->total ?></h3>
</div>
<div class="col-lg-2">
Abonos: <h3> $<?= ( empty( $inventario_sum[0]->total ) ) ? 0 : $inventario_sum[0]->total ?></h3>
</div>
<div class="col-lg-2">
Deuda Total: <h3>$<?= ( ( $initial_vendedor->initial_inventory + $inventario[0]->total ) - $inventario_sum[0]->total ) ?></h3>
</div>
<div class="col-lg-2">
<label><font color='red'>Utilidades:</font></label> <font color='red'><h3> $<?= $comision_total ?></h3></font>
</div><br>
</div>
<?
if( count( $list_inventario ) > 0 ){?>
<div class="row">
<h3 class="col-lg-4 col-lg-offset-4">Lista de Abonos:</h3><br>
<?
if( count( $list_inventario ) > 0 ){
?>
<br>
<table align="center" class="table table-bordered table-hover">
<thead>
<th>Abono:</th>
<th>Fecha del Abono:</th>
</thead>
<?php 
foreach($list_inventario as $list_inventario):
?>

<tr>
<td>
<?php echo $list_inventario->discount_valor?>
</td>
<td>
<?php echo $list_inventario->discount_date?>
</td>
</tr>
<?php
endforeach; ?>

</table>
<?php
}?>

</div>
<?
}
if( !$cliente ):?>
<div>
<form action="index.php?action=addiscount" method="post">
<input id="cliente" name="cliente" type="hidden" value="<?= $client->id ?>">
<label>Abono: </label>
<input required id="discount_n" type="text" name="discount_n">
<button type="submit" class="btn btn-success">Abonar</button>
</form>
</div>
<?
endif;?>
<div class="clearfix"></div>
<br><br><br><br><br><br><br><br><br><br>
</div>
</div>


La utilidad se obtiene sumando la comisión de los productos. Ahora, cuando se paga esa utilidad a los vendedores es cuando ese número debe descontarse (la cantidad que se pague). Como mencioné, es un sistema gratuito que encontré en internet y que estoy modificando pero ya no encuentro la forma de aplicar esto. Les muestro el sistema y la base de datos actual: https://mega.nz/#!7chmSLwC!hr30QNhit...lJuVWdAqs9si68

Se los envío para que se den una idea más detallada de dónde está lo que intento hacer, no pido que resuelvan mi problema haciéndolo, sólo que me ayuden a saber qué debo hacer para realizar lo que pregunto..

Espero puedan apoyarme, saludos!

MOD: Imagen adaptada lo permitido.
#26
PHP / No me permite eliminar un elemento
13 Abril 2017, 00:32 AM
Hola, buenas. Tengo un sistema de inventario, cuando intento eliminar un producto del historial de ventas y presiono "Eliminar" no ocurre nada, me recarga la página con el mismo producto intacto:

Esta es la línea para ese botón:


Ahora, me meto al archivo donde tengo los errores y me marca el siguiente:


Entro a esa carpeta, en esa línea y no encuentro el error:


A que se debe que no se elimine el elemento??
Gracias de antemano, saludos !!


Mod: Resolución máxima de las imágenes en el foro 800x600.
#27
Hola, buenas. Estoy intentando editar un logo para una campaña de gimnasio, el problema es que al terminar y exportarlo como .avi cuando intento reproducirlo en mi computadora se mira muy lento, como que dura para cargar y se traba cosa que en After Effects no sucede.

Así es como lo exporto:




Cuando lo reproduzco dentro del After Effects corre bien, no se traba, pero cuando abro el archivo avi en distintos reproductores todo se miran igual, lento, como con pausas. Quiero saber si es problema de mi computadora o algo estoy haciendo mal al momento de exportarlo, qué creen que sea el problema??

Gracias de antemano !!
#28
Hola, buenas. Quisiera saber si conocen algún software gratuito que me sirva para crear anuncios de texto con movimiento, por ejemplo un anuncio indicando "Funciones Agotadas" y que vayan pasando las funciones de derecha a izquierda. Y que se pueda exportar, osea, que se pueda ver en una pantalla...

Saludos
#29
Software / Cómo abro un archivo tfu?
4 Febrero 2017, 18:17 PM
Hola, acabo de hacer un letrero LED con la aplicación "Power Led" pero el archivo que exporta es .tfu , no he podido abrirlo con ningún programa para ver el resultado en pantalla, cómo puedo abrirlo??
Saludos !
#30
PHP / Colocar cuadro para justificar acción
2 Febrero 2017, 20:38 PM
Hola, buenas. Unos compañeros y yo estamos trabajando en un proyecto de la universidad y me ha tocado crear un cuadro de justificación cuando el comprobando que se envía al sistema no es válido, me explico con esta imagen:


Como ven, hay dos opciones, aceptar el comprobante o NO aceptarlo, lo que quiero hacer es que al momento de dar click sobre "Comprobante No válido" me aparezca un cuadro aún lado donde se explique la razón por la cual no fue aceptado, cómo lo puedo hacer?, les dejo el código de esa sección:
<?php
$id 
$_POST["id"];
$verificacion $_POST["verificacion"];
$fecha=$_POST["fecha"];

include 
'conexion.php';

//**************************************** Verificacion 1 ok, 2 no aprobado, 0 espera de verificacion, 4 sin movimientos  ****************************

//echo '<script language="javascript">alert("El valor de id es = '.$id.' ");</script>'; 


if($verificacion==3){
    
//$tabla=$mysqli->query("update asistente set verificacion=".$verificacion." where id=".$id);
   
    
$tabla=$mysqli->query("select c.idCurso, c.cupo, c.nombreCurso, c.claveCurso from curso c inner join curso_asistente ca 
        on c.idCurso=ca.idCurso where ca.idUsuario='"
.$id."'");
    
//checar cupo del grupo!!!
    
$cursosLlenos ="";
    
$cursosIns ="";    
    
//agregar asistente al curso!!!
    
    
while($row $tabla->fetch_array()) { 

        
//Versiòn 2: Se calcula la capacidad
        /*$inscritos = $mysqli->query("select verificacion from asistente inner join curso_asistente on curso_asistente.idUsuario = asistente.folio && curso_asistente.idCurso = '".$row[0]."' && asistente.verificacion=3");*/

        
$inscritos $mysqli->query("select inscrito from curso_asistente where idCurso = '".$row[0]."' && inscrito=1 ");


        
$NumInscritos mysqli_num_rows($inscritos);
        
$capacidad $row[1] - $NumInscritos//cupo menos inscritos

        
if($capacidad>0){
            
$inscribir $mysqli->query("update curso_asistente set inscrito=1 where (idUsuario='".$id."' && idCurso='".$row[0]."')");
            
$cursosIns .= " + ".htmlentities($row[2])."<br>";
        }else{

            
$cursosLlenos .= " - ".htmlentities($row[2])."<br>";
            
//$mysqli->query("delete from curso_asistente where nomCurso='".$row[0]."' and idUsuario='".$id."'");
            /*$mysqli->query("update curso set claveCurso='".$row[3]."_X' where 
                claveCurso='".$row[3]."' and year ='".$fecha."'");*/
                
        
}
       
    }

    
$tabla=$mysqli->query("update asistente set verificacion=".$verificacion." where folio='".$id."'");
    
$tabla=$mysqli->query("update factura set verificacion=1 where idUsuario='".$id."'");

    
session_start();

    
$nombreUser $_SESSION["nombreU"];
    
$tabla=$mysqli->query("update asistente set verificadoPor='".$nombreUser."' where folio='".$id."'");

}else if(
$verificacion==2){ //SI ES RECHAZADO
    
$tabla3=$mysqli->query("update asistente set verificacion=".$verificacion." where folio='".$id."'");
    
$tabla3=$mysqli->query("update factura set verificacion=0 where idUsuario='".$id."'");

    
session_start();

    
$nombreUser $_SESSION["nombreU"];
    
$tabla=$mysqli->query("update asistente set verificadoPor='".$nombreUser."' where folio='".$id."'");
}



    
//////////////////Se agrega nuevo codigo para enviar correo electronico de confirmacion
    
include "config.php";
    require 
'class.phpmailer.php';  
    
$mail = new PHPMailer();
    
//Luego tenemos que iniciar la validaci&oacute;n por SMTP:
    
$mail->IsSMTP();
    
$mail->SMTPAuth true;
    
$mail->Host $host// SMTP a utilizar. Por ej. smtp.elserver.com
    
$mail->Username $Username// Correo completo a utilizar
    
$mail->Password $password// Contrase&ntilde;a
    
$mail->Port $port// Puerto a utilizar
    
$mail->SMTPSecure $smtpSecure;
    
//Con estas pocas l&iacute;neas iniciamos una conexi&oacute;n con el SMTP. Lo que ahora deber&iacute;amos 
    //hacer, es configurar el mensaje a enviar, el //From, etc.
    //$mail->From = "adan.sandez21@live.com.mx"; // Desde donde enviamos (Para mostrar)
    
$mail->FromName $fromName;
    
//$tabla=$mysqli->query("Select * from asistente where id='".$id."'");
    
$tabla=$mysqli->query("Select * from asistente where folio='".$id."'");
    
//Estas dos l&iacute;neas, cumplir&iacute;an la funci&oacute;n de encabezado (En mail() usado de esta forma: "From: Nombre <correo@dominio.com>") de //correo.

    
while($row $tabla->fetch_array()){

        
$mail->AddAddress($row[6]); // Esta es la direcci&oacute;n a donde enviamos //SE cambio row 7 por row 6.
        
$mail->AddBCC("adrianvo@mat.uson.mx"$name "Adrian Vazquez");  // Esta es la copia oculta que se envia.
        
$mail->IsHTML(true); // El correo se env&iacute;a como HTML
        
$mail->Subject "Inscripcion CONFIRMADA a la SNIDM - Universidad de Sonora"// Este es el titulo del email.

        
if($verificacion==3){
            
$body "<strong> Hola ".$row[0].",<br><br> 
            Este correo es para confirmar que tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y 
            Docencia en Matem&aacute;ticas ha sido registrada EXITOSAMENTE. </strong><br><br>"
;
        }else if(
$verificacion==&& $row[10]==){ //si NO es becado
            
$mail->Subject "Inscripcion DENEGADA a la SNIDM - Universidad de Sonora"// Este es el titulo del email.            
            
$body "<strong> Hola ".$row[0].",<br><br> 
            Este correo es para informar que tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y 
            Docencia en Matem&aacute;ticas NO est&aacute; COMPLETA. Lamentablemente no se pudo visualizar bien la imagen del comprobante de pago. Te invitamos a que realices de nueva cuenta la inscripci&oacute;n.  </strong><br><br>"
;

 
        }else if(
$verificacion==&& $row[10]==1){//si es becado
            
$mail->Subject "Inscripcion DENEGADA a la SNIDM - Universidad de Sonora"// Este es el titulo del email. 
             
$body "<strong> Hola ".$row[0].",<br><br> 
            Este correo es para informar que tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y 
            Docencia en Matem&aacute;ticas NO est&aacute; COMPLETA. Lamentablemente no se pudo visualizar bien la imagen de tu credencial. Te invitamos a que realices de nueva cuenta la inscripci&oacute;n. </strong><br><br>"
;
        
        }
#31
Desarrollo Web / Pasar proyecto a mi localhost
30 Enero 2017, 15:19 PM
Hola, cuales son los pasos para instalar un proyecto, un sistema incluyendo la base de datos en mi localhost?, que procedimientos debo seguir?, saludos!
#32
Hola, hay manera de crackear un archivo 7zip con contraseña?
Ya intenté todos los métodos que vienen en Internet, YouTube, etc pero nada funciona, no logro descifrar la contraseña de un archivo. Es realmente posible?
#33
Desarrollo Web / Mover de posición Tooltip
24 Enero 2017, 22:15 PM
Hola, buenas. Cómo puedo colocar por un costado derecho el letrero que aparece en cima del campo?


Este es el css:
.alert-danger{
border:solid red 1px !important;
}   
a.tooltips {
  display: inline;
}
a.tooltips span {
 
  display:block;
  color: #FFFFFF;
  background: #555;
  background: rgba(53, 53, 53, 0.9);
  min-height: 18px;
  text-align: center;
  border-radius: 6px;
  padding: 5px;
font-size: .9em;
}
a.tooltips span:after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -8px;
  width: 0; height: 0;
  border-top: 8px solid #555;
  border-top: 8px solid rgba(53, 53, 53, 0.9);
  border-right: 8px solid transparent;
  border-left: 8px solid transparent;
}


Por ejemplo, la flecha apunta hacia abajo, debería apuntar hacia la izquierda...

Gracias de antemano !!
#34
PHP / Colocar código de barra en productos
19 Enero 2017, 08:16 AM
Hola, muy buenas tardes. Estoy participando en un proyecto sobre un inventario de diversos productos de una tienda comercial y tengo que almacenar todos los productos que haya en la tienda con cada código de barra de cada producto, lo que no sé cómo podría hacerlo, el modelo es este:


Cómo puedo hacer para que cada producto tenga su código de barra, que se introduzca ahí cada vez que se cree un producto y cuando el dueño vaya a checar esos productos simplemente tenga que escanearlo desde su celular..

Alguna sugerencia??, gracias de antemano !!!
#35
Hola, buenas. Se hizo un sistema de inventario con php y se almacenó todo en mi base de datos pero ahora quisiera pasarlo a un hosting web, comprar un dominio y tenerlo en la web. Cómo es la manera más sencilla de hacerlo y qué hosting me recomiendan para comprar?. Por ejemplo, estoy mirando este, es el que hasta el momento más me llamó la atención: https://hosting-mexico.net/basico.htm entonces, comprando ese plan básico, teniendo mi dominio y mi host, cómo pasaría mi inventario a la web?

Saludos!!
#36
Hola, buenas. Estoy trabajando en un proyecto que me dejó mi profesor, estoy modificando una plataforma de registros, tengo poco tiempo en php, y no puedo hacer que funcione una condicional.La página para que los usuarios se registren es:http://semana.mat.uson.mx/registro/unison/inicio.php. Cuando una persona se registra se le envía un correo con los datos en donde debe realizar los pagos, sus datos de registro y un mensaje indicando que aún NO completa su inscripción. Ahora viene el problema que tengo: Cuando selecciona la opción de "becado" a éste no se le debe indicar lo que se le pone a los demás por correo, simplemente le debe aparecer que debe esperar un correo por parte del comité organizador para verificar su inscripción.

Código de Registro:
<meta charset="utf-8">
<?php
include 'conexion.php';
//$tabla=$mysqli->query("select idfechas FROM semana where activado=1");

$tabla=$mysqli->query("select year FROM semana where activado=1");
$cursoActivo=$tabla->fetch_array()[0];
$bandera=$_POST["bandera"];
//var_dump ($op1);
//echo $nombre." ".$apellidoP." ".$apellidoM." ".$institucion." ".$_POST["rol"];

if($bandera=="none"){    
$nombre ucwords($_POST["Nombre"]);
$apellidoP ucwords($_POST["ApellidoP"]);
$apellidoM ucwords($_POST["ApellidoM"]);
$institucion ucwords($_POST["Institucion"]);
$rol $_POST["rol"];
    if(isset(
$_POST["estudiante"])){
        
$estudiante=$_POST["estudiante"];
        }else{
$estudiante="0";
}
if(isset(
$_POST["becado"])){   
$becado=$_POST["becado"];
}else{
$becado="0";
}
    
/*if($estudiante=="1"){
$estudiante="true";
}else{
$estudiante="false";
}
    
if($becado=="1"){
$becado="true";
}else{
$becado="false";
}*/
    
if(isset($_POST["option1"])){    
    
$op1 $_POST["option1"];
}else{
    
$op1="";
}
$email=$_POST["email"];
echo 
$bandera;
    

//echo '&eacute;xito... ' . $mysqli->host_info . "<br>";
//$tabla=$mysqli->query("select max(id) FROM asistente");
mysqli_set_charset($mysqli,'utf8');
$tabla=$mysqli->query("select year from semana where activado=1");
 
$activado=$tabla->fetch_array()[0];
$tabla=$mysqli->query("select count(year) FROM asistente where year= '".$activado."'");
//printf($tabla->num_rows);
/*if ($tabla->num_rows > 0) {
    // output data of each row
    while($row = $tabla->fetch_array()) {
       $id=$row[0]+1;
    }
} else {
    $id=1;
}*/
$row $tabla->fetch_array();
$id=$row[0]+1;

$folio=$activado//Incrementamos el folio en la version dos.
$folio.="-";
$folio.=substr($nombre,0,1);
$folio.=substr($apellidoP,0,1);
$folio.=substr($apellidoM,0,1);
$folio.="-";
$folio.=rand(1000,9999);
$folio.="-";
$folio.=$id;

$nombre=$mysqli->real_escape_string($nombre);
$apellidoP=$mysqli->real_escape_string($apellidoP);
$apellidoM=$mysqli->real_escape_string($apellidoM);
$institucion=$mysqli->real_escape_string($institucion);
$rol=$mysqli->real_escape_string($rol);
$folio=$mysqli->real_escape_string($folio);
$email=$mysqli->real_escape_string($email);
 
    if(empty(
$_FILES["rutaIMGcred"]['name'])){
            
$target_file="null";
        }
        else{
            include 
"uploadCred.php"
            
        }


if(
$becado==1){
    
$verificacionNueva=1;
}else{
    
$verificacionNueva=4;
}




//la "fecha" debe ser la semana que se encuentre activa!!.. Cambiar (YEAR(now)). (GRUPAL)
$tabla=$mysqli->query("insert into asistente (nombre,apellidoPaterno,apellidoMaterno,institucion,tipo,folio,email,verificacion,rutaImagenPago,estudiante,becado,factura,rutaImagenCredencial,year) values('".htmlentities($nombre)."','".htmlentities($apellidoP)."','".htmlentities($apellidoM)."','".htmlentities($institucion)."','".$rol."','".$folio."','".htmlentities($email)."','".$verificacionNueva."','null','".$estudiante."','".$becado."',0,'".$target_file."','".$cursoActivo."')");

//obtener el ID del usuario despues de haber sido insertado (GRUPAL). 
//NOTA. Se considera mas adecuado: Insertar al usuario, obtener Id, actualizar datos adicionales (folio, cursos, etc.). (GRUPAL)
//NOTA. Asegurar que los cursos esten asociados a la semana correspondiente activada (GRUPAL). solucion. Agregar campo en la tabla de curso_asistente para la semana activada del curso. Ademas, se debe asociar el curso con la semana que corresponde.


foreach ($op1 as $i){
//$tabla=$mysqli->query("insert into curso_asistente (nomCurso, idUsuario) values ('".$i."','".$id."')");
$tabla=$mysqli->query("insert into curso_asistente (idCurso, idUsuario, inscrito) values ('".$i."','".$folio."',0)");
//$table=$mysqli->query("update cursos set Cupo = Cupo-1 where idCurso ='".$i."'");


$mysqli->close();
include 
"config.php"//Datoos fijos para No Reply el emal. 
require 'class.phpmailer.php'//Libreria de funciones para tratar emails, formatos etc...


   
    
$mail = new PHPMailer();
    
//Luego tenemos que iniciar la validaci&oacute;n por SMTP:
    
$mail->IsSMTP();
    
$mail->SMTPAuth true;
    
$mail->Host $host// SMTP a utilizar. Por ej. smtp.elserver.com
    
$mail->Username $Username// Correo completo a utilizar
    
$mail->Password $password// Contrase&ntilde;a
    
$mail->Port $port// Puerto a utilizar
    
$mail->SMTPSecure $smtpSecure;
    
//Con estas pocas l&iacute;neas iniciamos una conexi&oacute;n con el SMTP. Lo que ahora deber&iacute;amos hacer, es configurar el mensaje a enviar, el //From, etc.
    //$mail->From = "adan.sandez21@live.com.mx"; // Desde donde enviamos (Para mostrar)
    
$mail->FromName $fromName;

    
//Estas dos l&iacute;neas, cumplir&iacute;an la funci&oacute;n de encabezado (En mail() usado de esta forma: "From: Nombre <correo@dominio.com>") de //correo.
    
$mail->AddAddress($email); // Esta es la direcci&oacute;n a donde enviamos
    //$mail->AddBCC("adrianvo@mat.uson.mx", $name = "Adrian Vazquez") ;  //  Esta es la copia oculta que se envia.
    
$mail->IsHTML(true); // El correo se env&iacute;a como HTML
    
$mail->Subject "Registro a la SNIDM - Universidad de Sonora"// Este es el titulo del email.
    
$body "<strong> Hola ".htmlentities($nombre).",<br><br>
    Recuerda que a&uacute;n NO completas tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y Docencia en Matem&aacute;ticas. 
    <br>Debes enviar tu comprobante de pago y esperar el correo de confirmaci&oacute;n por parte del Comit&eacute; Organizador.</strong><br><br>"
;
    
    
$body .= "<strong>Datos Bancarios para realizar el pago:</strong><br>";
    
$body .= "<strong>Nombre: </strong> Universidad de Sonora<br>";
    
$body .= "<strong>N&uacute;mero de cuenta</strong>: 6-550-17-89-3-98<br>";
    
$body .= "<strong>Banco</strong>: Santander <br>";
    
$body .= "<strong>CLABE interbancaria</strong>: 014760655017893981<br><br>";

    
    
$body .= "<strong>Datos De registro:</strong><br>";
    
$body .= "<strong>Folio</strong>:".$folio."<br>";
    
$body .= "<strong>Nombre:</strong>".htmlentities($nombre)." ".htmlentities($apellidoP)." ".htmlentities($apellidoM)."<br>";
    
$body .= "<strong>Registrado como:</strong>".$rol."<br>";
    
$body .= "<strong>Instituci&oacute;n</strong>:".htmlentities($institucion)."<br><br>";    
    
    
$body .= "<span>Para cualquier consulta o correci&oacute;n comunicarse a semana@mat.uson.mx</span><br><br>";
    
    
$body .= "<span style='color:rgb(68,68,68);font-size:22px;line-height:31px;' >Considera el medio ambiente antes de imprimir este correo</span><br><br><br><br>";

    
$body .="<b style='line-height:26px;font-weight:bold'>AVISO DE CONFIDENCIALIDAD Y ALCANCE LEGAL</b><br>"

    
$body .= "<hr color='#214984' style='line-height:31px'>";

    
$body .= "<p style='font-size:10px;'>Este correo electr&oacute;nico es confidencial y para uso exclusivo de la(s) persona(s) a quien(es) se dirige. Si el lector de esta transmisi&oacute;n electr&oacute;nica no es el destinatario, se le notifica que cualquier distribuci&oacute;n o copia de la misma est&aacute; estrictamente prohibida. Si ha recibido este correo por error le solicitamos notificar inmediatamente a la persona que lo envi&oacute; y borrarlo definitivamente de su sistema.</p>

<p style='font-size:10px;'>Los correos electr&oacute;nicos no son necesariamente seguros, por lo que el remitente no ser&aacute; responsable en ning&uacute;n momento por los cambios que se sufra en su transferencia. A&uacute;n cuando se hayan revisado los archivos adjuntos existe siempre la posibilidad de que puedan contener virus o c&oacute;digos maliciosos que da&ntilde;en los sistemas del destinatario, por lo que tampoco se asume ninguna responsabilidad en caso de mutaciones en su transferencia y ser&aacute; siempre necesario revisarlos antes de abrirlos.</p>

<p style='font-size:10px;'>Las opiniones expresadas en este correo electr&oacute;nico deber&aacute;n ser confirmadas por escrito y firmadas por el remitente para tener validez legal, por lo que el correo electr&oacute;nico no es el medio apropiado para emitir opiniones o recomendaciones formales.</p><br>"
;
        
        
    
$mail->Body $body// Mensaje a enviar
    
$exito $mail->Send(); // Env&iacute;a el correo.

    //Tambi&eacute;n podr&iacute;amos agregar simples verificaciones para saber si se envi&oacute;:
    
if($exito){
        echo 
true;
        echo 
"Se envio";
    }else{
        echo 
$mail->ErrorInfo;
    }

header("Location:succes.php?folio=".$folio);

/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
}
else{
$fact_nombre=$_POST["fact_nombre"];
$fact_calle=$_POST["fact_calle"];
$fact_numero=$_POST["fact_numero"];
$fact_colonia=$_POST["fact_colonia"];
$fact_cp=$_POST["fact_cp"];
$fact_municipio=$_POST["fact_municipio"];
$fact_estado=$_POST["fact_estado"];
$fact_rfc=$_POST["fact_rfc"];
$fact_email=$_POST["fact_email"];
$fact_pais=$_POST["fact_pais"];

$nombre ucwords($_POST["Nombre"]);
$apellidoP ucwords($_POST["ApellidoP"]);
$apellidoM ucwords($_POST["ApellidoM"]);
$institucion ucwords($_POST["Institucion"]);
$rol $_POST["rol"];
    if(isset(
$_POST["estudiante"])){
        
$estudiante=$_POST["estudiante"];
        }else{
$estudiante="0";
}
if(isset(
$_POST["becado"])){   
$becado=$_POST["becado"];
}else{
$becado="0";
}
/*    
if($estudiante=="1"){
$estudiante="true";
}else{
$estudiante="false";
}
    
if($becado=="1"){
$becado="true";
}else{
$becado="false";
}
*/    
if(isset($_POST["option1"])){    
    
$op1 $_POST["option1"];
}else{
    
$op1="";
}
$email=$_POST["email"];
echo 
$bandera;
    
//echo '&eacute;xito... ' . $mysqli->host_info . "<br>";
//$tabla=$mysqli->query("select max(id) FROM asistente");
mysqli_set_charset($mysqli,'utf8');
$tabla=$mysqli->query("select year from semana where activado=1");
 
$activado=$tabla->fetch_array()[0];
$tabla=$mysqli->query("select count(year) FROM asistente where year= '".$activado."'");
//printf($tabla->num_rows);
/*if ($tabla->num_rows > 0) {
    // output data of each row
    while($row = $tabla->fetch_array()) {
       $id=$row[0]+1;
    }
} else {
    $id=1;
}*/
$row $tabla->fetch_array();
$id=$row[0]+1;

$folio=$activado//Incrementamos el folio en la version dos.
$folio.="-";
$folio.=substr($nombre,0,1);
$folio.=substr($apellidoP,0,1);
$folio.=substr($apellidoM,0,1);
$folio.="-";
$folio.=rand(1000,9999);
$folio.="-";
$folio.=$id;


$nombre=$mysqli->real_escape_string($nombre);
$apellidoP=$mysqli->real_escape_string($apellidoP);
$apellidoM=$mysqli->real_escape_string($apellidoM);
$institucion=$mysqli->real_escape_string($institucion);
$rol=$mysqli->real_escape_string($rol);
$folio=$mysqli->real_escape_string($folio);
$email=$mysqli->real_escape_string($email);
 
    if(empty(
$_FILES["rutaIMGcred"]['name'])){
            
$target_file="null";
        }
        else{
            include 
"uploadCred.php"
            
        }


if(
$becado==1){
    
$verificacionNueva=1;
}else{
    
$verificacionNueva=4;
}
        

$tabla=$mysqli->query("insert into asistente (nombre,apellidoPaterno,apellidoMaterno,institucion,tipo,folio,email,verificacion,rutaImagenPago,estudiante,becado,factura,rutaImagenCredencial,year) values('".htmlentities($nombre)."','".htmlentities($apellidoP)."','".htmlentities($apellidoM)."','".htmlentities($institucion)."','".$rol."','".$folio."','".htmlentities($email)."','".$verificacionNueva."','null','".$estudiante."','".$becado."',1,'".$target_file."','".$cursoActivo."')");

foreach (
$op1 as $i){
$tabla=$mysqli->query("insert into curso_asistente (claveCurso, idUsuario, inscrito) values ('".$i."','".$folio."',0)");
//$table=$mysqli->query("update cursos set Cupo = Cupo-1 where idCurso ='".$i."'");



$fact_nombre=$mysqli->real_escape_string($fact_nombre);
$fact_calle=$mysqli->real_escape_string($fact_calle);
$fact_numero=$mysqli->real_escape_string($fact_numero);
$fact_colonia=$mysqli->real_escape_string($fact_colonia);
$fact_cp=$mysqli->real_escape_string($fact_cp);
$fact_municipio=$mysqli->real_escape_string($fact_municipio);
$fact_estado=$mysqli->real_escape_string($fact_estado);
$fact_rfc=$mysqli->real_escape_string($fact_rfc);
$fact_email=$mysqli->real_escape_string($fact_email);    
$fact_pais=$mysqli->real_escape_string($fact_pais);
    
if(isset(
$_POST["desglosado"])){    
$fact_desglosado=$_POST["desglosado"];
}else{
$fact_desglosado="0";
}
/*    
if($fact_desglosado=="1"){
$fact_desglosado="Si";
}else{
$fact_desglosado="No";
}
*/
    
$tabla=$mysqli->query("insert into factura (nombre,calle,numero,colonia,cp,municipio,estado,rfc,idUsuario,emailFactura,pais,ivaDesglosado,verificacion) values ('".htmlentities($fact_nombre)."','".htmlentities($fact_calle)."','".htmlentities($fact_numero)."','".htmlentities($fact_colonia)."','".htmlentities($fact_cp)."','".htmlentities($fact_municipio)."','".htmlentities($fact_estado)."','".htmlentities($fact_rfc)."','".htmlentities($folio)."','".htmlentities($fact_email)."','".htmlentities($fact_pais)."','".$fact_desglosado."',4)");
$mysqli->close();

    
include 
"config.php";
require 
'class.phpmailer.php';


   
    
$mail = new PHPMailer();
    
//Luego tenemos que iniciar la validaci&oacute;n por SMTP:
    
$mail->IsSMTP();
    
$mail->SMTPAuth true;
    
$mail->Host $host// SMTP a utilizar. Por ej. smtp.elserver.com
    
$mail->Username $Username// Correo completo a utilizar
    
$mail->Password $password// Contrase&ntilde;a
    
$mail->Port $port// Puerto a utilizar
    
$mail->SMTPSecure $smtpSecure;
    
//Con estas pocas l&iacute;neas iniciamos una conexi&oacute;n con el SMTP. Lo que ahora deber&iacute;amos hacer, es configurar el mensaje a enviar, el //From, etc.
    //$mail->From = "adan.sandez21@live.com.mx"; // Desde donde enviamos (Para mostrar)
    
$mail->FromName $fromName;

    
//Estas dos l&iacute;neas, cumplir&iacute;an la funci&oacute;n de encabezado (En mail() usado de esta forma: "From: Nombre <correo@dominio.com>") de //correo.
    
$mail->AddAddress($email); // Esta es la direcci&oacute;n a donde enviamos
    
$mail->IsHTML(true); // El correo se env&iacute;a como HTML
    
$mail->Subject "Registro a la SNIDM - Universidad de Sonora"// Este es el titulo del email.
    
$body "<strong> Hola ".htmlentities($nombre).",<br><br>
    Recuerda que a&uacute;n NO completas tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y Docencia en Matem&aacute;ticas. 
    <br>Debes enviar tu comprobante de pago y esperar el correo de confirmaci&oacute;n por parte del Comit&eacute; Organizador.</strong><br><br>"
;

    
$body .= "<span><strong>Cursos Seleccionados:</strong></span><br>";

        
$cursoSelec $mysqli->query("select curso.nombreCurso from curso
                            inner join curso_asistente on curso.idCurso = curso_asistente.idCurso
                            where idUsuario='"
.$id."'");
    
    
$body .= "<strong>Datos Bancarios para realizar el pago:</strong><br>";
    
$body .= "<strong>Nombre: </strong> Universidad de Sonora<br>";
    
$body .= "<strong>N&uacute;mero de cuenta</strong>: 6-550-17-89-3-98<br>";
    
$body .= "<strong>Banco</strong>: Santander <br>";
    
$body .= "<strong>CLABE interbancaria</strong>: 014760655017893981<br><br>";

    
    
$body .= "<strong>Datos De registro:</strong><br>";
    
$body .= "<strong>Folio</strong>:".$folio."<br>";
    
$body .= "<strong>Nombre:</strong>".htmlentities($nombre)." ".htmlentities($apellidoP)." ".htmlentities($apellidoM)."<br>";
    
$body .= "<strong>Registrado como:</strong>".$rol."<br>";
    
$body .= "<strong>Instituci&oacute;n</strong>:".htmlentities($institucion)."<br><br>";   
    
    
    
$body .= "<strong>Datos De Facturaci&oacute;n:</strong><br>";
    
$body .= "<strong>Nombre</strong>:".htmlentities($fact_nombre)."<br>";
    
$body .= "<strong>Calle</strong>:".htmlentities($fact_calle)."<br>";
    
$body .= "<strong>N&uacute;mero</strong>:".htmlentities($fact_numero)."<br>";    
    
$body .= "<strong>Colonia</strong>:".htmlentities($fact_colonia)."<br>";
    
$body .= "<strong>C.P.</strong>:".htmlentities($fact_cp)."<br>";
    
$body .= "<strong>Municipio</strong>:".htmlentities($fact_municipio)."<br>";
    
$body .= "<strong>Estado</strong>:".htmlentities($fact_estado)."<br>";
    
$body .= "<strong>Pa&iacute;s</strong>:".htmlentities($fact_pais)."<br>";
    
$body .= "<strong>R.F.C</strong>:".htmlentities($fact_rfc)."<br>";
    
$body .= "<strong>Iva desglosado: </strong>".htmlentities($fact_desglosado)."<br>";
    
$body .= "<strong>E-mail</strong>:".htmlentities($fact_email)."<br><br>";
    
$body .= "<span>Para cualquier consulta o correcion comunicarse a semana@mat.uson.mx</span><br><br><br><br>";
    

<
p style='font-size:10px;'>Las opiniones expresadas en este correo electr&oacute;nico deber&aacute;n ser confirmadas por escrito y firmadas por el remitente para tener validez legalpor lo que el correo electr&oacute;nico no es el medio apropiado para emitir opiniones o recomendaciones formales.</p><br>";
        
        
    
$mail->Body = $body; // Mensaje a enviar
    
$exito = $mail->Send(); // Env&iacute;a el correo.

    //Tambi&eacute;n podr&iacute;amos agregar simples verificaciones para saber si se envi&oacute;:
    if(
$exito){
        echo true;
        echo "
Se envio";
    }else{
        echo 
$mail->ErrorInfo;
    }

header("
Location:succes.php?folio=".$folio);

}

?>
#37
Hola, buenas. Estoy teniendo un problema en la página que manejo que no he podido resolver; lo que sucede es que al momento de querer ver la lista de los usuarios registrados me envía TODOS los usuarios, y no por el año que debería ser, realmente casi todos son del año "2015" pero debería aparecer vacío en el 2016 y aparecer sólo 2 que hay en el "2017", enviaré unas imágenes para ilustrarlo mejor:

Cuando coloco la fecha del 2015 me envía la lista de todos los usuarios registrados:


Cuando coloco la fecha del 2016 me envía la lista de todos los usuarios registrados:


Cuando coloco la fecha del 2017 me envía la lista de todos los usuarios registrados:


Entonces, cómo hago para que aparezcan únicamente los usuarios que se registraron en el año que se esté seleccionando?, les envío los códigos (La página en sí no será posible enviar puesto que ocupa usuario y contraseña para ingresar y no tengo permitido compartirlas).

Los códigos exceden el limite de caracteres por eso les dejo estos enlaces con ellos:

Código para generar la lista:
http://www.textsnip.com/liiaij

Código Fuente:
http://www.textsnip.com/znogdy

Saludos!!

MOD:Imágenes adaptadas a lo permitido en el foro.
#38
PHP / Mejorar el código de emails
12 Octubre 2016, 01:16 AM
Hola, estoy trabajando en un proyecto para registros; en este momento estoy en la parte de los emails de confirmación al momento en que un usuario se registra o está por registrarse. Les paso mi código:
<?php
 
include "config.php";
require 
'class.phpmailer.php';
 
 
 
    
$mail = new PHPMailer();
    
//Luego tenemos que iniciar la validación por SMTP:
    
$mail->IsSMTP();
    
$mail->SMTPAuth true;
    
$mail->Host $host// SMTP a utilizar. Por ej. smtp.elserver.com
    
$mail->Username $Username// Correo completo a utilizar
    
$mail->Password $password// Contraseña
    
$mail->Port $port// Puerto a utilizar
    
$mail->SMTPSecure $smtpSecure;
    
//Con estas pocas líneas iniciamos una conexión con el SMTP. Lo que ahora deberíamos hacer, es configurar el mensaje a enviar, el //From, etc.
    //$mail->From = "adan.sandez21@live.com.mx"; // Desde donde enviamos (Para mostrar)
    
$mail->FromName $fromName;
 
    
//Estas dos líneas, cumplirían la función de encabezado (En mail() usado de esta forma: "From: Nombre <correo@dominio.com>") de //correo.
    
$mail->AddAddress("adan.sandez21@gmail.com"); // Esta es la dirección a donde enviamos
    
$mail->IsHTML(true); // El correo se envía como HTML
    
$mail->Subject "Registro Semana Nacional de Investigación y Docencia en Matemáticas"// Este es el titulo del email.
    
$body "<strong> Hola recuerda que aun no completas tu registro, asegurate de enviar tu comprobante de pago para concluir el registro.</strong><br>"//cambio "un" por "aun"
    
$body .= "<strong>Folio</strong>:<br>";
    
$body .= "<strong>Datos Bancarios</strong><br>";
    
$body .= "<strong>Numero de cuenta</strong>:xxxxxxx<br>";
    
$body .= "<strong>Banco</strong>:xxxxxx <br>";
    
$mail->Body $body// Mensaje a enviar
    
$exito $mail->Send(); // Envía el correo.
 
    //También podríamos agregar simples verificaciones para saber si se envió:
    
if($exito){
        echo 
true;
        echo 
"Se envio";
    }else{
        echo 
$mail->ErrorInfo;
    }
?>


Lo que quisiera saber es si hay alguna forma de optimizarlo o mejorarlo?, algo que me haga falta o me esté fallando en el código?. Si funciona pero me han pedido mejorarlo, sinceramente no tengo idea que más hacerle, espero alguna sugerencia. Gracias de antemano !
#39
Java / Insertar registros en BD
10 Mayo 2016, 19:01 PM
Hola, buenas. Estoy trabajando con una base de datos específica para este trabajo, lo que he logrado hasta ahora es comunicarme a la base e imprimir lo que tenemos en esas tablas. Mi pregunta es: ¿Cómo crear ventanas gráficas para capturar nuevos datos?, osea, crear por ejemplo un botón de "Insertar" que permita al usuario insertar cualquiera de los siguientes registros: un maestro, una materia, un eje de desarrollo o una seriacion de materias?...el código es este:
Código (java) [Seleccionar]

package unison.lcc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Principal {
    public static void main(String[] args) {
        // TODO code application logic here
        ConectorBD conector1 = new ConectorBD();
        conector1.abrir();
        conector1.comunicar();
        conector1.cerrar();
    }

    private static class ConectorBD {
        Connection conexion=null;
        public ConectorBD() {
        }

        private void abrir() {
            try {
                System.out.println("Abriendo BD");
                conexion= DriverManager.getConnection(
                        "jdbc:mysql://148.225.83.3:3306/e5ingsoft2",
                        "e5ingsoft2", "7MLtw21");
                System.out.println("Coenxion exitosa:"+conexion);
            } catch (SQLException ex) {
                System.out.println("error de conexion"+ex.toString());
            }
        }

        private void leer() {
            System.out.println("Comunicando con la bd");
            String sql = "SELECT * FROM maestro;";
            if(this.conexion!=null){
                try {
                    //crear Sentencia
                    Statement sentencia = conexion.createStatement();
                    //ejecutar "query" en la bd
                    ResultSet resultado = sentencia.executeQuery( sql );
                    //imprimir resultados
                    ResultSetMetaData meta = resultado.getMetaData();
                    int n = meta.getColumnCount();
                    for(int i=1; i<=n; i++){
                        System.out.print("| "+ meta.getColumnName(i) + " |");
                    }
                    System.out.println("");
                    while( resultado.next() ){
                        System.out.print(resultado.getRow()+") ");
                        for(int i=1; i<=n; i++){
                            System.out.print(resultado.getObject(i) + " |");
                        }
                        System.out.println("");
//                        System.out.println(resultado.getRow()+") "+
//                                resultado.getObject(1) + " | " +
//                                resultado.getObject(2)
//                        );
                    }
                    System.out.println("");
                } catch (SQLException ex) {
                    System.out.println("Error en la lectura de bd:"+ex.toString());
                }
            }
        }
       
        private void comunicar(){
            this.insertar();
            this.leer();
        }

        private void cerrar() {
            System.out.println("cerrando bd");
            if(conexion!=null){
                try {
                    conexion.close();
                    System.out.println("Gracias por usar BD. Conexion cerrada!"+conexion);
                } catch (SQLException ex) {
                    System.out.println("No puedo cerrar BD");
                }
            }
        }

        private void insertar() {
            System.out.println("insertando en la bd");
            String sql = "INSERT INTO maestro values("+(int)(Math.random()*100000)+
                    ", 'Desconocido', 662123456, \"Desconocida\");";
            if(this.conexion!=null){
                try {
                    //crear Sentencia
                    Statement sentencia = conexion.createStatement();
                    //ejecutar "query" en la bd
                    int resultado = sentencia.executeUpdate( sql );
                    //imprimir resultados
                    System.out.println("insercion realizada");
                } catch (SQLException ex) {
                    System.out.println("Error en la lectura de bd:"+ex.toString());
                }
            }
        }
    }   
}


Alguna sugerencia??, gracias de antemano !!

Saludos.

MOD EDIT: Etiqueta GeSHi corregida.
#40
Java / Manejo de hilos
5 Mayo 2016, 03:38 AM
Hola, buenas. Estoy intentanto hacer una versión de la "Alfombra de Sierpinski":     
https://es.wikipedia.org/wiki/Alfombra_de_Sierpinski

El problema es que se me solicita que el programa maneje un hilo para cada cuadrado que se va a rellenar. Así, cuando se deban rellenar sub-cuadrados, se deben crear nuevos hilos.
Cuál es la manera de hacer eso??,  espero alguien pueda responder, dejo el programa aquí abajo.

https://mega.nz/#!aVhDkISI!oMxyyf_qaqi_3QE8pHrpdo8hnof1Wy8rX15g2Zbc6e8

Saludos !!
#41
Java / Saber cuántas veces se repiten letras
24 Abril 2016, 23:04 PM
Hola, buenas. Ando buscando la forma de saber cuántas letras del abecedario se repiten en cualquier archivo de texto que se lea en el programa. Ya hice la parte lectora del archivo, pero no se cómo contar las letras e imprimir el número de veces que se repite cada una.

Entonces, lo que tengo hasta ahora es esto:


*La idea es examinar el archivo (Hecho)
*Después Leerlo e imprimirlo (Hecho)
*Lo tercero es crear la frecuencia de letras, osea, cuántas veces sale "a", cuantas "b", etc. e imprimirlo en un JOptionPane o en una gráfica.(No Hecho)

Alguna sugerencia para llevar acabo la tercera parte??

Gracias de antemano !

Aquí el programa por si es necesario una revisión:
https://mega.nz/#!CJYVVRwI!MTb-vq_NBvxia7ZibDJoiE2YwmoVtPEOOEu4D_NxTsU
#42
Hola, buenas. Hace poco le ocurrió ese problema a mi pc, me dice:



Ya investigué y no parece ser algo tan complicado de arreglar, pero en todas las soluciones que observé debía insertar el disco del win XP, ahí el problema, esos discos ya no los encuentro por ninguna parte, hay alguna solución sin disco??, gracias de antemano.
#43
Java / Hacer válido el cambio de color
9 Abril 2016, 03:33 AM
Hola, buenas. Vengo a pedir ayuda con un problemita que no he podido resolver, estoy creando un típico programa para dibujar figuras en NetBeans, esa parte ya la he realizado, lo que busco es que se visualicen dependiendo del color que se seleccione aquí:


Ahora mismo el color con el que se dibujan son predeterminados por mi, alguna forma de hacer que el usuario lo elija mediante el menú de opciones que puse en la imagen de arriba?, gracias de antemano !


Les dejo el programa:
https://mega.nz/#!KJYh2aLI!UwGluZ37VCtlgIZ1HvSgEFaDPpwC80J7mu_ms4n2GW8

MOD EDIT: Imagen ajustada al tamaño aceptado del foro.
#44
Hola, buenas. Tengo un código que se basa en el algoritmo de bisección el cual encuentra una raíz de una función dada, en mi caso usé "x^3 + 2x^2 + x - 2"
pero quisiera saber cómo puedo hacer que el usuario elija qué tipo de función usar para la aproximación?, osea, que sean 4 las opciones:
Polinomial: f(x) = a0 + a1 x + a2 x2 + ... + an xn
Exponencial: f(x) = a e (k x + c) + b
Logaritmica: f(x) = a Ω(k x + c) + b Ω = log, ln
Trigonométrica: f(x) = a Ω(k x + c) + b Ω = sen, cos, etc

mi código es el siguiente, sencillo pero útil:

#include <iostream>
#include <cstdlib>
#include <cmath>
#include <iomanip>
//******************************************************************************
using namespace std;
void bisetzion(long double,long double,int);
long double f(long double);
void impresion(long double,long double,long double,long double,int);
long double Abs(long double);
//******************************************************************************
int main(){
   long double an,bn,pn,tol;
   int n;
   char resp;
   do{
      system("cls");
     
      cout<<"Programa que utiliza el proceso de bisecci\xA2n para aproximar la funci\xA2n \nx^3 + 2x^2 + x - 2\n\n";
     
      do{
         cout<<"introduzca la an: ";
         cin>>an;
         cout<<"introduzca la bn: ";
         cin>>bn;
      }while(f(an)*f(bn)>0);
      if(f(an) != 0 && f(bn) != 0){
         do{
            cout<<"Tolerancia(10^-n) n: ";
            cin>>n;
         }while(n<=0);
         bisetzion(an,bn,n);
      }else cout<<"La ra\xA1z es uno de los extremos"<<endl;
      cout<<"\xA8 \bDesea calcular de nuevo(s/n)\x3F";
      cin>>resp;
   }while(resp == 's' || resp == 'S');
   system("pause");
   return 0;
}
//******************************************************************************
void bisetzion(long double an,long double bn,int n){//función que realiza la bisección
   long double pn=0,anterior,error=1000;
   cout<<"n"<<"  "<<"an"<<"          "<<"bn"<<"          "<<"pn"<<"           "<<"f(an)"<<"        "<<"f(pn)"<<"         "<<"error"<<endl;
   for(int i=0;error>pow(10.0,-n);++i){
      anterior = pn;
      pn = (an+bn)/2;
      error = Abs((pn - anterior)/pn);
      impresion(an,bn,pn,anterior,i);
      f(an)*f(pn)<0 ?  : an = pn;
      f(bn)*f(pn)<0 ?  : bn = pn;
   }
}
//******************************************************************************
long double f(long double x){//función a aproximar
   long double Fx;
   Fx = pow(x,3) + 2*pow(x,2) + x -2;
   return Fx;
}
//******************************************************************************
void impresion(long double an,long double bn,long double pn,long double anterior,int i){//función para imprimir los valores
   long double error = Abs((pn - anterior)/pn);
   cout<<setiosflags(ios::left)<<setw(3)<<i+1<<setprecision(7)<<setw(12)<<an<<setw(12)<<bn<<setw(12)<<pn<<setprecision(6)<<setw(14)<<f(an)<<setw(14)<<f(pn);
   i == 0 ? cout<<" -"<<endl : cout<<error<<endl;
}
//******************************************************************************
long double Abs(long double numero){//función para valor absoluto
   if(numero < 0) return -numero;   
   else return numero; 
}
//******************************************************************************


Alguna sugerencia?, gracias de antemano.
#45
Java / Me aparece un error extraño en una clase
11 Febrero 2016, 06:57 AM
Hola, tengo un problema muy raro que no he podido solucionar. Estoy haciendo una estadística de semestre/promedio de alumnos de mi carrera pero me ha surgido un error extraño que no puedo resolver, esto me aparece al momento de ejecutar la clase Principal:

http://i.imgur.com/SnOqFGc.png

Me voy a la clase Impresor donde me marca este error:
http://i.imgur.com/fSZofVB.png

que igual, no se por qué de ese error @.@ alguien sabe cómo solucionarlo?

Saludos!...


Edito:

Ya lo resolví !, el problema era el double del promedio, dejo abierto el tema por si surge otro problema :3