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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 ... 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [31] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 ... 210
301  Programación / Bases de Datos / MySQL - Grant y Revoke dejaron de funcionar. en: 20 Marzo 2014, 17:52 pm
No puedo dar ni quitar permisos a ningún user en mi base de datos.

He comprobado los permisos de root, y están intactos.

¿Por dónde puedo empezar a mirar?
302  Programación / Desarrollo Web / Re: Llamar un procedimiento almacenado PL desde PHP. en: 20 Marzo 2014, 17:51 pm
Al final he portado todo lo que tenía en PL a PHP.

Desgraciadamente, me surgió un nuevo problema con la base de datos. Voy a abrir un topic al respecto.
303  Foros Generales / Sugerencias y dudas sobre el Foro / Re: sugiero captcha para crear usuario y tema en: 20 Marzo 2014, 14:19 pm
Yo no sé leer captchas Q.Q
304  Programación / Desarrollo Web / Re: Llamar un procedimiento almacenado PL desde PHP. en: 20 Marzo 2014, 00:55 am
Nada, lo mismo con comillas simples que comillas dobles. No hace nada y sigue devolviendo el mismo error.

Nota: En las demás consultas que no son llamadas (SELECT, INSERT, UPDATE y DELETE) uso comilla simple y funciona y también estoy metiendo parámetros.

Tiene pinta de que hay algún error de sintaxis en la cadena que se manda finalmente al servidor.

Curiosamente, si hago var_dump de $x me devuelve un valor tal que:
Código:
'CALL BUY_STOCK(:good, :trader, :ammount)'

Si hago un var_dump de un código similar hecho con MySQLI, devuelve:
Código:
'CALL BUY_STOCK(1,1,10)'
(que son los valores de las variables a las que hago Bind).

Si la operación la hago de la siguiente forma:

Código
  1. $x = $db->prepare('CALL BUY_STOCK(?,?,?)');
  2. $x->bindParam(1, $good, PDO::PARAM_INT);
  3. $x->bindParam(2, $id, PDO::PARAM_INT);
  4. $x->bindParam(3, $ammount, PDO::PARAM_INT);
  5.  

Lo que me devuelve var_dump es:
Código:
'CALL BUY_STOCK(?,?,?)'

Desgraciadamente, en todos estos casos, no funciona.

¿Qué puede estar mal o quedándose en el tintero?
305  Programación / Desarrollo Web / Re: Llamar un procedimiento almacenado PL desde PHP. en: 20 Marzo 2014, 00:01 am
Olvidé mencionar que probé a utilizar como usuario root en el PHP para ver si era cosa de permisos. Y me devolvía el mismo error...

De todas formas, voy a probar a ver si tira poniendo el permiso en específico para los procedimientos almacenados...

Teniendo en cuenta que tengo 2 procedimientos que usan unas 2-3 funciones cada uno... ¿tendría que dar permisos de esta manera individual para cada función/procedimiento)?

--

EDIT: He probado, sigue sin funcionar dando los permisos específicos.
306  Foros Generales / Foro Libre / Re: 4chan Risk - Partida en: 19 Marzo 2014, 16:58 pm
Uso todas las fuerzas para contrarrestar el ataque, y si sobran, avanzo hacia el norte de los territorios de 0xDani.
307  Programación / Desarrollo Web / Llamar un procedimiento almacenado PL desde PHP. en: 19 Marzo 2014, 16:57 pm
Lenguajes:
PHP, PL/SQL
Problema:
No consigo que se ejecute ningún procedimiento PL/SQL almacenado desde mi script PHP.
Códigos:

Tablas:
Código
  1. /*GOODS TABLE, WILL CONTAIN ALL GOODS*/
  2. CREATE TABLE GOODS(
  3. ID INT(3) AUTO_INCREMENT,
  4. NAME CHAR(20) UNIQUE,
  5. IMGFILE CHAR(20),
  6. L_PRICE INT(4),
  7. S_PRICE INT(4),
  8. H_PRICE INT(4),
  9. C_PRICE INT(4),
  10. PRIMARY KEY(ID));
  11.  
  12. /*TRADERS TABLE, WILL CONTAIN ALL USERS AND THEIR DATA*/
  13. CREATE TABLE TRADERS(
  14. ID INT(3) AUTO_INCREMENT,
  15. USERNAME CHAR(20) NOT NULL,
  16. PASSWORD CHAR(20) NOT NULL,
  17. MAIL CHAR(40) NOT NULL,
  18. CREDITS CHAR(20) NOT NULL,
  19. PRIMARY KEY(ID));
  20.  
  21. /*STOCKS TABLE, WILL CONTAIN EACH USER'S (TRADER) STOCK*/
  22. CREATE TABLE STOCKS(
  23. GOOD_ID INT(3),
  24. TRADER_ID INT(3),
  25. AMMOUNT INT(10),
  26. AVG_BUY INT(4),
  27. FOREIGN KEY(GOOD_ID)
  28. REFERENCES GOODS(ID)
  29. ON DELETE CASCADE,
  30. FOREIGN KEY(TRADER_ID)
  31. REFERENCES TRADERS(ID)
  32. ON DELETE CASCADE);

Procedimiento Almacenado a llamar:
Código
  1. /*THIS PROCEDURE ALLOWS THE TRADERS TO BUY STOCKS*/
  2. CREATE PROCEDURE BUY_STOCK(P_GOOD INT,P_TRADER INT,P_AMMOUNT INT)
  3. BEGIN
  4. DECLARE V_PRICE, V_COST INT;
  5. SELECT C_PRICE INTO V_PRICE
  6. FROM GOODS
  7. WHERE ID = P_GOOD;
  8.  
  9. SET V_COST = V_PRICE*P_AMMOUNT;
  10.  
  11. IF HAS_CREDITS(P_TRADER,V_COST) THEN
  12. IF HAS_STOCK(P_GOOD,P_TRADER) THEN
  13. UPDATE STOCKS
  14. SET AMMOUNT = AMMOUNT + P_AMMOUNT
  15. WHERE GOOD_ID = P_GOOD
  16. AND TRADER_ID = P_TRADER;
  17. UPDATE STOCKS
  18. SET AVG_BUY = ((AVG_BUY*(AMMOUNT-P_AMMOUNT))+(V_PRICE*P_AMMOUNT))/AMMOUNT
  19. WHERE GOOD_ID = P_GOOD
  20. AND TRADER_ID = P_TRADER;
  21. ELSE
  22. INSERT INTO STOCKS
  23. VALUES(P_GOOD,P_TRADER,P_AMMOUNT,V_PRICE);
  24. END IF;
  25. UPDATE TRADERS
  26. SET CREDITS = CREDITS - V_COST
  27. WHERE ID = P_TRADER;
  28. END IF;
  29. END;

Código PHP que trata de llamar al procedimiento almacenado:
Código
  1. <?php
  2. session_name('trademaster');
  3.  
  4. if($_POST['transaction'] = "Buy")
  5. {
  6.  
  7. $good = $_POST['goodid'];
  8. $id = $_SESSION['id'];
  9. $ammount = $_SESSION['ammount'];
  10. $db = new PDO("mysql:host=localhost;dbname=trademaster", 'trader', '********');
  11.  
  12. $x = $db->prepare('CALL BUY_STOCK(:good, :trader, :ammount)');
  13.  
  14. $x->bindValue(':good', $good, PDO::PARAM_INT);
  15. $x->bindValue(':trader', $id, PDO::PARAM_INT);
  16. $x->bindValue(':ammount', $ammount, PDO::PARAM_INT);
  17.  
  18. $x->execute();
  19.  
  20. unset($db);
  21.  
  22. header("location:stocks.php");
  23. exit();
  24. }
  25. ?>

Error:
Código:
PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1370 execute command denied to user 'trader'@'localhost' for routine 'trademaster.BUY_STOCK'

Observaciones:
El usuario 'trader'@'localhost' que interactúa con la base de datos tiene los permisos de USAGE, SELECT, INSERT, UPDATE, DELETE y EXECUTE sobre todas las tablas de la base de datos (trademaster.*).

Queries hacia la base de datos con SELECT, INSERT y UPDATE funcionan.

El procedimiento almacenado funciona correctamente, ya lo he probado localmente desde una consola MySQL.

La password del objeto PDO la quité por razones evidentes.

Los valores POST y SESSION se recogen adecuadamente, lo he comprobado.
308  Foros Generales / Foro Libre / Re: 4chan Risk - Partida en: 18 Marzo 2014, 22:09 pm
{daryo.....} - {2880} - {Territorios: 25}
{ABDERRAMAH} - {0245} - {Territorios: 10}
{crazykenny} - {7377} - {Territorios: 15}
{0xdani....} - {9175} - {Territorios: 10}
{engelx....} - {6808} - {Territorios: 15}
{@drvy.....} - {5024} - {Territorios: 10}
{Saberuneko} - {1473} - {Territorios: 5}


--

Estado diplomático actual:
daryo~Saberuneko - Pacto de no agresión:
· Saberuneko no toca Sudamérica.
· daryo no toca Australia.

@drvy~ABDERRAMAH - Pacto de no agresión:
· @drvy no toca la península arábiga.
· ABDERRAMAH no toca África.
· ABDERRAMAH puede invadir Egipto.

ABDERRAMAH~Saberuneko - Pacto de protección:
Ambos mantendrán una defensa mutua y recíproca ante las amenazas.

engelx~daryo - Pacto de no agresión:
engelx no pasa a México
daryo no sube a EEUU

--
Daryo... te salió una tirada de 25 y las islas son menos, quedé por la zona y te avancé por México. (Si no me dejáis amplitud bastante, tengo que improvisar :( ).
--

http://s26.postimg.org/lf3ypxjg7/ehn_mundo.png
309  Foros Generales / Foro Libre / Re: 4chan Risk - Partida en: 18 Marzo 2014, 02:45 am
Drvy, actualizo en 20 horas.
310  Media / Juegos y Consolas / Re: Duda sobre Space Clash en: 17 Marzo 2014, 16:58 pm
¡Gracias por la respuesta! Haré la prueba.

Lo había conseguido poner a funcionar hace un año haciendo algo parecido, pero tenía ciertos gráficos que se seguían distorsionando... Cuando llegue a casa le hago una prueba.

Un saludo.  :)
Páginas: 1 ... 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [31] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 ... 210
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines