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


 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7
1  Programación / PHP / Re: Restaurar copia de seguridad en: 24 Junio 2014, 03:54
vale, gracias por todo hermano xD
2  Programación / PHP / Re: Restaurar copia de seguridad en: 24 Junio 2014, 02:25
gracias por responder  :D... y bueno, ahora que lo mencionas, en realidad cuento con ese archivo jajaja, supongo que estoy haciendolo mal xD, a ver ¿tendría primero que mover el archivo que se ha subido para poder utilizarlo (ya que su formato es .tmp)  y luego validar que fuese de extension sql, utilizarlo y posteriormente borrarlo?
estoy usando esta clase :

Código
  1. <?php
  2.  
  3. /**
  4.  * @author yas500('mohamedigm@gmail.com','mohamedigm@yahoo.com')
  5.  * @copyright 2009
  6.  * @Date 24 April
  7.  * @Phpversion 5.2.8
  8.  */
  9.  
  10. /** // // // // // // // // // // // // // // ||
  11.   // this class is used for backup and          ||
  12.   // restore mysql server databases or entire   ||
  13.   // server , can compress backup ,send         ||
  14.   // to ftp server ,restore from compress again ||
  15.   */
  16.  
  17.  
  18.  
  19.  
  20.  
  21. abstract class BackupRestore
  22. {
  23. protected $link;
  24. protected $db=array();
  25. protected $table=array();
  26. protected $text="";
  27. private $debug='0';
  28. private $msg=array();
  29.  
  30. /**
  31. function construct for logging to database server
  32. */
  33.  
  34. final public function __construct($host='localhost',$user='root',$pass='')
  35. {
  36. set_error_handler(array($this,'handleError'));
  37.  
  38. try{
  39. $this->connect($host,$user,$pass);
  40. }
  41. catch (exception $e){
  42. trigger_error($e->getMessage(),E_USER_ERROR);
  43. }
  44. }
  45.  
  46. final private function __destruct()
  47. {
  48. if ($this->msg){
  49. foreach ($era as $rr){
  50. echo "<b>Note</b>".$rr."<br>";
  51. }                          
  52. }
  53. else
  54. {
  55. echo "The mission successfully complete.";
  56. }
  57.            //SHOW ERROR NOTES TO USER AFTER END
  58. }
  59.  
  60. final public function handleError($errno,$errmsg,$errfile,$errline)
  61. {
  62.  
  63.  
  64.        if ($this->debug == '0'){
  65. switch ($errno){
  66. case E_USER_ERROR:
  67. case E_WARNING:
  68. echo $errmsg;
  69. exit();
  70. break;
  71.  
  72. case E_USER_WARNING:
  73. case E_USER_NOTICE:
  74. $this->msg[]=$errmsg;
  75. return true;
  76. break;
  77.  
  78. case E_NOTICE:
  79. case E_STRICT:
  80. return true;
  81. break;
  82.  
  83. default:
  84. echo "UNKNOWN ERROR OCCURED".$errmsg;
  85. exit();
  86. }
  87. }
  88.  
  89. if ($this->debug == '1'){
  90. $errmsg=(strpos($errmsg,'Mysql'))? mysql_error():$errmsg;
  91. echo "<b>".$errno."</b>: ".$errmsg." <b>LINE: ".$errline."</b>"."<br><b><i>In file</i></b> ".$errfile."<hr>";
  92. exit();
  93. }
  94. }
  95.  
  96.  
  97. final private function connect($host,$user,$pass)
  98. {
  99.  
  100. if (! $this->link= mysql_connect($host,$user,$pass))
  101. throw new exception ("Mysql:couldn't connect to database server or invalid inforamtion");
  102. }
  103.  
  104.  
  105. // if you have multiple dbs enter them in that sequence
  106. // $db1,$db2,..
  107. // or leave it and it will backup the entire server databases
  108.  
  109. final public function setDbs($db='*')
  110. {
  111. $db=trim($db);
  112. if (empty($db) || $db == '*'){
  113. $list=mysql_list_dbs($this->link);
  114. $rows=mysql_num_rows($list);
  115. if($rows == 0){
  116. trigger_error("Mysql:THERE IS NO DATABASES ON THE SERVER!!",E_USER_ERROR);
  117. }
  118. for($i=0;$i<$rows;$i++){
  119. $this->db[]=mysql_tablename($list,$i);
  120. }
  121. }
  122. else{
  123. $db=explode(",",$db);
  124. $this->db=$db;
  125. }
  126. }
  127.  
  128. /**
  129. // this method will be for selecting tables or ignore it and
  130. // it will backup all tables
  131. */
  132.  
  133. final public function selectTable($table='*')
  134. {
  135. $table=trim($table);
  136. if($table == '')
  137. $table='*';
  138. if (! $table=="*" && count($this->db) > '1'){
  139. trigger_error("you can't specify tables if you want more than one db",E_USER_ERROR);
  140. }
  141.  
  142. if ($table == "*"){
  143. foreach ($this->db as $name){
  144. $sql = "SHOW TABLES FROM $name";
  145. $list = mysql_query($sql, $this->link);
  146. //$list=mysql_list_tables($name);
  147. $rows=mysql_num_rows($list);
  148. for($i=0;$i<$rows;$i++){
  149. $this->table[$name][]=mysql_tablename($list,$i);
  150. }
  151. }
  152. }
  153. else{
  154. $table=explode(",",$table);
  155. foreach($table as $tb){
  156. $this->table[$this->db['0']][]=$tb;
  157. }
  158. }
  159.  
  160. }
  161.  
  162. /**
  163. // method for selecting the query required
  164.   // for backup
  165.   // this is ahabit for me to store all queries required in amethod and call it
  166. */
  167.  
  168. final protected function selectQuery($type)
  169. {
  170. $query=array(1=>"SHOW CREATE DATABASE ","SHOW CREATE TABLE ","INSERT INTO ","DROP DATABASE IF EXISTS ","DROP TABLE IF EXISTS ","SELECT * FROM ");
  171. return $query[$type];
  172. }
  173.  
  174. /**
  175. method for validate file before restore database
  176. */
  177.  
  178. final protected function getFile($file)
  179. {
  180.  
  181. $this->text="";
  182. switch ($file){
  183. case (!file_exists($file)):
  184. trigger_error("File doesn't exist!!".$file,E_USER_ERROR);
  185. return false;
  186. break;
  187. case (!is_readable($file)):
  188. trigger_error("Can't get access to the file!!",E_USER_ERROR);
  189. return false;
  190. break;
  191. default:
  192. if(preg_match("/\.gz$/",$file)){
  193. if(!$gz=gzopen($file,'rb'))
  194. trigger_error("couldn't open compressed file",E_USER_ERROR);
  195. gzrewind($gz);
  196. while(!gzeof($gz)){
  197. $this->text.=gzgets($gz);
  198. }
  199. gzclose($gz);
  200. }
  201. else
  202. {
  203. if(!$fp=fopen($file,'rb'))
  204. trigger_error("Couldn't read from the file",E_USER_ERROR);
  205. flock($fp,'1');;
  206. while(!feof($fp)){
  207. $this->text.=fgets($fp);
  208. }
  209. flock($fp,'3');
  210. fclose($fp);
  211.  
  212. }
  213. if($er=error_get_last()){
  214. trigger_error($er['type'].":".$er['message'],E_USER_WARNING);
  215. }
  216.  
  217. return true;
  218. }
  219.  
  220. }
  221.  
  222. /**
  223. this method is for prepare file that be backuped
  224. //
  225. */
  226.  
  227. final protected function setFile($txt,$cmp,$ftp,$fhost,$fuser,$fpass,$fport)
  228. {
  229. $recognize="";
  230. foreach ($this->db as $rec){
  231. $recognize.=$rec."_";
  232. }
  233. //aca
  234. $recognize=preg_replace("/_$/","",$recognize);   //for naming file backuped
  235.  
  236. // this the preferred for me format for naming files
  237. $file='backup@'.$recognize."@".date('Y-M-d',time()).'.sql';
  238. if(!$fp=fopen($file,'wb'))
  239. {
  240. trigger_error("You may have no enough rights on server",E_USER_ERROR);
  241. }
  242. flock($fp,'2');
  243. fwrite($fp,$txt);
  244. flock($fp,'3');
  245. fclose($fp);
  246.  
  247. if ($cmp == '1'){
  248. $file=$file.".gz";
  249. if(! $gz=gzopen($file,'wb'))
  250. trigger_error("Script failed to compress backuped file.",E_USER_NOTICE);
  251. gzwrite($gz,$txt);
  252. gzclose($gz);
  253. }
  254.  
  255. if($ftp == '1'){
  256. if(! $conn=ftp_connect($fhost,$fport))
  257. trigger_error("this is not avalid ftp server or make sure you type it well",E_USER_ERROR);
  258. $log=ftp_login($conn,$fuser,$fpass);
  259. if(!$log)trigger_error("Username or Password is not correct",E_USER_ERROR);
  260. $put=ftp_put($conn,$file,$file,FTP_BINARY);
  261. if(!$put){
  262. trigger_error("Couldn't upload file to remote server",E_USER_WARNING);
  263. }
  264. ftp_close($conn);
  265.  
  266. }
  267. else{
  268. $this->downBackup($file);
  269. }
  270. return true;
  271. }
  272.  
  273.  
  274. // download backuped file
  275.  
  276. final private function downBackup($file)
  277. {
  278. header("Content-Description:File Transfer");;
  279. header('Content-Transfer-Encoding: binary');
  280. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  281.   header('Pragma: public');
  282.   header('Content-Disposition: attachment; filename='.basename($file));
  283.   header('Content-Type: application/octet-stream');
  284.     header('Content-Length: ' . filesize($file));
  285.     ob_clean();
  286.     flush();
  287.     readfile($file);
  288. }
  289.  
  290. abstract protected function backupData($cmp='0',$ftp='0',$fhost='',$fpass='',$fport='21');
  291.  
  292. abstract protected function restoreSql($file);
  293.  
  294. }
  295.  
  296.  
  297.  
  298.  
  299. final class Backuprestoresql extends BackupRestore
  300. {
  301.  
  302. const HEADERS='***********************
  303. Y    A    S    5   0  0
  304. ***********************';               // mohamed ghareeb mohamed saeed signature
  305. const FIELDSEP=';';                 // seperate between queries
  306.  
  307.  
  308. /* this method for backup
  309. // you can specify more options like compression (0,1) , send through ftp to server (0,1)
  310. //
  311. */
  312.  
  313. public function backupData($cmp='0',$ftp='0',$fhost='',$fuser='anonymous',$fpass='mohamedigm@gmail.com',$fport='21')
  314. {
  315.  
  316. if($ftp == '1'){
  317. if (empty($fhost)){
  318. trigger_error("You must specify ftp host name as you select ftp option",E_USER_ERROR);
  319. }
  320. if(strpos($fhost,"ftp://")){
  321. str_replace("ftp://","",$fhost);
  322. }
  323. }
  324.  
  325. $this->text="";
  326. $this->text.=self::HEADERS;
  327.  
  328. /**
  329. this will begin save database to file
  330. */
  331. foreach($this->db as $key){
  332. $result=mysql_query($this->selectQuery('1')."$key",$this->link);
  333. while($row=mysql_fetch_row($result)){
  334. $this->text.="\r\n".$this->selectQuery('4')."$key".self::FIELDSEP.$row['1'];
  335. }
  336.  
  337. // this will save tables related to that database
  338. foreach($this->table[$key] as $select){
  339. if(! count($this->table[$key]) == '0'){
  340. $result=mysql_query($this->selectQuery('2').$select,$this->link);
  341. while($row=mysql_fetch_row($result)){
  342. $this->text.=self::FIELDSEP.$this->selectQuery('5').$select.self::FIELDSEP.$row['1'];
  343.  
  344. // fetch fields values in the tables
  345. $result2=mysql_query($this->selectQuery('6').$select,$this->link);
  346. while($row2=mysql_fetch_row($result2)){
  347. $txt="";
  348. foreach ($row2 as $val){
  349. $val=mysql_real_escape_string($val,$this->link);
  350. $txt.="'".$val."'".",";
  351. if($val == mysql_real_escape_string($row2[count($row2)-1])){
  352. //aca
  353.    $txt=preg_replace("/,$/","",$txt);
  354. }
  355. // save field values as insertion query
  356. }
  357. $this->text.=self::FIELDSEP.$this->selectQuery('3').$select." VALUES(".$txt.")";
  358. }
  359. @ mysql_free_result($result2);
  360. }
  361. }
  362.  
  363. }
  364.  
  365. //* finish database Dump *//
  366. $this->text.="\r\n### ".$key." DATABASE DUMP COMPLETED ###";
  367. }
  368. mysql_close($this->link);
  369.  
  370. if(!$this->setFile($this->text,$cmp,$ftp,$fhost,$fuser,$fpass,$fport))
  371. trigger_error("Something goes wrong with file creation",E_USER_ERROR);
  372.  
  373.  
  374. return true;               // all things is done correctly
  375. }
  376.  
  377. /**
  378. this method for restore server database
  379. //
  380. */
  381.  
  382. public function restoreSql($file)
  383. {
  384. if($this->getFile($file)){
  385. $this->text=str_replace(self::HEADERS,"",$this->text);   // ignore header
  386. $this->text=preg_replace("/###.* DATABASE DUMP COMPLETED ###/",self::FIELDSEP,$this->text);
  387. // ignore database dump complete message
  388.  
  389. foreach ($tt=explode(self::FIELDSEP,$this->text) as $query){
  390. if (empty($query))
  391. continue;
  392. $rs=mysql_query($query,$this->link);
  393. if(!$rs){
  394. trigger_error("Mysql:problem with aquery",E_USER_NOTICE);
  395. }
  396.  
  397. if (strstr($query,"CREATE DATABASE")){
  398. $seldb=substr($query,strpos($query,'`')+1,strlen($query));
  399. $seldb=substr($seldb,'0',strpos($seldb,"`"));
  400. mysql_select_db($seldb,$this->link);
  401. //**
  402. // could use query with "use database " and the name of database
  403. //**
  404. }
  405.  
  406. }
  407. }
  408. else
  409. exit();
  410. mysql_close($this->link);
  411. return true;
  412. }
  413.  
  414. }
  415.  
  416.  
  417.  
  418.  
  419.  
  420. //*****  EXAMPLES *****//
  421.  
  422. /** FOR BACKUP FILE  **/
  423. /**
  424.  || $obj=new Backuprestoresql()   // you can specify information of your server or make it
  425.    // default as localhost and user root with no pass
  426.  || $obj->setDbs()              // leave it blank or * and it will backup entire server
  427.    // or specify dbs "more one db1,db2,..."
  428.   // caution :: make sure you have rights to write on dbs you choose
  429.  || $obj->selectTable()         // leave it blank or * and it will backup all tables
  430.    // or specify tables "more one table1,table2,..."
  431.  || $obj->backupData()     // here will be the backup you can choose compression (0,1)
  432.    // ftp (0,1) if you specify ftp you must specify at least host
  433. */
  434.  
  435.  
  436.  
  437. /** FOR RESTORE FROM FILE  **/
  438. /**
  439.  || $obj=new Backuprestoresql()   // you can specify information of your server or make it
  440.    // default as localhost and user root with no pass
  441.  || $obj->restoreSql('file path') // specify location of your file accepted extension sql,gz,txt
  442. */
  443.  
  444.  
  445.  
  446.  
  447.  
  448. ?>
3  Programación / PHP / Re: Restaurar copia de seguridad en: 24 Junio 2014, 01:45
mil disculpas hermano, no quise ser grosero ni nada por el estilo, es que ando un poco desesperado, con decirte que no leí eso que me pusiste xD

Bueno, el sistema que tengo me genera una copia de seguridad, pero necesito que haya un módulo desde donde se pueda restaurar esa copia de seguridad, dándole la opción al usuario de que seleccione que copia desea restaurar.

En un principio pensé hacerlo con el input file, iba muy confiado hasta que noté que me daba la dirección "fake", ahora no tengo ni idea de como hacerlo

sorry si no me he explicado bien y gracias por comentar
4  Programación / PHP / Re: Restaurar copia de seguridad en: 24 Junio 2014, 00:56
hermano yo tengo el archivo sql con la copia de seguridad, lo que quiero es restaurarla (se podría hacer fácilmente desde phpmyadmin pero a mi profesor no le sirve así -.-)
5  Programación / PHP / [SOLUCIONADO] Restaurar copia de seguridad en: 24 Junio 2014, 00:37
Hola, alguno de ustedes sabe como puedo hacer para restaurar copia de seguridad con PHP? lo del input type file queda descartado ya que no me da la dirección exacta de donde está realmente ubicada la copia de seguridad que selecciono D:
Saludos
6  Programación / PHP / Re: obtener path de un input file en PHP? en: 22 Junio 2014, 04:10
exactamente eso, el path de donde estoy seleccionando el archivo, pero bueh, si no se puede D:, tocará ver como me las ingenio xD

gracias bro
7  Programación / PHP / obtener path de un input file en PHP? en: 22 Junio 2014, 03:50
Hola, me preguntaba si alguno de ustedes sabia de que forma puedo obtener el path de un input file en PHP, estuve leyendo que no habia forma de obtener el path completo por razones de seguridad de los navegadores, pero bueh, alguien confirma eso? :huh:

Saludos y gracias de antemano 
8  Media / Multimedia / Re: SOFTWARE PARA GRABAR LO QUE HAGO MI PANTALLA Y QUE OTROS LO VEAN ON-LINE? en: 17 Junio 2014, 05:05
pues si, me confundi, y bastante xD, pero bueh.. gracias hermanazo, era tan sencillo como desmarcar la opcion "Permitir Control" de Team Viewer, gracias, tenia ese soft instalado y ni p**a idea que podia hacer eso xD
9  Media / Multimedia / SOFTWARE PARA GRABAR LO QUE HAGO MI PANTALLA Y QUE OTROS LO VEAN ON-LINE? en: 17 Junio 2014, 03:56
Hola, alguno de ustedes conoce a algún software con el que pueda grabar lo que estoy haciendo en mi pc y que otras personas lo vean en tiempo real?
Saludos y gracias de antemano :v

P.D. No estoy seguro que este sea el foro correcto, de no ser por favor muevanlo
10  Programación / .NET (C#, VB.NET, ASP) / No permitir resizear un form en: 26 Mayo 2014, 17:51
EDIT: Fixed
Páginas: [1] 2 3 4 5 6 7
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines