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 - geshiro

#1
lo que busco es como rutear el trafico de tor a ciertas apps como hexchat , firefox y otras pero la cosa es que no quiero que divulge el la IP del ISP y en caso que no se cumpla me notifique que no estoy usando proxy o VPN pero que no divulge la IP , como podria hacer esto?

Código (bash) [Seleccionar]
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 10.11.0.xx -j ACCEPT #VPN traffic
iptables -A INPUT -s ip -j ACCEPT # CTF network
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 9050 -j ACCEPT
iptables # routing the traffic to certain application via port or the best to achieve it
iptables -A INPUT -j DROP    # or REJECT
service iptables save
service iptables restart
#2
bueno lo que necesito es  una ves que el usuario haya vendido el producto del carrito entonces cheque que si el total stock es <= a la cantidad minima enviemos una notificacion pero esa notificacion la vamos a guardar en la base de datos  solo que no se como hacerlo tengo mi if
Código (php) [Seleccionar]
if($this->sale->concretar_venta($this->session->carrito, $total, $cantidad_pagada, $cambio)){
                echo 1;
            }
            else{
                echo "Ocurrio un error al concretar la venta, por favor intentelo de nuevo";
            }

para validad que sea existosa la venta , pero como agrego si el stock total final sea <= a lo que min es ,


Código (php) [Seleccionar]
public function concretar_venta(){
        if($this->sale->checa_carrito_vacio($this->session->carrito)){
            $total = $this->input->post("total", TRUE);
            $cantidad_pagada = $this->input->post("cantidad_pagada", TRUE);
            $cambio = $cantidad_pagada - $total;
            if($this->sale->concretar_venta($this->session->carrito, $total, $cantidad_pagada, $cambio)){
                echo 1;
            }
            else{
                echo "Ocurrio un error al concretar la venta, por favor intentelo de nuevo";
            }
        }
        else{
           $this->json(array('error' => 'The cart is empty'));
        }
    }



el codigo de notificaciones lo que pasa que si las inserta solo que todos tienen que estar en lo minimo para poder ver si esta bien o mal como pudiera checar que si alguno de los productos no cumple ese producto solo envia la notificacion.

Código (php) [Seleccionar]
public function index()
{
$this->session->carrito = $this->sale->checar_existe_carrito();
$array = $this->sale->get_all_cart($this->session->carrito);
$product_id = array();
foreach ($array as $key => $value) {
$product_id[] = $value['id'];
}
//$this->json($product_id);
$this->notification->addNotification('low stock', $product_id, $this->session->log['id'], 'low stock');
$this->json($product_id);
$product = $this->products->get_product_id($product_id);
if ($product->stock <= 8) {
echo "wrong";
}else{
echo "good";
}

}
#3
lo que quiero hacer es que cuando llame mi vista deberia mostrarme la ultima venta pero no la realiza porque en la tabla storelte_order hay un campo que se autogenera en status 0 si no  se concreta pero deberia funcionarme el query con != 0 o <> 0 pero ninguno funciona alguna idea como solucionarlo?

Código (sql) [Seleccionar]
SELECT first_name,last_name,description,quantity,price,storelte_order.total,cash_tend,change_due,storelte_order.created_at
FROM storelte_order_detail
INNER JOIN storelte_products ON storelte_products.id = storelte_order_detail.product_id
INNER JOIN storelte_order ON storelte_order.id = storelte_order_detail.order_id
INNER JOIN storelte_users ON storelte_users.id = storelte_order.user_id
WHERE storelte_order.id = (SELECT max(storelte_order.id) FROM storelte_order) AND user_id = 1 AND storelte_order.status != 1


view
Código (sql) [Seleccionar]
CREATE
    ALGORITHM = UNDEFINED
    DEFINER = `root`@`localhost`
    SQL SECURITY DEFINER
VIEW `storelte`.`ticket` AS
    SELECT
        `storelte`.`storelte_users`.`first_name` AS `first_name`,
        `storelte`.`storelte_users`.`last_name` AS `last_name`,
        `storelte`.`storelte_products`.`description` AS `description`,
        `storelte`.`storelte_order_detail`.`quantity` AS `quantity`,
        `storelte`.`storelte_order_detail`.`price` AS `price`,
        `storelte`.`storelte_order`.`total` AS `total`,
        `storelte`.`storelte_order`.`cash_tend` AS `cash_tend`,
        `storelte`.`storelte_order`.`change_due` AS `change_due`,
        `storelte`.`storelte_order`.`created_at` AS `created_at`
    FROM
        (((`storelte`.`storelte_order_detail`
        JOIN `storelte`.`storelte_products` ON ((`storelte`.`storelte_products`.`id` = `storelte`.`storelte_order_detail`.`product_id`)))
        JOIN `storelte`.`storelte_order` ON ((`storelte`.`storelte_order`.`id` = `storelte`.`storelte_order_detail`.`order_id`)))
        JOIN `storelte`.`storelte_users` ON ((`storelte`.`storelte_users`.`id` = `storelte`.`storelte_order`.`user_id`)))
    WHERE
        ((`storelte`.`storelte_order`.`id` = (SELECT
                MAX(`storelte`.`storelte_order`.`id`)
            FROM
                `storelte`.`storelte_order`))
            AND (`storelte`.`storelte_order`.`user_id` = 1)
            AND (`storelte`.`storelte_order`.`status` <> 0))


#4
lo hace este script es que cuando cambio algo en la base de datos automaticamente se refleja en el sitio solo que cuando agrego un elemento a la base de datos cada ves tengo que recargar la pagina como pudiera hacer para solucionar esto? otra cosa en mi timestamp en la consola de google chrome parece asi http://localhost/storelte/notify/pusher?timestamp=1493076211  pending pero al agregar el nuevo elemento no cambia el timestamp porq no lo hace automatico tengo que recargar para verlo no se que estoy haciendo mal en el ajax ,
Código (javascript) [Seleccionar]
$(function(doc, win, $) {
    var has_focus = true;
    var notification = win.Notification || win.mozNotification || win.webkitNotification;
    var $badge = $("#notifications-badge");
    var $list = $("#notifications-list");
    var $button = $("#notifications-button");
    URL_GET_NOTIFICATION = BASE_URL + 'notify/pusher';
    URL_GET_NOTIFICATION_UPDATE = BASE_URL + 'notify/update';

    if ('undefined' === typeof notification) {
        console.log('Web notification not supported');
    } else {
        notification.requestPermission(function(permission) {});
    }

    function check_notifications(timestamp) {
        $.ajax({
            type: 'GET',
            url: URL_GET_NOTIFICATION,
            data: { timestamp : timestamp },
            dataType: 'json',
            async: true,
            success: function (data) {
                for (var i in data.notifications) {
                    notify(data.notifications[i].message, data.notifications[i].type, data.notifications[i].timestamp);
                }
                check_notifications(data.timestamp);
            }
        });
    }

     function notify(message, type, created_at) {
        var type_txt = 'info';
        var url = '#';
        var icon = 'info-circle';

        if (type == 0) {
            type_txt = 'success';
            icon = 'check';
        } else if (type == 1) {
            type_txt = 'info';
            icon = 'exclamation';
        } else if (type == 2) {
            type_txt = 'warning';
            icon = 'exclamation-triangle';
        } else if (type == 3 || type == 4) {
            type_txt = 'danger';
            icon = 'fire';
        }

        $badge.show();
        $badge.text(parseInt($badge.text()) + 1);

        $list.find(".item").eq(13).nextAll(".item").remove();
        var item = '<li class="item text-' + type_txt + '"><a href="' + url + '"><span class="text-' + type_txt + '">' +
            '<i class="fa fa-' + icon + ' fa-fw"></i> ' + message.substr(0, 22) + '</span>' +
            '<span class="pull-right text-muted small" data-time="' + created_at + '">X</span></a></li>' +
            '<li class="item divider"></li>';
        $list.prepend(item);

        $('.dropdown.open .dropdown-toggle').dropdown('toggle');

        return true;
    }

    $(win).on("blur", function () {
        has_focus = false;
    });

    $(win).on("focus", function () {
        has_focus = true;
    });

    $button.on("click", function () {
        $badge.fadeOut(300, function () {
            $badge.text(0);
        });
       
        $list.find("span[data-time]").each(function (index) {
            var $this = $(this);
            $this.text(moment.unix($this.data('time')).fromNow());
        });
    });

    check_notifications();
}(document, window, jQuery));

$('#notifications-button').on('click', function () {
    $.ajax({
        type: 'GET',
        url: 'http://localhost/storelte/notify/update',
        success: function(data){
        }
    });
});

#5
PHP / websocket ratchet
22 Abril 2017, 03:48 AM
lo que queiero hacer es como mandar los mensajes a la base de datos para poder mostrarlos en la vista usando ratchet websocket . mis websocket ya los genera pero desde otro php para generarlos por medio de un boton como prueba pero como pudiera hacerlos de manera dinamica para detectar el evento y mostrarlos ?

Código (php) [Seleccionar]

public function pusher(){
     $entryData = array(
         'category' => $this->input->post('category'),
         'title'    => $this->input->post('title'),
         'article'  => $this->input->post('article'),
         'timestamp'     => time()
     );

    //$this->notification->addNotification($entryData);
   
    // This is our new stuff
     
    $context = new ZMQContext();
    $socket = $context->getSocket(ZMQ::SOCKET_PUSH, 'my pusher');
    $socket->connect("tcp://localhost:5555");

    $socket->send(json_encode($entryData));
    print_r($entryData);

}


Código (javascript) [Seleccionar]

var sock = new ab.Session('ws://192.168.0.4:8080',
        function() {
            sock.subscribe('kittensCategory', function(topic, data) {
                $badge.show();
                $badge.text(parseInt($badge.text()) + 1);

                $list.find(".item").eq(13).nextAll(".item").remove();
                var item = '<li class="item text-warning"><a href="#"><span class="text-warning">' +
                    '<i class="fa fa-exclamation-triangle fa-fw"></i>'+data.title+' is low'+'</span>' +
                    '<span class="pull-right text-muted small" data-time="">'+data.timestamp+'</span></a></li>' +
                    '<li class="item divider"></li>';
                $list.prepend(item);
                $('.dropdown.open .dropdown-toggle').dropdown('toggle');
            });
        },
        function() {
            console.warn('WebSocket connection closed');
        }, {
            'skipSubprotocolCheck': true
        }
    );

#6
bueno tenia pensando usar entre  AMD FX-8320E / FD6300WMHKBOX FX-6300 6-Core  y RX 460 4gb ddr5  o EVGA GeForce GTX 960 4GB SuperSC ACX 2.0+ con una  ASRock 960GM/U3S3 FX Micro ATX AM3+o gigabyte GA-78LMT-USB3 Micro ATX AM3+ pero no se por cual decidirme
#7
el error es porque cuando trato de enviar mis datos al server me da error 500 internal error pero si recargo la pagina si me los subio a que se debe este error? otra cosa en la parte de   $
Código (jaavscript) [Seleccionar]
("#description").mask("(999) 999-9999"); no me quiere agarrar el mask pero si abro la consola en chrome y hago lo mismo si la agarra como puedo arreglar ambos errores?

controlador

Código (php) [Seleccionar]

public function addProduct(){
$descripcion = $this->input->post('description');
$cost_price =  $this->input->post('cost_price');
$selling_price = $this->input->post('selling_price');
$wprice = $this->input->post('wprice');
$stock = $this->input->post('stock');
$data_product = $this->item->addProduct($descripcion,$cost_price,$selling_price,$wprice,$stock);
$data = array(
'description' => $descripcion,
'cost_price' => $cost_price,
'selling_price' => $selling_price,
'wprice' => $wprice,
'stock' => $stock
);
$this->json($data_product);
}



model
Código (php) [Seleccionar]
public function addProduct($descripcion,$cost_price,$selling_price,$wprice,$stock){
$data = array(
'descripcion' => $descripcion,
'precio_compra' => $cost_price,
'precio_venta' => $selling_price,
'precio_mayoreo' => $wprice,
'existencia' => $stock
);

$query = $this->db->insert('storelte_articulos',$data);
return $query->result_array();
}



ajax

Código (javascript) [Seleccionar]
$('#add').on('click',function(){
       $("#description").mask("(999) 999-9999");
$("#new_product").validate();
BootstrapDialog.show({
           message: function(dialog) {
               var $message = $('<div></div>');
               var pageToLoad = dialog.getData('pageToLoad');
               $message.load(pageToLoad);
       
               return $message;
           },
           data: {
               'pageToLoad': URL_GET_VIEW_PRODUCT
           },
           closable: false,
           buttons:[{
               id: 'btn-ok',
               cssClass: 'btn-primary',
               icon: 'glyphicon glyphicon-send',
               label: ' Save',
            action: function (e) {
                   var description = $('#description').val();
                   var cost_price = $('#cost_price').val();
                   var selling_price = $('#selling_price').val();
                   var wprice = $('#wprice').val();
                   var stock = $('#stock').val();
            if($("#new_product").valid()){
                       $.ajax({
                           url: URL_GET_ADD_PRODUCT,
                           type: 'POST',
                           data: {description: description, cost_price: cost_price, selling_price: selling_price, wprice: wprice, stock: stock}
                       }).done(function (e) {
                           console.log(e);
                       });
                   }
            }
           },{
            id: 'btn-cancel',
            cssClass: 'btn-danger',
               icon: 'glyphicon glyphicon-remove',
            label: ' Cancel',
            action: function (e) {
                   e.close();
            }
           }]
       });
});
#8
lo que quiero es hacer que en cuanto mande la ruta de los archivos del usb que me encripte todo pero cuando quiero hacer ese paso me truena y dice que no existe la ruta espeficiada pero en el scan que hace si vienen los archivos como pudiera arreglarlo?

Código (python) [Seleccionar]

Searching usb...
letter: F:\
There were 1 drives added: set(['F']). Newly mounted drive letter is F:\

Traceback (most recent call last):
 File "C:\Users\Aaron\Desktop\new\script.py", line 80, in <module>
   encrypt_file(str(encrypt_files))
 File "C:\Users\Aaron\Desktop\new\script.py", line 25, in encrypt_file
   filesize = str(os.path.getsize(filename)).zfill(16)
 File "C:\Python27\lib\genericpath.py", line 57, in getsize
   return os.stat(filename).st_size
WindowsError: [Error 3] El sistema no puede encontrar la ruta especificada: "['Black_Hat_Python_Python_Programming_for_Hackers_and_Pentesters (1).pdf', 'CEH-Exam-Blueprint-v2.0.pdf', 'index.png', '\\xedndice.png', 'Learning Python, 5th Edition.pdf', 'kali-linux-2016.2-amd64.iso', 'solucionarioclculounavariable-140213124828-phpapp01-140925200731-phpapp02 (1).pdf', 'C\\xe1lculo de Una Variable - James Stewart - 7a Ed.pdf', 'Untitleddocument.docx', 'VirtualBox-5.1.8-111374-Win.exe', 'from_sqli_to_shell_i386.iso', 'script.py', 'Visit Islas Tasmania.docx', 'solucionariodechapraycanale-quintaedicion-150726233458-lva1-app6891.pdf', 'solucionarioclculounavariable-140213124828-phpapp01-140925200731-phpapp02.pdf']"



Código (python) [Seleccionar]

from ctypes import windll
from Crypto.PublicKey import RSA
from Crypto.Hash import SHA256
from Crypto import Random
import string
import time
import os, sys




def get_drives():
   drives = []
   bitmask = windll.kernel32.GetLogicalDrives()
   for letter in string.uppercase:
       if bitmask & 1:
        drives.append(letter)
       bitmask >>= 1
   return drives


def encrypt(filename):
chunksize = 64 * 1024
outFile = os.path.join(os.path.dirname(filename), "(encrypted)"+os.path.basename(filename))
filesize = str(os.path.getsize(filename)).zfill(16)
IV = ''

for i in range(16):
IV += chr(random.randint(0, 0xFF))

encryptor = AES.new(key, AES.MODE_CBC, IV)

with open(filename, "rb") as infile:
with open(outFile, "wb") as outfile:
outfile.write(filesize)
outfile.write(IV)

while True:
chunk = infile.read(chunksize)

if len(chunk) == 0:
break

elif len(chunk) % 16 !=0:
chunk += ' ' * (16 - (len(chunk) % 16))

outfile.write(encryptor.encrypt(chunk))


def list_files(path):
   files = []
   for name in os.listdir(path):
       if os.path.isfile(os.path.join(path, name)):
           files.append(name)
   return files



if __name__ == '__main__':
print 'Searching usb...'
while True:
before = set(get_drives())
time.sleep(5)
after = set(get_drives())
drives = after - before
delta = len(drives)
if (delta):
for drive in drives:
if os.system("cd " + drive + ":") == 0:
newly_mounted = '%c:\\'%(drive)
encrypt_files = list_files(newly_mounted)
print "letter: "+newly_mounted
print "fueron montados  %d USB agregada : %s. la letra es %s" % (delta, drives, newly_mounted)
for x in encrypt_files:
if os.path.basename(x).startswith("(encrypted)"):
print "%s is already encrypted" %str(x)
pass

else:
encrypt_file(str(encrypt_files))
print "encryptacion terminada %s" %str(x)
"""os.remove(x) """
else:
print "no hay ningun usb"



#9
Quiero recuperar mi JSON para mi controlador home porque quiero esos valores para mi menú basado en roles. Si hago esto con archivos separados  no funciona en  mi código. de view home Entonces, ¿qué es estoy haciendo mal con el? ¿Cómo se puede arreglar bien mostrando los valores correctos?


login controller:

Código (php) [Seleccionar]

<?php
defined
('BASEPATH') OR exit('No direct script access allowed');

class 
Login extends MY_Controller {
  public function 
__construct(){
    
parent::__construct();
  }

  public function 
index(){
    
$data['module'] = 'Login';
    
$this->load->view('login',$data);
  }

  public function 
getAccess(){
    if (
$this->session->userdata('logged_in') == TRUE){
      
redirect('home');
    }else{
      
$username $this->security->xss_clean($this->input->post('username'));
      
$password $this->security->xss_clean($this->input->post('password'));
      
$array $this->user->login($username,$password);
      if (
$array[0] == 0) {
        echo 
0;
      }else{
        
$data_session = array(
          
'id' => $array[0]['id'],
          
'name' => $array[0]['nombre'],
          
'last_name' => $array[0]['apellido'],
          
'type' => $array[0]['id_perfil'],
          
'logged_in' => TRUE 
        
);
        
$this->session->set_userdata('log',$data_session);
      }
    }
  } 

  public function 
logout(){
    
$this->session->sess_destroy();
    
redirect('login');
  }

  public function 
getModules($id_module){
        if(
$this->session->userdata('log')){
            
$data $this->session->userdata('log');
            
$menu = array();
            
$seccions $this->module->get_rows();
            foreach (
$seccions as $index => $sección){
               
$modules $this->module->query("SELECT CONCAT('".$sección['id']."',storelte_modulo.id) AS id,CONCAT('".base_url('assets/img/sidebar')."','/',storelte_modulo.icon) as icon, storelte_modulo.modulo AS value,storelte_modulo.seccion_id,CONCAT('".base_url()."',storelte_modulo.url) AS  url FROM storelte_modulo INNER JOIN storelte_modulo_perfil ON  storelte_modulo_perfil.modulo_id = storelte_modulo.id WHERE seccion_id = $sección[id] AND storelte_modulo_perfil.perfiles_id = $data[id] AND storelte_modulo_perfil.STATUS = 1");
                
$seccions[$index]['data']= $modules;
                if (!
count($seccions[$index]['data']))
                    unset(
$seccions[$index]);
            }
            foreach (
$seccions as $item)
                
array_push($menu,$item);
          
$this->data['fields'] = $menu;
          
$this->json($this->data);
          
$this->load->view('home',$this->data);
        }
    }
}



home controller:

Código (php) [Seleccionar]

  <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class 
Home extends MY_Controller {

  public function 
__construct(){
    
parent::__construct();
    
$this->isLogged();
  }

  public function 
index(){
    
$data $this->session->userdata('log');
    
$data['module']  = "Home";
    
$this->load->view('header',$data);
    
$this->load->view('home',$data);
  }

}



view home

Código (html4strict) [Seleccionar]

<section class="sidebar">
     <!-- sidebar menu: : style can be found in sidebar.less -->
     <ul class="sidebar-menu">
        <li class="treeview">
         <a href="#">
           <img src="<?= base_url().'/assets/img/sidebar/items.png'?>" alt="" class="menu-icon"> <span>Inventory</span>
           <i class="fa fa-angle-left pull-right"></i>
         </a>
         <ul class="treeview-menu">
           <li><a href="<?=base_url('inventory/product');?>"><i class="fa fa-circle-o text-aqua"></i> Product</a></li>
         </ul>
       </li>
#10
el problema que es cuando quiero validate en action: es  lo que hara el boton pero como pudiera hacer que cuando campos vacios no avanze y no se quite el modal y cuando si se vaya al $.ajax(); y  haga el spin si me pudiera ayudar como implementarlo seria bueno.... si me pudieran hechar la mano?

Código (html4strict) [Seleccionar]
<section class="content">
            <section class="col-lg-12 connectedSortable">
                <div class="box">
                    <div class="box-header">
                        <div class="box-title">Lista De Productos</div>
                    </div>
                    <div class="box-body">
                      <button class="btn btn-primary" id="add_item">New item</button>
                        <table id="example" class="table table-bordered table-striped">
                            <thead>
                                <tr>
                                    <th>Nombre del proveedor</th>
                                    <th>RFC</th>
                                    <th>Teléfono</th>
                                    <th>Correo electrónico</th>
                                    <th>Domicilio</th>
                                </tr>
                            </thead>
                        </table>
                    </div>
                </div>
            </section>
        </section>


Código (javascript) [Seleccionar]

  $(function(){
URL_GET_DATATABLE = BASE_URL+'inventory/provider/datatable';
$('#example').DataTable({
"lengthChange": false,
ajax: {
url: URL_GET_DATATABLE,
type: 'POST'
}
});

$('#add_item').on('click',function(){
BootstrapDialog.show({
message:  $("<form class='form-inline' id='providerForm'><div class='form-group'><label class='full_name'>Full name</label> <input type='text' class='_full_name form-control' name='full_name'></div><div class='form-group'><label class='phone' for='phone'>Phone</label> <input type='text' class='_phone form-control'></div><div class='form-group'><label class='email' for='email'>E-mail</label> <input type='text' class='_email form-control'></div><div class='form-group'><label class='rfc' for='email'>Rfc</label> <input type='text' class='_rfc form-control'></div><div class='form-group'><label class='address' for='address'>Address</label> <input type='text' class='_address form-control'></div>"),
closable: true,
            closeByBackdrop: false,
            closeByKeyboard: false,
buttons: [{
id: 'submit',
icon: 'glyphicon glyphicon-send',
                label: 'Send ajax request',
                cssClass: 'btn-primary',
                autospin: true,
                action: function (dialogRef) {
                dialogRef.enableButtons(false);
                    dialogRef.setClosable(false);
                }
}]
});
});
});

#11
bueno mi error es que me da  invalid argument supplied for foreach() y no me esta accediento bien al índice del arreglo, estoy usando codeigniter pero como pudiera arreglar ese error mi json del la función del controlador es
Código (javascript) [Seleccionar]
[{"id":"1","sección":"Inventario","data":[{"id":"11","icon":"http:\/\/localhost\/storeLTE\/assets\/img\/sidebar\/items.png","value":"Productos","seccion_id":"1","url":"http:\/\/localhost\/storeLTE\/inventario\/product"},{"id":"14","icon":"http:\/\/localhost\/storeLTE\/assets\/img\/sidebar\/employees.png","value":"Provedores","seccion_id":"1","url":"http:\/\/localhost\/storeLTE\/provedor\/provedor"}]},{"id":"2","sección":"Compras","data":[{"id":"22","icon":"http:\/\/localhost\/storeLTE\/assets\/img\/sidebar\/suppliers.png","value":"Compras","seccion_id":"2","url":"http:\/\/localhost\/storeLTE\/compras\/compras"}]}]

controller

Código (php-brief) [Seleccionar]


public function getModules($id_module){
    if($this->session->userdata('log')){
        $data = $this->session->userdata('log');
        $menu = array();
        $seccions = $this->module->get_rows();
        foreach ($seccions as $index => $sección){
            $modules = $this->module->query("SELECT CONCAT('".$sección['id']."',storelte_modulo.id) AS id,CONCAT('".base_url('assets/img/sidebar')."','/',storelte_modulo.icon) as icon, storelte_modulo.modulo AS value,storelte_modulo.seccion_id,CONCAT('".base_url()."',storelte_modulo.url) AS  url FROM storelte_modulo INNER JOIN storelte_modulo_perfil ON  storelte_modulo_perfil.modulo_id = storelte_modulo.id WHERE seccion_id = $sección[id] AND storelte_modulo_perfil.perfiles_id = $data[id] AND storelte_modulo_perfil.STATUS = 1");
            $seccions[$index]['data']= $modules;
            if (!count($seccions[$index]['data']))
                unset($seccions[$index]);
        }
        foreach ($seccions as $item)
            array_push($menu,$item);

        $this->json($menu);
    }
}


model

Código (php) [Seleccionar]

public function get_rows(){
        $this->db->select('id,sección');
        $this->db->from('storelte_seccion');
        return $this->db->get()->result_array();
    }

    public function query($query){
        return


Código (php) [Seleccionar]

<div class="row">
<h3 class="text-center">Welcome to storeLTE, click a module below to get started!</h3>
<div class="home_module_list">
    <div class="module_item">
        <?php foreach ($seccions as $session) { ?>
          <div class="module_item" title="<?= $session['value'];?>">
            <a href="<?= $session['url']; ?>"><img src="<?= $session['icon']; ?>"/></a>
            <a href="<?= $session['url']; ?>"><?= $session['value']?></a>
        </div>
        <?php ?>
    </div>
</div>
</div>
#12
bueno mi error es que me da  invalid argument supplied for foreach() y no me esta accediento bien al índice del arreglo, estoy usando codeigniter pero como pudiera arreglar ese error mi json del la función del controlador es
Código (javascript) [Seleccionar]
[{"id":"1","sección":"Inventario","data":[{"id":"11","icon":"http:\/\/localhost\/storeLTE\/assets\/img\/sidebar\/items.png","value":"Productos","seccion_id":"1","url":"http:\/\/localhost\/storeLTE\/inventario\/product"},{"id":"14","icon":"http:\/\/localhost\/storeLTE\/assets\/img\/sidebar\/employees.png","value":"Provedores","seccion_id":"1","url":"http:\/\/localhost\/storeLTE\/provedor\/provedor"}]},{"id":"2","sección":"Compras","data":[{"id":"22","icon":"http:\/\/localhost\/storeLTE\/assets\/img\/sidebar\/suppliers.png","value":"Compras","seccion_id":"2","url":"http:\/\/localhost\/storeLTE\/compras\/compras"}]}]

controller

Código (php-brief) [Seleccionar]


public function getModules($id_module){
    if($this->session->userdata('log')){
        $data = $this->session->userdata('log');
        $menu = array();
        $seccions = $this->module->get_rows();
        foreach ($seccions as $index => $sección){
            $modules = $this->module->query("SELECT CONCAT('".$sección['id']."',storelte_modulo.id) AS id,CONCAT('".base_url('assets/img/sidebar')."','/',storelte_modulo.icon) as icon, storelte_modulo.modulo AS value,storelte_modulo.seccion_id,CONCAT('".base_url()."',storelte_modulo.url) AS  url FROM storelte_modulo INNER JOIN storelte_modulo_perfil ON  storelte_modulo_perfil.modulo_id = storelte_modulo.id WHERE seccion_id = $sección[id] AND storelte_modulo_perfil.perfiles_id = $data[id] AND storelte_modulo_perfil.STATUS = 1");
            $seccions[$index]['data']= $modules;
            if (!count($seccions[$index]['data']))
                unset($seccions[$index]);
        }
        foreach ($seccions as $item)
            array_push($menu,$item);

        $this->json($menu);
    }
}


model

Código (php) [Seleccionar]

public function get_rows(){
        $this->db->select('id,sección');
        $this->db->from('storelte_seccion');
        return $this->db->get()->result_array();
    }

    public function query($query){
        return


Código (php) [Seleccionar]

<div class="row">
<h3 class="text-center">Welcome to storeLTE, click a module below to get started!</h3>
<div class="home_module_list">
    <div class="module_item">
        <?php foreach ($seccions as $session) { ?>
          <div class="module_item" title="<?= $session['value'];?>">
            <a href="<?= $session['url']; ?>"><img src="<?= $session['icon']; ?>"/></a>
            <a href="<?= $session['url']; ?>"><?= $session['value']?></a>
        </div>
        <?php ?>
    </div>
</div>
</div>
#13
Criptografía / que tipo de hash es este?
20 Julio 2016, 09:00 AM
que tipo de hash es este a158fe73b615aa898055165288635c3d

lo veo como md5+sha1 y como pudiera romper el seguridad
#14
Hacking / hacking y anonimato
20 Julio 2016, 01:32 AM
tengo una duda como ya sabemos al ejectuar un ataque sqli por medio de la url y despues pasarlo al sqlmap para  hacerlo mas efectivo, esto va dejar la ip de inicio y fin para que tanta probabilidad que cuentre la ip del atacante usando un vpn?
#15
como pudiera editar mi producto sin que me falle el query ocupo en ves que me muestre el id original de la tabla que sea por cualquier metodo de encriptacion md5,sha1,sh256 o sha512. pero problema esta el al momento de querer editarlo se va por no se actualizaron los datos como pudiera hacer el hash de ida y vuelta sin desencriptarlo? y que funcione bien

controller
Código (php) [Seleccionar]

case 'search':
$main = 0;
       $limit = 3;
       if (isset($_POST['page'])) {
        $page = $_POST['page'];
           $main = ($page - 1) * $limit;
       }
       $id = $_POST['id'];
$search = new product();
$__result= $search->searchProduct($id);
$__Result = count($__result);
$final_result = $search->searchProduct($id,$main,$limit);
echo json_encode($final_result)."*".$__Result;
break;

case 'update':
$id = $_POST['id'];
$editCode = $_POST['editCode'];
$editProduct = $_POST['editProduct'];
$editPrice = $_POST['editPrice'];
$editStock = $_POST['editStock'];
$update = new product();
if($update->update($id,$editCode,$editProduct,$editPrice,$editStock)){
$stock = $update->getProductStock($id);
if ($stock > 20) {
notification::removeNotifications($id);
}
echo 'sucess';

}else{
echo "No se Actualizo los datos";
}
break;


model

Código (php) [Seleccionar]

function update($id,$editCode,$editProduct,$editPrice,$editStock){
$sql="UPDATE product SET code = '{$editCode}',product='{$editProduct}',purchase_price={$editPrice},stock={$editStock} WHERE idproduct={$id}";
//echo $sql;
if($this->conexion->conexion->query($sql)){
return true;
}
else{
return false;
}
$this->conexion->cerrar();
}



Código (php) [Seleccionar]

function searchProduct($id,$main=false,$limit=false){
if($main !== false && $limit !== false){
$sql="SELECT md5(idproduct) AS id,code,product,purchase_price,stock,product.status FROM product WHERE code like '%".$id."%' or product like '%".$id."%' ORDER BY id ASC LIMIT $main,$limit";
}else{
$sql="SELECT md5(idproduct) AS id,code,product,purchase_price,stock,product.status FROM product  WHERE code like '%".$id."%' or product like '%".$id."%' ORDER BY id";
}
$this->conexion->conexion->set_charset('utf8');
$result=$this->conexion->conexion->query($sql);
$array = array();
while($record = $result->fetch_array(MYSQLI_NUM)){
$array[] = $record;
}
return $array;
echo $result;
$this->conexion->cerrar();
}
#16
como podria comparar mi id crifrado para poder editarlo sin que falla mi consulta, pero no ocupo desencriptarlo ya que lo estaria haciendo mal  ocuparia comprar el string crifrado por el mismo cifrado pero como lo pudiera hacer si lo paso por ajax

controller
Código (php-brief) [Seleccionar]

case 'update':
$id = $_POST['id'];
$editCode = $_POST['editCode'];
$editProduct = $_POST['editProduct'];
$editPrice = $_POST['editPrice'];
$editStock = $_POST['editStock'];
$update = new product();
if($update->update($id,$editCode,$editProduct,$editPrice,$editStock)){
$stock = $update->getProductStock($id);
if ($stock > 20) {
notification::removeNotifications($id);
}
echo 'sucess';

}else{
echo "No se Actualizo los datos";
}
break;


model
Código (php) [Seleccionar]

function update($id,$editCode,$editProduct,$editPrice,$editStock){
$sql="UPDATE product SET code = '{$editCode}',product='{$editProduct}',purchase_price={$editPrice},stock={$editStock} WHERE idproduct={$id}";
if($this->conexion->conexion->query($sql)){
return true;
}
else{
return display_errors();
}
$this->conexion->cerrar();
}

Código (php) [Seleccionar]

function searchProduct($id,$main=false,$limit=false){
if($main !== false && $limit !== false){
$sql="SELECT md5(idproduct),code,product,purchase_price,stock,product.status FROM product WHERE code like '%".$id."%' or product like '%".$id."%' ORDER BY idproduct ASC LIMIT $main,$limit";
}else{
$sql="SELECT md5(idproduct),code,product,purchase_price,stock,product.status FROM product  WHERE code like '%".$id."%' or product like '%".$id."%' ORDER BY idproduct";
}
$this->conexion->conexion->set_charset('utf8');
$result=$this->conexion->conexion->query($sql);
$array = array();
while($record = $result->fetch_array(MYSQLI_NUM)){
$array[] = $record;
}
return $array;
echo $result;
$this->conexion->cerrar();
}


AJAX
Código (javascript) [Seleccionar]

function searchProduct(id,page){
var page=Number(page);
$.ajax({
url:'../controller/product_controller.php',
type:'POST',
data:'id='+id+'&page='+page+'&boton=search'
}).done(function(resp){
var d=resp.split("*");
var Data = eval(d[0]);
if(Data.length === 0)
$('#info').html('<h4 style="color: red">Sorry there are no products available</h4>')
else
$('#info').html('');
html="<table class='table table-condensed table-hover table-striped'><thead><th>#</th><th>code</th><th>image</th><th>product</th><th>price</th><th>stock</th><th>status</th><th>option<th></thead><tbody>";
for(i=0;i<Data.length;i++){
status = (Data[i][5] == 1)  ? "<span class='label label-success'>active</span>":"<span class='label label-danger'>inactive</span>";
data=Data[i][0]+"*"+Data[i][1]+"*"+Data[i][2]+"*"+Data[i][3]+"*"+Data[i][4];
html+="<tr><td>"+(i+1)+"<td>"+Data[i][1]+"</td><td>image</td><td>"+Data[i][2]+"</td><td>"+Data[i][3]+"</td><td>"+Data[i][4]+"</td><td>"+status+"</td></td></td><td><button class='btn btn-warning btn-options' data-toggle='modal' data-target='#modalproduct' onclick='mostrar("+'"'+data+'"'+");'><span class='glyphicon glyphicon-pencil'></span></button><button class='btn btn-danger btn-options' onclick='Delete("+'"'+Data[i][0]+'"'+")'><span class='glyphicon glyphicon-trash'></span></button></td></tr>";
}
html+="</tbody></table>"
$("#list-product").html(html);
var totalrec = d[1];
var num_paginate = Math.ceil(totalrec/3);
var fieldSeach=$("#search").val();
paginate="<ul class='pagination'>";
if(page>1){
//paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+1+'"'+")'>&laquo;</a></li>";
paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+(page-1)+'"'+")'>&laquo;</a></li>";
}
else{
//paginate+="<li class='disabled'><a href='javascript:void(0)'>&laquo;</a></li>";
paginate+="<li class='disabled'><a href='javascript:void(0)'>&laquo;</a></li>";
}
limit = 10;
div = Math.ceil(limit / 2);
pageMain = (page > div) ? (page - div) : 1;
if (num_paginate > div){
pagRestantes = num_paginate - page;
pagFin = (pagRestantes > div) ? (page + div) : num_paginate;
}
else{
pagFin = num_paginate;
}
for(i=pageMain;i<=pagFin;i++){
if(i==page)
paginate+="<li class='active'><a href='javascript:void(0)'>"+i+"</a></li>";
else
paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+i+'"'+")'>"+i+"</a></li>";
}

if(page<num_paginate){
paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+(page+1)+'"'+")'>&raquo;</a></li>";
//paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+num_paginate+'"'+")'>&raquo;</a></li>";
}
else{
paginate+="<li class='disabled'><a href='javascript:void(0)'>&raquo;</a></li>";
//paginate+="<li class='disabled'><a href='javascript:void(0)'>&raquo;</a></li>";
}
paginate+="</ul>";
$("#paginador").html(paginate);

});
}
#17
al momento de querer cifrar el id que muestra es lo que trae la tabla de la base de datos pero no lo ocupo de esa manera si no cifrada pero no como mandarla ya que lo muestro por js y no con un simple echo md5(id);
controller
Código (php) [Seleccionar]

case 'search':
$main = 0;
       $limit = 3;
       if (isset($_POST['page'])) {
        $page = $_POST['page'];
           $main = ($page - 1) * $limit;
       }
       $id = $_POST['id'];
$search = new product();
$__result= $search->searchProduct($id);
$__Result = count($__result);
$final_result = $search->searchProduct($id,$main,$limit);
echo json_encode($final_result)."*".$__Result;
break;

case 'update':
$id = $_POST['id'];
$editCode = $_POST['editCode'];
$editProduct = $_POST['editProduct'];
$editPrice = $_POST['editPrice'];
$editStock = $_POST['editStock'];
$update = new product();
if($update->update($id,$editCode,$editProduct,$editPrice,$editStock)){
$stock = $update->getProductStock($id);
if ($stock > 20) {
notification::removeNotifications($id);
}
echo 'sucess';

}else{
echo "No se Actualizo los datos";
}
break;


model
Código (php) [Seleccionar]

function searchProduct($id,$main=false,$limit=false){
if($main !== false && $limit !== false){
$sql="SELECT idproduct,code,product,purchase_price,stock,product.status FROM product  WHERE code like '%".$id."%' or product like '%".$id."%' ORDER BY idproduct ASC LIMIT $main,$limit";
}else{
$sql="SELECT idproduct,code,product,purchase_price,stock,product.status FROM product  WHERE code like '%".$id."%' or product like '%".$id."%' ORDER BY idproduct";
}
$this->conexion->conexion->set_charset('utf8');
$result=$this->conexion->conexion->query($sql);
$array = array();
while($record = $result->fetch_array(MYSQLI_NUM)){
$array[] = $record;
}
return $array;
$this->conexion->cerrar();
}


ajax
Código (javascript) [Seleccionar]

function searchProduct(id,page){
var page=Number(page);
$.ajax({
url:'../controller/product_controller.php',
type:'POST',
data:'id='+id+'&page='+page+'&boton=search'
}).done(function(resp){
var d=resp.split("*");
var Data = eval(d[0]);
if(Data.length === 0)
$('#info').html('<h4 style="color: red">Sorry there are no products available</h4>')
else
$('#info').html('');
html="<table class='table table-condensed table-hover table-striped'><thead><th>#</th><th>code</th><th>image</th><th>product</th><th>price</th><th>stock</th><th>status</th><th>option<th></thead><tbody>";
for(i=0;i<Data.length;i++){
status = (Data[i][5] == 1)  ? "<span class='label label-success'>active</span>":"<span class='label label-danger'>inactive</span>";
data=Data[i][0]+"*"+Data[i][1]+"*"+Data[i][2]+"*"+Data[i][3]+"*"+Data[i][4];
html+="<tr><td>"+(i+1)+"<td>"+Data[i][1]+"</td><td>image</td><td>"+Data[i][2]+"</td><td>"+Data[i][3]+"</td><td>"+Data[i][4]+"</td><td>"+status+"</td></td></td><td><button class='btn btn-warning btn-options' data-toggle='modal' data-target='#modalproduct' onclick='mostrar("+'"'+data+'"'+");'><span class='glyphicon glyphicon-pencil'></span></button><button class='btn btn-danger btn-options' onclick='Delete("+'"'+Data[i][0]+'"'+")'><span class='glyphicon glyphicon-trash'></span></button></td></tr>";
}
html+="</tbody></table>"
$("#list-product").html(html);
var totalrec = d[1];
var num_paginate = Math.ceil(totalrec/3);
var fieldSeach=$("#search").val();
paginate="<ul class='pagination'>";
if(page>1){
//paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+1+'"'+")'>&laquo;</a></li>";
paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+(page-1)+'"'+")'>&laquo;</a></li>";
}
else{
//paginate+="<li class='disabled'><a href='javascript:void(0)'>&laquo;</a></li>";
paginate+="<li class='disabled'><a href='javascript:void(0)'>&laquo;</a></li>";
}
limit = 10;
div = Math.ceil(limit / 2);
pageMain = (page > div) ? (page - div) : 1;
if (num_paginate > div){
pagRestantes = num_paginate - page;
pagFin = (pagRestantes > div) ? (page + div) : num_paginate;
}
else{
pagFin = num_paginate;
}
for(i=pageMain;i<=pagFin;i++){
if(i==page)
paginate+="<li class='active'><a href='javascript:void(0)'>"+i+"</a></li>";
else
paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+i+'"'+")'>"+i+"</a></li>";
}

if(page<num_paginate){
paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+(page+1)+'"'+")'>&raquo;</a></li>";
//paginate+="<li><a href='javascript:void(0)' onclick='searchProduct("+'"'+fieldSeach+'","'+num_paginate+'"'+")'>&raquo;</a></li>";
}
else{
paginate+="<li class='disabled'><a href='javascript:void(0)'>&raquo;</a></li>";
//paginate+="<li class='disabled'><a href='javascript:void(0)'>&raquo;</a></li>";
}
paginate+="</ul>";
$("#paginador").html(paginate);

});
}

function mostrar(data){
var d=data.split("*");
console.log(d);
$("#id").val(d[0]);
$("#editCode").val(d[1]);
$("#editProduct").val(d[2]);
$("#editPrice").val(d[3]);
$("#editStock").val(d[4]);
}

#18
en mi funcion eleminar  tengo una validacion como esta if(inventario.cod == elim){ cual hize para borrar solo un elemento pero el problema que cuando intento borrar un elemento me borra todo los elementos del archivo y el de reporte no me muestra nada. no se que estoy haciendo mal


#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
FILE *file;
FILE *tmp;
struct inven{
  int cod;
  char descrip[30];
  int exist;
  int exist_min;
  int exist_max;
  float precio;
  int cod_provedor;
}inventario;

void crear();
void modificar();
void eliminar();
void reporte();
void menu();

void menu(){
int resp;
  do{

    printf("\n\t\t---------------------------------------------------");
    printf("\n\t\t\t      S T O R E L T E     ");
    printf("\n\t\t-------------------------------------------------\n\n\n\n");
    printf("\t\t\t\t [1] agregar producto  \n");
    printf("\t\t\t\t [2] modificar un producto     \n");
    printf("\t\t\t\t [3] eliminar             \n");
    printf("\t\t\t\t [4] reporte              \n");
    printf("\t\t\t\t [5] salir  ........        ");
    printf("\n\n\t\t\t\tSelecciona: ");
    resp=getchar();
    switch(resp){
      case '1': crear();
             break;

    case '2': modificar();
             break;

      case '3': eliminar();
            break;

      case '4': reporte();
            break;

      case '5' : exit(1);

      default:
         printf("opcion no validaa");
    }
  }
  while(resp!=6);
  getch();
}

int main(){
    menu();
    return 0;
}

void crear(){
   system("cls");
   int codigo = inventario.cod;
   char opcion = 's';
   if ((file=fopen("inventario.txt","a+"))==NULL)
      printf("\n\n\n\n\t\t< < < Error de apertura de archivo inventario.dat   > > >");
   else{
     while(opcion == 's'){
        printf("\n\n CODIGO: \t%d",codigo++);
        printf("\n\n PRODUCTO:\t ");
        scanf("%s",&inventario.descrip);
        printf("\n\n EXISTENCIA DEL PRODUCTO:\t ");
        scanf("%s", &inventario.exist);
        printf("\n\n PRECIO UNITARIO DEL PRODUCTO:\t ");
        scanf("%s",&inventario.precio);
        fwrite(&inventario, sizeof(inventario), 1, file);
        printf("\n\n\n\t\t DESEAS CAPTURAR OTRO PRODUCTO [s/n] : ");
          opcion = getchar();
        getch();
        }
    }
    fclose(file);
}

void modificar(){
      system("cls");
      int opc,i=0;
      char elim[6];
      printf("\nINGRESE EL CODIGO DEL PRODUCTO A MODIFICAR: ");
      scanf("%s",&elim);
      file = fopen("inventario.dat","r+b");   

        if(!file)
         printf("\n Error de apertura del archivo inventario.dat\n"); 
      else{
         while (((fread(&inventario, sizeof(inventario), 1, file))!=0)&&i!=1){
            //if(!strcmp(inventario.cod,elim)){       
            if(inventario.cod!=elim){
                printf("DESCRIPCION        : %s\n",inventario.descrip);
                printf("EXISTENCIA     : %s\n",inventario.exist);
                printf("PRECIO UNITARIO     :$ %s\n",inventario.precio);

               printf ("\nQUE DESEA MODIFICAR: ");
               printf ("\n\t\t\t1.-DESCRIPCION\n");
               printf("\t\t\t2.-EXISTENCIA\n");
               printf ("\t\t\t3.-PRECIO UNITARIO\n");
               printf("\t\t\t4.-SALIR\n");
               printf("\t\t\tDIGITA TU OPCION :");
               scanf("%d",&opc);
               switch (opc!=4){
                case 1:
                  printf ("\nINGRESA LA NUEVA DESCRIPCION: ");
                  scanf("%s",&inventario.descrip);
                  break;
                case 2:
                  printf ("\nINGRESA LA NUEVA EXISTENCIA ");
                  scanf("%s",&inventario.exist);
                  break;
                case 3:
                  printf ("\nINGRESA EL NUEVO PRECIO UNITARIO ");
                  scanf("%s",&inventario.precio);
                  break;
               }
             fseek(file,sizeof(inventario),SEEK_CUR);
             fwrite(&inventario,sizeof(inventario), 1, file);
             i=1;
             fclose(file);
            }
         }

      }
}

void eliminar(){
    system("cls");
    char elim[10];
    printf("\nINGRESE EL CODIGO DEL PRODUCTO PARA ELIMINAR: ");
    scanf("%s",&elim);
    file=fopen("inventario.dat","r+b");
    tmp=fopen("inventario1.dat","wb");
    if(!file)
        printf("\n Error de apuertura del archivo inventario.dat\n");
    else{
        while(((fread(&inventario, sizeof(inventario), 1, file))!=0)){
            if(inventario.cod == elim){
                //fseek(tmp,sizeof(inventario),SEEK_END);
                //fseek(tmp,sizeof(inventario),SEEK_CUR);
                fwrite(&inventario,sizeof(inventario), 1, tmp);
                fclose(tmp);
                tmp=fopen("inventario1.dat","r+b");
                printf ("\n\n\n\n\n\n\n\n\n\n\n                   EL PRODUCTO SE HA ELIMINADO CORRECTAMENTE \n");
                printf ("\n                          OPRIMA CUALQUIER TECLA PARA CONTINUAR");
                getch();
            }
        }
        fclose(file);
        fclose(tmp);
        system("del inventario.dat");
        system("ren inventario1.dat inventario.dat");
        }
    }

void reporte (){
system("cls");
int i;
FILE *invent; 
invent = fopen("inventario.dat", "r");   
if(invent == NULL)
     {
        printf("\nNo existe archivo"); 
     }
       fread(&inventario, sizeof(struct inven), 20, invent);
                             printf("------------------------------------------------------------------\n");
                            printf("CODIGO   DESCRIPCION\t\tEXISTENCIA\tPRECIO UNITARIO  \n");
                       printf("------------------------------------------------------------------\n");
while(!feof(invent)){
      printf("  %s      %s\t\t   %s\t\t      %s \n",inventario.cod,inventario.descrip,inventario.exist,inventario.precio);
       fread(&inventario, sizeof(struct inven), 20, invent);
       }
     fclose(invent);
    getch();
}
#19
GNU/Linux / debian server ftp
24 Junio 2016, 05:33 AM
para empezar tengo /home/public_html pero al agregar un usuario tengo que crear dicha carpta public_html en cada usuario que creo como pudo hacer para que esa carpeta sea compartida en cada usuario que cree y ellos puedan subir archivos en dicha carpeta otra cosa public_html contiene todos los archivos de php y phpmyadmin para que funcione ya que cambie la ruta de /var/www/html to /home/public_html, pero como pudiera hacer para el usuario solo vea la carpeta en blanco sin todo los archivos como los hosting. para terminar como pudiera hacer un demonio para correr php y mysql cada ves que prenda la pc.
#20
como puedo darle permisio de un archivo pero que solamente pueda ser modificado por los usuarios del un dicho grupo

intente chown www-data usuario1:grupo_2 archivo
pero no puedo modificarl dicho archivo ni con el que cree el archivo como pudiera hacerlo
#21
PHP / php tickets
7 Junio 2016, 05:01 AM
como pudiera empezar hacer los tickets con php y jquery, ya no tengo una idea clara como hacerlo se como hacer los pdfs pero tickets nope
#22
como puedo hacr que en mi funcion recursiva pase a mi variable str3 todo el valor de la funcion recursiva

Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;
char str1[20],str2[20],str3[20];
void myStrcat(char [],char []);

void myStrcat(char str1[],char str2[]){
int c,d;
c = 0;

   while(str1[c] != '\0') {
      c++; 
   }

   d = 0;

   while(str2[d] != '\0'){
      str1[c] = str2[d];
      d++;
      c++;
   }

   str1[c] = '\0';
}


int main(){
cout << "Enter first string: " << endl;
cin >> str1;
cout << "Enter secound string: " << endl;
cin >> str2;
myStrcat(str1,str2);
cout << "Result is " << str1 << endl;
}
#23
PHP / notacion JSON error
16 Mayo 2016, 04:49 AM
tengo una duda cuando me regresa la consulta mi notacion json me da asi
Código (javascript) [Seleccionar]
[{"product":"TEST_1","best_selling_product":"305"},{"product":"IPHONE 4S","best_selling_product":"108"}]

pero la notacion deberia ser
Código (javascript) [Seleccionar]
  [{"product":"TEST_1","best_selling_product":305},{"product":"IPHONE 4S","best_selling_product":108}]

Código (php) [Seleccionar]

  function best_selling_product(){
$sql = "SELECT product,SUM(sale_detail.amount) AS best_selling_product FROM sale_detail INNER JOIN product ON sale_detail.idproduct = product.idproduct GROUP BY sale_detail.idproduct ORDER BY SUM(sale_detail.amount) DESC LIMIT 0,5";
$result = $this->conexion->conexion->query($sql);
$array = array();
while($record = $result->fetch_array(MYSQLI_ASSOC)){
$array[] = $record;
}
return $array;
$this->conexion->cerrar();
}
#24
PHP / crear ticket de compra
6 Mayo 2016, 23:39 PM
tengo una duda como puedo empezar a crear un sistema de tickets de compra despues de efectuar la compra entonces un archivo llamado ticket.php  sera enviado a una impresoara para que sea impreso directo pero no se como hacerla.. si tienen algun codigo de ejemplo o una pagina que explique como hacerlo sera bueno ..
#25
ya prove usando print_r(variable) y me da vacio, pero ya no se de donde viene el error y lo me lo marca en esta variable
Código (php) [Seleccionar]
$amountArray[$idproduct] += $amount;, como pudiera solucionarlo
Código (php) [Seleccionar]

function saveAllSaleDetails($idsale, $sale) {
$this->conexion->startTransaction();
$amountArray = [];
try {
foreach ($sale as $detail):
$idproduct = $detail['id'];
$amount = $detail['amount'];
$price = $detail['price'];
$subtotal = $detail['subtotal'];
$iduser = 1;
$this->saveSaleDetail($idsale, $idproduct, $amount, $price, $subtotal, $iduser);
$amountArray[$idproduct] += $amount;
$stock = $this->product->getProductStock($idproduct);
$stock = $stock[0][0] - $amountArray[$idproduct];

if ($stock <= 20) {
$product = $this->product->getProductById($idproduct);
$message = $product[0][1]." stock is bellow 20.";
notification::add($message, $idproduct, 'warning', 'product.php');
}
endforeach;

$this->conexion->commit();
$this->conexion->cerrar();
return true;

} catch (Exception $e) {
$this->conexion->rollback();
$this->conexion->cerrar();
var_dump($e->getMessage());
return false;
}

}
#26
como puedo hacer para que no me de error con esta logica if stock = 0 then status update table set colum = 0           

Código (sql) [Seleccionar]

    DELIMITER $$

USE `store`$$

DROP TRIGGER /*!50032 IF EXISTS */ `updateStatus`$$

CREATE
    /*!50017 DEFINER = 'root'@'localhost' */
    TRIGGER `updateStatus` AFTER UPDATE ON `product`
    FOR EACH ROW BEGIN
SELECT stock,CASE WHEN stock = 0 THEN UPDATE product SET STATUS = 0;
    END;
$$

DELIMITER ;
#27
PHP / falla al momento de agregar marca
10 Abril 2016, 19:05 PM
al momento de querer agregar un producto ya bien junto con la marca si lo hace si en esta linea lo cambio por el id que es la marca en formato numerico
Código (php-brief) [Seleccionar]
$brand =  $result->getBrandById($_POST['brand']); solo que se ya como pasarle la instancia para que lo agrege de forma dinamica ya que ahorita esta statico por el error la consulta esta bien pero la variable de $brand digo que tmb esta bien asi que no se de que parte este mal



controller product.php
Código (php) [Seleccionar]

case 'add_product':
$result = new brand();
$code    = trim(stripslashes(htmlspecialchars($_POST['code'])));
$product = trim(stripslashes(htmlspecialchars($_POST['product'])));
$brand =  $result->getBrandById($_POST['brand']);
$price   = trim(stripslashes(htmlspecialchars($_POST['price'])));
$stock   = trim(stripslashes(htmlspecialchars($_POST['stock'])));
$newProduct = new product();
if($newProduct->add($code,$product,$brand,$price,$stock)){
echo "success";
}
else{
echo "No se registro";
}
break;



model brand.php
Código (php) [Seleccionar]

function getBrandById($id){
$sql = "SELECT idbrand,brand FROM brand WHERE idbrand = {$id}";
$result = $this->conexion->conexion->query($sql);
$array = array();
while($record = $result->fetch_array(MYSQL_NUM)){
//$a = $record;
//var_dump($a);
$array[] = $record;
}
return $array;
$this->conexion->cerrar();
}
}
#28
Como descontar cantidad de stock en tabla de product desde  sale_detail


tabla product
id
product
cantidad

tabla sale_detail
id
id_sale
id_product
cantidad
#29
que he hecho mal que no me deje agregar en la parte de la variable $brand me tira on boolean y como pudiera resolverlo

Código (php) [Seleccionar]

case 'add_product':
$result = new brand();
$newProduct = new product();
$code    = trim(stripslashes(htmlspecialchars($_POST['code'])));
$product = trim(stripslashes(htmlspecialchars($_POST['product'])));
$price   = trim(stripslashes(htmlspecialchars($_POST['price'])));
$stock   = trim(stripslashes(htmlspecialchars($_POST['stock'])));
$brand =  $result->getBrandById($_POST['brand']);
if($newProduct->add($code,$product,$brand,$price,$stock)){
echo "success";
}
else{
echo "No se registro";
}
break;





Código (php) [Seleccionar]

function getBrandById($id){
$sql = "SELECT idbrand,code_,brand FROM brand where idbrand={$id}";
$result = $this->conexion->conexion->query($sql);
$array = array();
while($record = $result->fetch_array(MYSQL_NUM)){
$array[] = $record;
}
return $array;
$this->conexion->cerrar();
}
#30
Nivel Web / sql injeccion login
5 Abril 2016, 00:35 AM
como pudiera encontrar las vulnerabilidades y distintos tipos de comandos como 'or 1 = 1 -- #

si la consulta fuera esta   

code=php-brief]   SELECT * FROM users where username = '$variable' and password = '$variable
'


al igual como pudiera borrar una tabla de la base de datos si mis consultas son estas

Código (php) [Seleccionar]

  INSERT INTO product (price,stock,code,product) VALUES('$price','$stock','$code','$product')
#31
como puedo el valor dela arreglo Data[6] ya que en la tabla donde lo tengo me da 1 como ese uno lo cambio por otra cosa ya sea un label que diga activo o inactivo  otra esa fila no tiene id y no puedo ponerlo

Código (javascript) [Seleccionar]

   html+="<tr><td>"+(i+1)+"</td><td>"+Data[i][1]+"</td><td>"+Data[i][2]+"</td><td>"+Data[i][3]+"</td><td>"+Data[i][4]+"</td><td>"+Data[i][5]+"</td><td>"+Data[i][6]+"</td><td><button class='btn btn-warning btn-options' data-toggle='modal' data-target='#modalproduct' onclick='mostrar("+'"'+data+'"'+");'><span class='glyphicon glyphicon-pencil'></span></button><button class='btn btn-danger btn-options' id='confirm' onclick='Delete("+'"'+Data[i][0]+'"'+")'><span class='glyphicon glyphicon-trash'></span></button></td></tr>";
#32
en el modulo de compras la primera compra si efectuar bien pero al momento de querer hacer una segunda compra me se va por el condicional del else y da error despues me fijo en la base de datos y la tabla sale_details el lo marca como 0 pero si lo cambio a 1 ya puedo volver a hacer otra compra como pudiera reparar eso  es en la parte de generar el ultimo id de  compra   
Código (php) [Seleccionar]
  $recordLastSale = $sale->getLastSale();




Código (php) [Seleccionar]

   
  $sale = new Sale();
          if(count($_SESSION['detalle'])>0){
            $sale->saveSale();
            $recordLastSale = $sale->getLastSale();
            $resultLastSale = $recordLastSale->fetch_object();
            $idsale = $resultLastSale->last;
            foreach ($_SESSION['detalle'] as $detail):
                $idproduct = $detail['idproduct'];
                $amount = $detail['amount'] ;
                $price = $detail['price'];
                $subtotal = $detail['subtotal'];
                if($sale->saveSaleDetail($idsale,$idproduct,$amount,$price,$subtotal)){
                  $_SESSION['detalle'][] = $detail;
                  echo "success";
                }else{
                  echo "something went wrong";
              }
              endforeach;
          }




Código (php) [Seleccionar]

function saveSale(){
$sql = "INSERT INTO sales(dates) values(NOW())";
$result = $this->conexion->conexion->query($sql);
return  $result;
$this->conexion->conectar();
}

function getLastSale(){
$sql = "SELECT LAST_INSERT_ID() AS last";
$result = $this->conexion->conexion->query($sql);
return $result;
$this->conexion->conectar();
}

function saveSaleDetail($idsale,$idproduct,$amount,$price,$subtotal){
$sql = "INSERT INTO sale_detail(idsale,idproduct,amount,price,subtotal) VALUES('$idsale','$idproduct','$amount','$price','$subtotal')";
$result = $this->conexion->conexion->query($sql);
return $result;
$this->conexion->conectar();
}
#33
PHP / fatal error on boolean
19 Marzo 2016, 03:43 AM
Fatal error: Call to a member function fetch_object() on boolean in C:\xampp\htdocs\store\controllers\sales.php on line 35


Código (php) [Seleccionar]

case 'save':
          $sale = new Sale();
          if(count($_SESSION['detalle'])>0){
            $sale->saveSale();
            $recordLastSale = $sale->getLastSale();
            $resultLastSale = $recordLastSale->fetch_object();
            $idsale = $resultLastSale->last;
            foreach ($_SESSION['detalle'] as $detail):
                $idproduct = $detail['idsale_detail'];
                $amount = $detail['amount'] ;
                $price = $detail['price'];
                $subtotal = $detail['subtotal'];
                if($sale->saveSaleDetail($idsale,$idproduct,$amount,$price,$subtotal)){
                  echo "success";
                }else{
                  echo "something when wrong";
                }
              endforeach;
              $_SESSION['detalle'] = array(); 
          }else{
              echo "something when wrong";
          }
       break;
#34
el problema empieza cuando agrego el select se hace demasiado grande de pantalla a pantalla y no se queda en el mismo tamaño que le di estoy usando bootstrap
Código (html4strict) [Seleccionar]

<div class="row frm-down">
            <div class="form-group">
                <div class="col-xs-4">
                    <div>
                        <select class='form-control select_product' id='select_product' name='select_product'>
                            <option value="0">Select one product</option>
                            <?php foreach ($row as $rows) { ?>
                                <option value="<?php echo $rows['idproduct']?>"><?php echo $rows['product']?></option>
                           <?php ?>
                        </select>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <div class="col-xs-3 frm-price">
                    <input type="text" class="form-control" id="txt_amount" name="txt_amount" onkeyup="validacion('txt_amount');" placeholder="amount" maxlength="5">
                </div>
            </div>
            <div class="col-lg-2">
                <div>
                    <button id="btn-add-product" class="btn btn-success btn-add-product" onclick="btn_add_product();">Add</button>
                </div>
            </div>
        </div>
#35
PHP / Error al llamar fetchObject on boolean
24 Enero 2016, 06:35 AM
me pudieran hechar la mano ya mande el error por json para saber, imprimi el error y nada no me da que es alguien me puediera ayudar con el error

Código (php) [Seleccionar]

<?php
require_once(
'../models/sales.php');
require_once('../models/product.php');
$boton=$_POST['boton'];
switch ($boton) {
case 'add_sale':
$objProducto = new product();
if (isset($_POST['producto_id']) && $_POST['producto_id']!='' && isset($_POST['cantidad']) && $_POST['cantidad']!='') {
$cantidad $_POST['cantidad'];
$producto_id $_POST['producto_id'];

$resultado_producto $objProducto->getProductByid($producto_id);
$producto $resultado_producto->fetchObject();
$descripcion $producto->descripcion;
$precio $producto->precio;

$subtotal $cantidad $precio;

$_SESSION['detalle'][$producto_id] = array('id'=>$producto_id'producto'=>$descripcion'cantidad'=>$cantidad'precio'=>$precio'subtotal'=>$subtotal);
}else{
echo 'error';
}
break;
}
?>

#36
PHP / php variable indefinida
22 Enero 2016, 00:48 AM
hola buenas tardes en mi proyecto instale una libreria para hacer pdfs con php pero al momento de querer declarar la variable me dice variable indefinida

Código (php) [Seleccionar]

<?php
require(
'../fpdf/fpdf.php');
class PDF extends FPDF{
private $conexion;
public function __construct(){
require('conexion.php');
$this->conexion = new conexion();
$this->conexion->conectar();
}
}

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial'''10);
$pdf->Image('../assests/img/tienda.gif' 10 ,810 13,'GIF');
$pdf->Cell(1810''0);
$pdf->Cell(15010'Store "Aron Imperial"'0);
$pdf->SetFont('Arial'''9);
$pdf->Cell(5010'Hoy: '.date('d-m-Y').''0);
$pdf->Ln(15);
$pdf->SetFont('Arial''B'11);
$pdf->Cell(708''0);
$pdf->Cell(1008'List product'0);
$pdf->Ln(23);
$pdf->SetFont('Arial''B',8);
$pdf->Cell(158'Code'0);
$pdf->Cell(508'Product'0);
$pdf->Cell(258'Price'0);
$pdf->Cell(258'Stock'0);
$pdf->Ln(8);
$pdf->SetFont('Arial','',8);
$record $product->query("SELECT * FROM product");
$pdf->Output();
?>



los errores


Notice: Undefined variable: product in C:\xampp\htdocs\store\fpdf\list_product.php on line 32

Fatal error: Call to a member function query() on null in C:\xampp\htdocs\store\fpdf\list_product.php on line 32
#37
Seguridad / nuevo en seguridad
14 Enero 2016, 03:48 AM
como entrarme en seguridad informatica uso kali linux y virtuales de win 7
#38
cuando tenia mis tablas separadas si me agarra va bien pero al cambiarla por tablas relacionadas foreigns key  , ya no me muestra mi tabla de mis produtos

Código (php) [Seleccionar]
function searchProduct($id,$main=false,$limit=false){
if($main !== false && $limit !== false){
$sql="SELECT * FROM product WHERE code like '%".$id."%' or product like '%".$id."%' ORDER BY idproduct ASC LIMIT $main,$limit";
}else{
$sql="SELECT * FROM product WHERE code like '%".$id."%' or product like '%".$id."%' ORDER BY idproduct";
}
echo $sql;
$this->conexion->conexion->set_charset('utf8');
$result=$this->conexion->conexion->query($sql);
$array = array();
while($record = $result->fetch_array(MYSQL_NUM)){
$array[] = $record;
}
return $array;
$this->conexion->cerrar();
}

mis tablas son estas
Código (sql) [Seleccionar]

CREATE TABLE IF NOT EXISTS `product` (
  `idproduct` int(11) NOT NULL,
  `code` varchar(15) NOT NULL,
  `product` varchar(50) NOT NULL,
  `price` decimal(9,2) NOT NULL,
  `stock` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `product`
--

INSERT INTO `product` (`idproduct`, `code`, `product`, `price`, `stock`) VALUES
(1, 'MG01', 'IPHONE 4S', '5000.00', 6),
(2, 'TCL01', 'IMAC', '5000.00', 6),
(3, 'ILK059', 'SAMSUNG', '5000.00', 6),
(4, '4520', 'HAWEI', '5000.00', 6),
(5, 'A081', 'SNOWBOARD', '5000.00', 6),
(6, 'MSD01', 'SKYBOARD', '5000.00', 6),
(7, 'AUR01', 'SADDS', '5000.00', 6),
(8, 'SA-205', 'CCD', '5000.00', 6),
(9, 'KB-1830', 'USB', '5000.00', 6),
(10, 'MGa01', 'MOVIES', '5000.00', 6),
(11, 'PAS48', 'KNM', '5000.00', 6),
(12, 'OE86Z', 'PJAGDS', '5000.00', 6),
(13, 'HVMHFV', 'ASSAD', '5000.00', 6),
(14, 'AFDD', 'CXVVXC', '5000.00', 6),
(15, 'DASFSDFD', 'XCXCV', '5000.00', 6);

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `purchase`
--

CREATE TABLE IF NOT EXISTS `purchase` (
  `idpurchase` int(11) NOT NULL,
  `user_iduser` int(11) NOT NULL,
  `user_typeuser_idtypeuser` int(11) NOT NULL,
  `product_idproduct` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcado de datos para la tabla `purchase`
--

INSERT INTO `purchase` (`idpurchase`, `user_iduser`, `user_typeuser_idtypeuser`, `product_idproduct`) VALUES
(1, 1, 1, 10),
(2, 2, 2, 10);

ADD CONSTRAINT `fk_purchase_product1` FOREIGN KEY (`product_idproduct`) REFERENCES `product` (`idproduct`) ON DELETE NO ACTION ON UPDATE NO ACTION,
#39
PHP / ayuda multi ususario
2 Diciembre 2015, 03:07 AM
como puediera hacer un multi usario como me estructura que tengo necesito hacer un login de multi usario para poder hacer otra cosa pero me pudiera ayudar hacer una basica ??

archivo user
Código (php) [Seleccionar]

<?php

require_once('../Models/user.php');


$boton=$_POST['boton'];

switch ($boton) {
case 'cerrar':
session_start();
session_destroy();
break;
case 'login':
$username $_POST['username'];
$password $_POST['password'];

$ins = new user();
$array=$ins->identification($username,$password);
if ($array[0]==0
{
echo '0';
}
else
{
session_start();
$_SESSION['login']='YES';
$_SESSION['name']=$array[1];
}
break;
case 'show_product':
$instancia = new product();
echo $instancia->show_product();
break;

   case 'delete_product':
$code   $_POST['code'];
$delete = new product();
if($delete->del($code)){
echo "success";
}
else{
echo "there is something wrong";
}
break;
}
?>




usario_model.php
Código (php) [Seleccionar]

<?php 
class 
user
{
private $conexion;
public function __construct()
{
require_once('conexion.php');
$this->conexion= new conexion();
$this->conexion->conectar();
}

function identification($username,$password){
$pass=md5(sha1($password));
$sql="SELECT * FROM users WHERE username ='$username' && password ='$pass'";
$record $this->conexion->conexion->query($sql);
if ($record->num_rows 0) {
$row=$record->fetch_array();
}
else{
$row[0]=0;
}
return $row;
$this->conexion->cerrar();
}
}
?>

#40
como puedo hacer mi codigo hacerlo dinamico  , como lo hago mediante un solo for cada ves que le doy click se vayan agregando

Código (html4strict) [Seleccionar]

<html>
<head>
<title>form</title>
</head>
<body>
<table>
<thead>
<tr>
<th>nombre:</th>
<th>cantidad:</th>
<th>precio:</th>
</tr>
<tr>
<th><input type="text" id="name" placeholder="name"/></th>
<th><input type="text" id="quantity" placeholder="quantity"/></th>
<th><input type="text" id="price" placeholder="price"/></th>
<th><input type="button" id="btn" value="add"/></th>
</tr>
</thead>
<tbody id="data_table">
</tbody>
</table>
<script type="text/javascript">
window.onload = function(){
byId('btn').onclick = function(){
var data = {
name: byId('name').value,
quantity: byId('quantity').value,
price: byId('price').value
};
for(i=0;i<byTag(document,'input').length;i++){
document.getElementById("data_table").innerHTML += "<tr><td>"+data['name']+"</td><td>"+data['quantity']+"</td><td>"+data['price']+"</td></tr>";
}
console.log(arguments);
}
}
</script>
</body>
</html>
#41
PHP / ayuda parte eliminar
21 Octubre 2015, 23:23 PM
alguien me puede ayudar es que cuando quiero eliminar primero los paso al ajax y del ajax al controlador pero en el controlador tengo una condicion si se hace que siga haciendolo y si no no pero en el php tengo lo que es eliminar y todo va bien porque me manda el mensaje pero al momento de eliminar solo me muestra el mensaje de la validacion pero no lo borra solo me muestra el mensaje pero como lo arreglo esa parte D:

Código (javascript) [Seleccionar]

function del(id){
  $.ajax({
    url:'../Controllers/actions.php',
    type:'POST',
    data:'code='+id+'&boton=delete_product'
  }).done(function(ans){
    alert(ans);
  });
 
}



Código (php) [Seleccionar]

case 'delete_product':
$code   = $_POST['code'];
$delete = new product();
if($delete->delete($code)){
echo "success";
}
else{
echo "there is something wrong";
}
break;


Código (php) [Seleccionar]

function delete($code){
$sql = "DELETE FROM product WHERE id_product='$code'";
if($this->conexion->conexion->query($sql)){
return true;
}
else{
return false;
}
$this->conexion->cerrar();
}

function show_product(){
$sql = "SELECT * FROM product";
$record = $this->conexion->conexion->query($sql);
$item =0;

if(!$this->conexion->conexion->query($sql)){
printf("Errormessage: %s\n", $this->conexion->conexion->error);
}
if($record->num_rows>0){
while($show = $record->fetch_array(MYSQLI_ASSOC)){
$item += 1;
echo '<tr>
<td>'.$item.'</td>
<td>'.$show["code"].'</td>
<td>'.$show["product"].'</td>
<td>'.$show["price"].'</td>
<td>'.$show["stock"].'</td>
<td><button class="btn btn-danger" onclick="del('.$show["code"].');"><span class="glyphicon glyphicon-trash"></span></button></td>
</tr>';
}
//this is for counting number of page

}
else{
echo '<tr><td colspan="7">no hay registros</td></tr>';
}
}

#42
Seguridad / pentesting
13 Octubre 2015, 05:15 AM
que temas puedo empezar aprender para hacer pentesting de manera inalambrica ya sea montando un servidor virtual o cosas mas enfocadas a la realidad se un poco como hacer los .exe inyectadonles payload para cuando los abran ya tengo el control de ellos como un tipo baypass tengo  kali linux
#43
GNU/Linux / como reprar el grub de windows 7
10 Octubre 2015, 01:26 AM
mi primir O.S era windows 7 pero despues instale kali linux la particion fue un exito pero al momento de yo querer elegir cual o.s empzar  arranca directo con kali como pudo solucionar el GRUB de windows 7 para elegir el sistema que quiera
#44
como puedo implementar mi funcion que tengo de jquery de un dato externo a mi php que esta en otro dado externo con onclick mi funcion es del ajax delete(id) y delete($code) del php
Código (html4strict) [Seleccionar]

<?php 
  
require_once('../Models/product.php');
  
$product = new product();
  
session_start();
  if (isset(
$_SESSION['login']) && $_SESSION['login']=='YES'
  {
?>

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
   <title>Products</title>

   <link rel="stylesheet" href="../Resources/css/bootstrap.min.css">
   <link rel="stylesheet" href="../Resources/css/main.css">

</head>

<body>
   <!--Barra de Navegacion-->
<nav class="navbar navbar-default frm-nav">
       <div class="navbar-header">
           <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
               <span class="sr-only">Cambiar Navegacion</span>
               <span class="icon-bar"></span>
               <span class="icon-bar"></span>
               <span class="icon-bar"></span>
           </button>
           <a href="#" class="navbar-brand">Sales</a>
       </div>
       <ul class="nav navbar-nav navbar-right">
           <li class="dropdrown">
            <a href="javascript:void(0)" onclick="" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-user"></span> <?php echo $_SESSION['name'];?><span class="caret"></span></a>
           <ul class="dropdown-menu" role="menu">  
               <li><a href="javascript:void(0)" onclick="settings();"><span class="glyphicon glyphicon-cog"></span> Settings</a></li>
               <li><a href="javascript:void(0)" onclick="edit();"><span class="glyphicon glyphicon-edit"></span> Edit</a></li>
               <li><a href="javascript:void(0)" onclick="change();
                   "><span class="glyphicon glyphicon-repeat"></span> Change your password</a></li>
               <li class="divider"></li>
               <li><a href="javascript:void(0)" onclick="cerrar();"><span class="glyphicon glyphicon-off"> Sign out</span></a></li>
           </ul>
       </ul>  
       <ul class="nav navbar-nav navbar-right">
       <li class="dropdown">
          <a href="javascript:void(0)" onclick="" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-flag"></span> Reports<span class="caret"></span></a>
         <ul class="dropdown-menu" role="menu">
           <li><a href=""><span class="glyphicon glyphicon-list"></span> Items</a></li>
           <li><a href="#"><span class="glyphicon glyphicon-list"></span> Parents list</a></li>
         </ul>
       </li>
     </ul>
     <ul class="nav navbar-nav navbar-right">
       <li><a href="javascript:void(0)" onclick=""><span class="glyphicon glyphicon-home"></span> home</a></li>
       <li><a href="javascript:void(0)" id="low_stock" onclick=""><span class="glyphicon glyphicon-alert"></span> slow stock <span id="notif" class="badge">0</span></a></li>
     </ul>
</nav>  
<div class="col-md-3">
   <ul class="nav nav-pills nav-stacked">
       <li class="active"><a href="javascript:void(0)" onclick="home();"><span class="glyphicon glyphicon-home"></span> home</a></li>
       <li><a href="javascript:void(0)" onclick="product();"><span class=" glyphicon glyphicon-bed"></span> products</a></li>
       <li><a href="javascript:void(0)" onclick="sales();"><span class="glyphicon glyphicon-credit-card"></span> Sales</a></li>
      <li><a href="javascript:void(0)" id="msg" onclick="users();"><span class="glyphicon glyphicon-user"></span> Users <span id="notif" class="badge" onclick="push_up();">0</span></a></li>
   </ul>
</div>
   <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModallabel" aria-hidden="true">
                <div class="modal-dialog">
                  <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">Registro</h4>
                   </div>
           <div class="modal-body">
               <form class="form-horizontal" id="formCliente">
                   <div class="form-group">
                       <label for="fecha" class="control-label col-xs-5">date: </label>
                       <div class="col-xs-4">
                            <input type="text" class="form-control" value="<?php echo date('y-m-d'); ?>" disabled="disabled"/>
                       </div>
                   </div>
                    <div class="form-group">
                         <label for="code" class="control-label col-xs-5">code:</label>
                         <div class="col-xs-2 frm-code">
                              <input type="text" id="code" name="code" class="form-control" onkeyup="validacion('code');" aria-describedby="inputSuccess2Status">
                              <span class="help-block"></span>
                        </div>
                  </div>
                   <div class="form-group">
                         <label for="product" class="control-label col-xs-5">Product:</label>
                         <div class="col-xs-4 frm-product">
                              <select class="form-control" id="product" name="product" onchange="validacion('product');">
                                       <option value="reset_product">Select an option</option>
                                       <option>usb 8gb</option>
                                       <option>usb 16gb  Kingston</option>
                                       <option>usb 32gb  Kingston</option>
                                       <option>usb 64gb  Kingston</option>
                                       <option>usb 128gb Kingston</option>
                                       <option>SD 8gb</option>
                                       <option>SD 16gb</option>
                                       <option>SD 32GB</option>
                                       <option>SD 64gb</option>
                                       <option>SD 128gb</option>
                                       <option>GO PRO HERO</option>
                                       <option>GO PRO BLACK EDITION</option>
                                       <option>GO PRO SILVER EDITION</option>
                                       <option>GO PRO 2 HERO</option>
                                       <option>GO PRO 2 HERO BLACK EDITION</option>
                                       <option>GO PRO 2 HERO SILVER EDITION</option>
                                       <option>GO PRO 3 HERO</option>
                                       <option>GO PRO 3 HERO</option>
                                       <option>GO PRO 3 HERO BLACK EDITION</option>
                                       <option>GO PRO 3 HERO SILVER EDITION</option>
                                       <option>Snorkel</option>
                                       <option>Aletas</option>
                                       <option>Tanque  24lb</option>
                              </select>
                        </div>
                  </div>
                    <div class="form-group">
                         <label for="price" class="control-label col-xs-5">Price:</label>
                         <div class="col-xs-3 frm-price">
                              <input type="text" class="form-control"  id="price" name="price" onkeyup="validacion('price');">
                              <span class="help-block"></span>
                        </div>
                  </div>
                    <div class="form-group">
                         <label for="stock" class="control-label col-xs-5">Stock: </label>
                         <div class="col-xs-4">
                              <select class="form-control" id="stock" name="stock" onchange="validacion('stock')";>
                                       <option value="rest_stock">Select an option</option>
                                       <option>1</option>
                                       <option>2</option>
                                       <option>3</option>
                                       <option>5</option>
                                       <option>6</option>
                                       <option>7</option>
                                       <option>8</option>
                                       <option>9</option>
                                       <option>10</option>      
                              </select>
                        </div>
                  </div>
               </form>
           </div>
           <div class="form-group">
                 <div class="alert alert-success text-center" style="display:none;" id="success">
                       <strong>Felicidades: </strong>Su registro ha sido guardado
                 </div>
                 <div class="alert alert-danger text-center" style="display:none;" id="error">
                       <strong>Alert: </strong>you must to complete all fields
                 </div>
           </div>
           <div class="modal-footer">
               <button type="button" class="btn btn-default" data-dismiss="modal">close</button>
               <button type="button" class="btn btn-success" onclick="add_product();" id="add"><span class="glyphicon glyphicon-plus"></span> Add</button>
           </div>                
       </div>
   </div>
</div>
<div class="container">
 <div class="tab-content nav col-md-8 frm-grid">
   <h4>Products</h4>
     <div class="form-group col-xs-3 frm-search">
         <div class="form-group has-feedback">
               <input type="text" class="form-control" id="inputValidation" placeholder="Search"/>
               <span class="glyphicon glyphicon-search form-control-feedback"></span>
         </div>
   </div>
   <button class="btn btn-success frm-add" data-toggle="modal" data-target="#myModal"><span class="glyphicon glyphicon-plus"></span> Add products</button>
   <table class="table table-hover table-resposive" id="return_product">
     <thead>
         <tr>
           <th>Item</th>
           <th>code</th>
           <th>Description</th>
           <th>Price</th>
           <th>Stock</th>
           <th>Actions</th>
         </tr>
     </thead>  
     <tbody id="records">
            <?php
                  $product
->show_product();
             
?>

     </tbody>
   </table>
   <div id="pagination"></div>
 </div>
</div>
   <script src="../Resources/js/jquery-1.11.2.js"></script>
   <script src="../Resources/js/bootstrap.min.js"></script>
   <script src="../Resources/js/actions.js"></script>
   <script src="../Resources/js/validacion.js"></script>
   <script src="../Resources/js/ajax.js"></script>
   <script>
      function cerrar()
       {
       $.ajax({
           url:'../Controllers/actions.php',
           type:'POST',
           data:"boton=cerrar"
       }).done(function(resp){
           location.href = '../Views/'
       });
}

function add_product(){
  var code    = $('#code').val();
  var product = $('#product').val();
  var price   = $('#price').val();
  var stock   = $('#stock').val();
  var valCheck = verificar();
    if(valCheck == true){
     $.ajax({
             url: '../Controllers/actions.php',
             type: 'POST',
             data: 'code='+code+'&product='+product+'&price='+price+'&stock='+stock+'&boton=add_product'
     }).done(function(ans){
     if(ans == 'success'){
             $('#code').val("");
             $('#product').val('reset_product');
             $('#price').val("");
             $('#stock').val('rest_stock');
             $('#success').show().delay(2000).fadeOut();

     }else{
             alert(ans);
       }
     })
   }
   else {
    }
}

function delete(id){
 $.ajax({
   url:'../Controllers/product.php',
   type:'POST',
   data:'code='+id+'&boton=delete'
 }).done(function(ans){
   alert(ans);
 });
 
}


$(document).ready(function(){
 $('#add').click(function(){
    $.ajax({
             url: '../Controllers/actions.php',
             type: 'POST',
             data: 'boton=show_product'
     }).done(function(data){
$('#records').html(data);            
     })
 });
});

   </script>
</body>
</html>

<?php
 
  
}
  else
  {
    
header("location: ./");
  }
 
?>






Código (php-brief) [Seleccionar]

<?php
class 
product{
private $conexion;
public function __construct(){
require_once('conexion.php');
$this->conexion = new conexion();
$this->conexion->conectar();
}

function add($price,$stock,$code,$product){
$sql1 ="INSERT INTO product (price,stock,code,product) VALUES('$price','$stock','$code','$product')";
if($this->conexion->conexion->query($sql1)){
return true;
}
else{
return false;
}
$this->conexion->cerrar();
}

function delete($code){
$sql "DELETE FROM product WHERE id_product='$code'";
if($this->conexion->conexion->query($sql)){
return true;
}
else{
return false;
}
$this->conexion->cerrar();
}
 
 function show_product(){
$sql "SELECT * FROM product";
$record $this->conexion->conexion->query($sql);
$item =0;
 
if(!$this->conexion->conexion->query($sql)){
printf("Errormessage: %s\n"$this->conexion->conexion->error);
}
if($record->num_rows>0){
while($show $record->fetch_array(MYSQLI_ASSOC)){
$item += 1;
echo '<tr>
<td>'
.$item.'</td>
<td>'
.$show["code"].'</td>
<td>'
.$show["product"].'</td>
<td>'
.$show["price"].'</td>
<td>'
.$show["stock"].'</td>
<td><button class="btn btn-danger" onclick="delete();"><span class="glyphicon glyphicon-trash"></span></button></td>
 </tr>'
;
}
//this is for counting number of page

}
else{
echo '<tr><td colspan="7">no hay registros</td></tr>';
}
}
}
?>

#45
al momento de presionar el boton no me mande ni el mensaje ni me borra y como puediera solucionarla ya que el del esta en otro archivo diferente o como lo hago mandar llamar


Código (javascript) [Seleccionar]

function edit(){
  $(document).ready(function(){
  $('#del').click(function(){
    var question = confirm("Ola");
    if(question == true){
      $.ajax({
        type: 'POST',
        url: '../Controllers/actions.php',
        data: 'code='+code+'&boton=delete_product'
        success: function(data){
          $('#records').html(data);
          return false;
        }
     })
      return false;
      }else{
            return false;
      }
    }
  });

}



Código (php) [Seleccionar]

function show_product(){
$sql = "SELECT * FROM product";
$record = $this->conexion->conexion->query($sql);
$item =0;

if(!$this->conexion->conexion->query($sql)){
printf("Errormessage: %s\n", $this->conexion->conexion->error);
}
if($record->num_rows>0){
while($show = $record->fetch_array(MYSQLI_ASSOC)){
$item += 1;
echo '<tr id="htmltxt">
<td>'.$item.'</td>
<td>'.$show["code"].'</td>
<td>'.$show["product"].'</td>
<td>'.$show["price"].'</td>
<td>'.$show["stock"].'</td>
<td><button class="btn btn-warning frm-action" onclick="edit('.$show['id_product'].');" id="edit"><span class="glyphicon glyphicon-edit"><span<button><button class="btn btn-danger frm-action" id="del" onclick="delete('.$show['id_product'].');"><span class="glyphicon glyphicon-trash"><span<button></td>
</tr>';
}
//this is for counting number of page

}
else{
echo '<tr><td colspan="7">no hay registros</td></tr>';
}
}