/vendor/class.php

https://gitlab.com/mateoagudelo/slim · PHP · 497 lines · 438 code · 53 blank · 6 comment · 80 complexity · bcedd0f070825ab436923d6d5c694111 MD5 · raw file

  1. <?php
  2. class debug {
  3. protected $modo;
  4. public function __construct($modo) {
  5. $this->modo = $modo;
  6. if ($this->modo) {
  7. error_reporting(1);
  8. } else {
  9. error_reporting(0);
  10. }
  11. }
  12. }
  13. class Configuracion {
  14. protected $host = 'localhost';
  15. protected $base_datos = 'acortalo';
  16. protected $usuario = 'root';
  17. protected $contrasena = '';
  18. public function db_host() {
  19. return $this->host;
  20. }
  21. public function db_nombre() {
  22. return $this->base_datos;
  23. }
  24. public function db_usuario() {
  25. return $this->usuario;
  26. }
  27. public function db_contrasena() {
  28. return $this->contrasena;
  29. }
  30. }
  31. class Conectar extends PDO {
  32. private $conectar, $conf;
  33. public function __construct() {
  34. $this->conf = new Configuracion();
  35. try {
  36. parent::__construct('mysql:host=' . $this->conf->db_host() . ';dbname=' . $this->conf->db_nombre() . '', $this->conf->db_usuario(), $this->conf->db_contrasena() );
  37. } catch (PDOException $error_pdo) {
  38. die;
  39. echo $error_pdo->getMessage();
  40. echo $error_pdo->getLine();
  41. }
  42. }
  43. }
  44. class Sitio {
  45. protected $con, $consultar;
  46. public $url;
  47. public function __construct() {
  48. $this->con = new Conectar();
  49. }
  50. public function url() {
  51. $this->consultar = $this->con->prepare('select * from sitio where id=:id');
  52. $this->consultar->execute(array(':id' => 1));
  53. $this->consultar = $this->consultar->fetch(PDO::FETCH_OBJ);
  54. $this->url = $this->consultar->url;
  55. }
  56. public function __destruct() {
  57. $this->con = null;
  58. }
  59. }
  60. class UsuarioIngreso {
  61. protected $con, $usuario, $correo, $contrasena, $contrasena_r, $nuevo_registro, $no_correo;
  62. private $si_usuario, $si_correo, $si_contrasena;
  63. public $registro;
  64. public function __construct() {
  65. $this->con = new Conectar();
  66. }
  67. public function Registro($usuario, $correo, $contrasena, $contrasena_r) {
  68. $this->usuario = $usuario;
  69. $this->correo = $correo;
  70. $this->contrasena = $contrasena;
  71. $this->contrasena_r = $contrasena_r;
  72. if (!empty($this->usuario)) {
  73. $this->si_usuario = true;
  74. $this->usuario = filter_var($this->usuario, FILTER_SANITIZE_STRING);
  75. $this->usuario = addslashes($this->usuario);
  76. } else { $this->si_usuario = false; }
  77. if (!empty($this->correo)) {
  78. $this->si_usuario = true;
  79. $this->correo = filter_var($this->correo, FILTER_SANITIZE_EMAIL);
  80. if ($this->correo = filter_var($this->correo, FILTER_SANITIZE_EMAIL)) {
  81. $this->no_correo = $this->con->prepare('select * from usuarios where correo=:correo');
  82. $this->no_correo->execute(array(':correo' => $this->correo));
  83. $this->no_correo = $this->no_correo->fetchAll();
  84. if (!$this->no_correo) {
  85. $this->si_correo = true;
  86. } else { $this->si_correo = false; }
  87. } else { $this->si_correo = false; }
  88. } else { $this->si_correo = false; }
  89. if (!empty($this->contrasena) AND !empty($this->contrasena_r)) {
  90. if ($this->contrasena == $this->contrasena_r) {
  91. $this->contrasena = password_hash($this->contrasena, PASSWORD_DEFAULT, array("cost"=>12));
  92. //password_hash($this->contrasena, PASSWORD_DEFAULT, array("cost"=>12));
  93. $this->si_contrasena = true;
  94. } else { $this->si_contrasena = false; }
  95. } else { $this->si_contrasena = false; }
  96. if ($this->si_usuario AND $this->si_correo AND $this->si_contrasena) {
  97. $this->nuevo_registro = $this->con->prepare('insert into usuarios set usuario=:usuario, correo=:correo, contrasena=:con');
  98. $this->nuevo_registro->execute(array('usuario' => $this->usuario, 'correo' => $this->correo, 'con' => $this->contrasena));
  99. $this->registro = true;
  100. } else { $this->registro = false; }
  101. }
  102. protected $consultar, $datos, $f_correo, $f_contrasena, $correo_verificado, $contrasena_verificada;
  103. private $id_verificado, $v_correo, $v_contrasena, $dato_correo, $dato_contrasena;
  104. public $estado;
  105. public function Ingreso($correo, $contrasena) {
  106. $this->f_correo = $correo;
  107. $this->f_contrasena = $contrasena;
  108. if (!empty($this->f_correo) AND !empty($this->f_contrasena)) {
  109. $this->consultar = $this->con->prepare('select * from usuarios where correo=:correo');
  110. $this->consultar->execute( array(':correo' => $this->f_correo) );
  111. $this->datos = $this->consultar->fetch(PDO::FETCH_OBJ);
  112. if ($this->datos) {
  113. $this->correo_verificado = $this->datos->correo;
  114. $this->dato_correo = true;
  115. $this->dato_contrasena = true;
  116. } else { $this->estado = false; }
  117. } else { $this->dato_correo = false; $this->dato_contrasena = false; }
  118. if ($this->dato_correo AND $this->dato_contrasena) {
  119. if ($this->correo_verificado == $this->f_correo) {
  120. $this->v_correo = true;
  121. $this->contrasena_verificada = $this->datos->contrasena;
  122. } else {
  123. $this->v_correo = false;
  124. $this->contrasena_verificada = null;
  125. }
  126. if (password_verify($this->f_contrasena, $this->contrasena_verificada)) {
  127. $this->v_contrasena = true;
  128. $this->id_verificado = $this->datos->id;
  129. } else {
  130. $this->v_contrasena = false;
  131. $this->id_verificado = null;
  132. }
  133. } else { $this->v_correo = false; $this->v_contrasena = false; }
  134. }
  135. public function Verificar() {
  136. if ($this->v_correo AND $this->v_contrasena) {
  137. $_SESSION['id_usuario'] = $this->id_verificado;
  138. $_SESSION['correo_usuario'] = $this->correo_verificado;
  139. return $this->estado = true;
  140. } else {
  141. return $this->estado = false;
  142. }
  143. }
  144. public function __destruct() {
  145. $this->con = null;
  146. }
  147. }
  148. class UsuarioPerfil {
  149. protected $con, $consultar, $actualizar, $id, $us, $v_us;
  150. public $usuario, $correo, $creditos, $actualizado;
  151. public function __construct() {
  152. $this->con = new Conectar();
  153. }
  154. public function GetDatos($id) {
  155. $this->id = $id;
  156. $this->consultar = $this->con->prepare('select usuario, correo, creditos from usuarios where id=:id');
  157. $this->consultar->execute(array(':id' => $this->id));
  158. $this->consultar = $this->consultar->fetch(PDO::FETCH_OBJ);
  159. $this->usuario = $this->consultar->usuario;
  160. $this->correo = $this->consultar->correo;
  161. $this->creditos = $this->consultar->creditos;
  162. }
  163. public function ActualizarPerfil($id, $usuario) {
  164. $this->id = $id;
  165. $this->us = $usuario;
  166. if (!empty($this->us)) {
  167. $this->us = filter_var($this->us, FILTER_SANITIZE_STRING);
  168. $this->us = addslashes($this->us);
  169. $this->v_us = true;
  170. } else { $this->v_us = false; }
  171. if ($this->v_us) {
  172. $this->actualizar = $this->con->prepare('update usuarios set usuario=:us where id=:id');
  173. $this->actualizar->execute(array(':us' => $this->us, ':id' => $this->id));
  174. $this->actualizado = true;
  175. } else { $this->actualizado = false; }
  176. }
  177. }
  178. class ActualizarContrasena {
  179. protected $id, $consultar, $con;
  180. public $contrasena_actual, $con_a_si, $cambio;
  181. public $contrasena_nueva, $con_n_si, $contrasena_nueva_rep, $con_n_r_si;
  182. private $datos;
  183. public function __construct($id, $contrasena_actual, $contrasena_nueva, $contrasena_nueva_r) {
  184. $this->con = new Conectar();
  185. $this->id = $id;
  186. $this->contrasena_actual = $contrasena_actual;
  187. $this->contrasena_nueva = $contrasena_nueva;
  188. $this->contrasena_nueva_rep = $contrasena_nueva_r;
  189. }
  190. public function Verificar() {
  191. if (!empty($this->contrasena_actual)) {
  192. $this->con_a_si = true;
  193. } else {
  194. $this->con_a_si = false;
  195. }
  196. if (!empty($this->contrasena_nueva)) {
  197. $this->con_n_si = true;
  198. } else {
  199. $this->con_n_si = false;
  200. }
  201. if (!empty($this->contrasena_nueva_rep)) {
  202. $this->con_n_r_si = true;
  203. } else {
  204. $this->con_n_r_si = false;
  205. }
  206. }
  207. public function Actualizar() {
  208. $this->consultar = $this->con->prepare('select contrasena from usuarios where id=:id');
  209. $this->consultar->execute( array(':id' => $this->id) );
  210. $this->datos = $this->consultar->fetch(PDO::FETCH_OBJ);
  211. if (password_verify($this->contrasena_actual, $this->datos->contrasena)) {
  212. if ($this->contrasena_nueva == $this->contrasena_nueva_rep) {
  213. //ACTUALIZAR
  214. $this->contrasena_nueva = password_hash($this->contrasena_nueva, PASSWORD_DEFAULT, array("cost"=>12));
  215. $this->consultar = $this->con->prepare('update usuarios set contrasena=:contrasena where id=:id');
  216. $this->consultar->execute( array(':contrasena' => $this->contrasena_nueva, ':id' => $this->id) );
  217. $this->cambio = true;
  218. } else { $this->cambio = false; }
  219. } else { $this->cambio = false; }
  220. }
  221. public function __destruct() {
  222. $this->con = null;
  223. $this->consultar = null;
  224. }
  225. }
  226. class Enlace {
  227. protected $con, $consultar, $insertar, $consultar_enlaces;
  228. private $id_creador, $url, $llegada, $si_url, $si_llegada;
  229. public $insertado;
  230. public function __construct() {
  231. $this->con = new Conectar();
  232. }
  233. public function Nuevo($id_creador, $url, $llegada) {
  234. $this->id_creador = $id_creador;
  235. $this->url = $url;
  236. $this->llegada = $llegada;
  237. if (!empty($this->url)) {
  238. $this->url = filter_var($this->url, FILTER_SANITIZE_URL);
  239. $this->url = trim($this->url);
  240. $this->si_url = true;
  241. } else { $this->si_url = false; }
  242. if (!empty($this->llegada)) {
  243. $this->llegada = filter_var($this->llegada, FILTER_SANITIZE_URL);
  244. $this->si_llegada = true;
  245. } else { $this->si_llegada = false; }
  246. if ($this->si_url AND $this->si_llegada) {
  247. $this->consultar = $this->con->prepare('select * from enlaces where enlace=:url');
  248. $this->consultar->execute(array(':url' => $this->url));
  249. $this->consultar = $this->consultar->fetch(PDO::FETCH_OBJ);
  250. $this->consultar_enlaces = $this->con->prepare('select count(*) from enlaces where id_creador=:creador');
  251. $this->consultar_enlaces->execute(array(':creador' => $this->id_creador));
  252. $this->consultar_enlaces = $this->consultar_enlaces->fetchColumn();
  253. if (!$this->consultar AND $this->consultar_enlaces < 10) {
  254. $this->insertar = $this->con->prepare('insert into enlaces set id_creador=:usuario, enlace=:url, llegada=:llegada');
  255. $this->insertar->execute(array(':usuario' => $this->id_creador, ':url' => $this->url, ':llegada' => $this->llegada));
  256. $this->insertado = true;
  257. } else { $this->insertado = false; }
  258. } else { $this->insertado = false; }
  259. }
  260. protected $consultar_todos, $consultar_visitas;
  261. private $id_enlace_visitas;
  262. public $datos, $total_vistas;
  263. public function Todos($id) {
  264. $this->id = $id;
  265. $this->consultar_todos = $this->con->prepare('select * from enlaces where id_creador=:id');
  266. $this->consultar_todos->execute(array(':id' => $this->id));
  267. $this->datos = $this->consultar_todos->fetchAll();
  268. }
  269. public function Visitas($id_enlace_visitas) {
  270. $this->id_enlace_visitas = $id_enlace_visitas;
  271. $this->consultar_visitas = $this->con->prepare('select count(*) from vistas where id_enlace=:id');
  272. $this->consultar_visitas->execute(array(':id' => $this->id_enlace_visitas));
  273. $this->total_vistas = $this->consultar_visitas->fetchColumn();
  274. }
  275. public $editar_enlace, $enlace_editar, $llegada_editar, $visibilidad_editar;
  276. public function Editar($id_creador, $id) {
  277. $this->id = $id;
  278. $this->id_creador = $id_creador;
  279. $this->consultar = $this->con->prepare('select id, enlace, llegada, visibilidad from enlaces where id=:id and id_creador=:id_creador');
  280. $this->consultar->execute(array(':id' => $this->id, ':id_creador' => $this->id_creador));
  281. $this->editar_enlace = $this->consultar->fetch(PDO::FETCH_OBJ);
  282. if ($this->editar_enlace) {
  283. $this->enlace_editar = $this->editar_enlace->enlace;
  284. $this->llegada_editar = $this->editar_enlace->llegada;
  285. $this->visibilidad_editar = $this->editar_enlace->visibilidad;
  286. } else {
  287. $this->enlace_editar = null;
  288. $this->llegada_editar = null;
  289. }
  290. }
  291. protected $actualizar_enlace, $consultar_enlace;
  292. private $visibilidad_e, $si_visibilidad_e;
  293. public $en_actualizado;
  294. public function EditarEnlace($id_creador, $id, $url, $llegada, $visibilidad) {
  295. $this->id_creador = $id_creador;
  296. $this->id = $id;
  297. $this->url = $url;
  298. $this->llegada = $llegada;
  299. $this->visibilidad_e = $visibilidad;
  300. if (!empty($this->url)) {
  301. $this->url = filter_var($this->url, FILTER_SANITIZE_URL);
  302. $this->si_url = true;
  303. } else { $this->si_url = false; }
  304. if (!empty($this->llegada)) {
  305. $this->llegada = filter_var($this->llegada, FILTER_SANITIZE_URL);
  306. $this->si_llegada = true;
  307. } else { $this->si_llegada = false; }
  308. if (!empty($this->visibilidad_e)) {
  309. $this->visibilidad_e = filter_var($this->visibilidad_e, FILTER_SANITIZE_NUMBER_INT);
  310. $this->si_visibilidad_e = true;
  311. } else { $this->si_visibilidad_e = false; }
  312. if ($this->si_url AND $this->si_llegada AND $this->si_visibilidad_e) {
  313. $this->actualizar_enlace = $this->con->prepare('update enlaces set enlace=:url, llegada=:llegada, visibilidad=:visi where id=:id and id_creador=:creador');
  314. $this->actualizar_enlace->execute(array(':url' => $this->url, ':llegada' => $this->llegada, ':visi' => $this->visibilidad_e, ':id' => $this->id, ':creador' => $this->id_creador));
  315. $this->en_actualizado = true;
  316. } else { $this->en_actualizado = false; }
  317. }
  318. }
  319. class EnlaceUsuario {
  320. protected $con, $ver, $id_usuario, $consultar_creador;
  321. public $enlace, $creador, $nombre_creador, $no;
  322. public function __construct() {
  323. $this->con = new Conectar();
  324. }
  325. public function MostrarEnlace($id_usuario, $id) {
  326. $this->id_usuario = $id_usuario;
  327. $this->id = $id;
  328. $this->ver = $this->con->prepare('select * from enlaces where id=:id');
  329. $this->ver->execute(array(':id' => $this->id));
  330. $this->ver = $this->ver->fetch(PDO::FETCH_OBJ);
  331. if ($this->ver) {
  332. $this->enlace = $this->ver->enlace;
  333. $this->creador = $this->ver->id_creador;
  334. $this->consultar_creador = $this->con->prepare('select usuario from usuarios where id=:id');
  335. $this->consultar_creador->execute(array(':id' => $this->creador));
  336. $this->consultar_creador = $this->consultar_creador->fetch(PDO::FETCH_OBJ);
  337. if ($this->consultar_creador) {
  338. $this->nombre_creador = $this->consultar_creador->usuario;
  339. } else { $this->nombre_creador = 'Desconocido'; }
  340. $this->no = true;
  341. } else { $this->no = false; }
  342. }
  343. protected $consultar_valides, $rebajar_creditos, $sumar_creditos, $reportar_vista, $consultar_saldo;
  344. private $id_usuario_cobro, $id, $enlace_cobro;
  345. public $entrada_enlace, $proceso;
  346. public function Verificar($id_usuario, $id, $enlace) {
  347. $this->id_usuario_cobro = $id_usuario; //ID DEL USUARIO QUE VE EL ANUNCIO
  348. $this->id = $id; //ID DEL ENLACE - URL
  349. $this->enlace_cobro = $enlace; //URL PARA VERIFICAR
  350. if (!empty($this->enlace_cobro)) {
  351. $this->enlace_cobro = filter_var($this->enlace_cobro, FILTER_SANITIZE_URL);
  352. $this->enlace_cobro = trim($this->enlace_cobro);
  353. $this->consultar_valides = $this->con->prepare('select * from enlaces where id=:id');
  354. $this->consultar_valides->execute(array(':id' => $this->id));
  355. $this->consultar_valides = $this->consultar_valides->fetch(PDO::FETCH_OBJ);
  356. if ($this->consultar_valides->llegada == $this->enlace_cobro) {
  357. //CONSULTAR QUE EL USUARIO SI PUEDA PAGAR
  358. $this->consultar_saldo = $this->con->prepare('select creditos from usuarios where id=:id');
  359. $this->consultar_saldo->execute(array(':id' => $this->consultar_valides->id_creador));
  360. $this->consultar_saldo = $this->consultar_saldo->fetch(PDO::FETCH_OBJ);
  361. if ($this->consultar_saldo->creditos >= 1) {
  362. //REBAJAR PUNTOS
  363. $this->rebajar_creditos = $this->con->prepare('update usuarios set creditos=creditos-:cre where id=:id');
  364. $this->rebajar_creditos->execute(array(':cre' => 1, ':id' => $this->consultar_valides->id_creador));
  365. //SUMAR PUNTOS
  366. $this->sumar_creditos = $this->con->prepare('update usuarios set creditos=creditos+:cre where id=:id');
  367. $this->sumar_creditos->execute(array(':cre' => 1, ':id' => $this->id_usuario_cobro));
  368. //REPORTAR VISTA
  369. $this->reportar_vista = $this->con->prepare('insert into vistas set id_enlace=:enlace, id_usuario=:usuario');
  370. $this->reportar_vista->execute(array(':enlace' => $this->id, ':usuario' => $this->id_usuario_cobro));
  371. $this->proceso = true;
  372. } else { $this->proceso = false; }
  373. } else { $this->proceso = false; }
  374. } else { $this->proceso = false; }
  375. }
  376. }
  377. class ProteccionEnlace {
  378. protected $con, $consultar, $consultar_creditos;
  379. private $id_usuario, $id_enlace, $valor, $id_creador;
  380. public $estado, $creditos;
  381. public function __construct() {
  382. $this->con = new Conectar();
  383. }
  384. public function Boton($id_enlace, $id_usuario) {
  385. $this->id_enlace = $id_enlace;
  386. $this->id_usuario = $id_usuario;
  387. $this->consultar = $this->con->prepare('select count(*) from vistas where id_enlace=:enlace and id_usuario=:usuario');
  388. $this->consultar->execute(array(':enlace' => $this->id_enlace, ':usuario' => $this->id_usuario));
  389. $this->valor = $this->consultar->fetchColumn();
  390. if ($this->valor >= 1) {
  391. return $this->estado = true;
  392. } else {
  393. return $this->estado = false;
  394. }
  395. }
  396. public function Creditos($id_creador) {
  397. $this->id_creador = $id_creador;
  398. $this->consultar_creditos = $this->con->prepare('select creditos from usuarios where id=:id');
  399. $this->consultar_creditos->execute(array(':id' => $this->id_creador));
  400. $this->consultar_creditos = $this->consultar_creditos->fetch(PDO::FETCH_OBJ);
  401. if ($this->consultar_creditos) {
  402. $this->creditos = $this->consultar_creditos->creditos;
  403. } else { $this->creditos = 0; }
  404. }
  405. }
  406. class Top {
  407. protected $con, $consultar;
  408. public $datos;
  409. public function __construct() {
  410. $this->con = new Conectar();
  411. }
  412. public function Mostrar() {
  413. $this->consultar = $this->con->prepare('select usuario, creditos from usuarios order by creditos desc limit 0,10');
  414. $this->consultar->execute();
  415. $this->datos = $this->consultar->fetchAll();
  416. }
  417. public function __destruct() {
  418. $this->con = null;
  419. }
  420. }
  421. class Reporte {
  422. protected $con, $insertar;
  423. private $id_usuario; //ID DEL USUARIO REPORTADOR
  424. private $id_enlace; //ID DEL ENLACE A REPORTAR
  425. private $razon; //ID DE LA RAZON
  426. public $reporte;
  427. public function __construct() {
  428. $this->con = new Conectar();
  429. }
  430. public function Nuevo($id_usuario, $id_enlace, $razon) {
  431. $this->id_usuario = $id_usuario;
  432. $this->id_enlace = $id_enlace;
  433. $this->razon = $razon;
  434. if ($this->razon > 5) {
  435. $this->reporte = false;
  436. } else {
  437. $this->razon = filter_var($this->razon, FILTER_SANITIZE_NUMBER_INT);
  438. $this->insertar = $this->con->prepare('insert into reportes set id_enlace=:enlace, id_usuario=:usuario, razon=:ra');
  439. $this->insertar->execute(array(':enlace' => $this->id_enlace, ':usuario' => $this->id_usuario, ':ra' => $this->razon));
  440. $this->reporte = true;
  441. }
  442. }
  443. }
  444. ?>