crabs_cms-1.0.4 ©2006-2008 - Christophe Cazajus (crabs-mettre_le_signe_at-crabs-world.com)
1 <?php 2 // 3 // ============================================================================= 4 // crabs_cms-1.0.4 : Crabs Contents Management System 5 // Copyright (C) 2006-2008 : Christophe Cazajus (crabs-mettre_le_signe_at-crabs-world.com) 6 // 7 // Ce source fait partie d'un projet logiciel libre. Vous pouvez le distribuer 8 // et/ou le modifier en respectant les termes de la GNU General Public License 9 // version 2 ou (suite a votre propre choix) une version ulterieure. 10 // 11 // Ce programme est distribue dans l'espoir qu'il puisse etre utile, mais 12 // sans aucune garantie, meme si il est associe a un produit qui vous en 13 // propose une. Conformez-vous a la GNU General Public License pour avoir 14 // plus de precisions. 15 // 16 // L'auteur ne peut etre tenu responsable de l'utilisation faite des 17 // composantes associees a ce projet (en partie ou dans leur totalite). 18 // 19 // Une copie du fichier de la GNU GPL est fournie dans le repertoire DOC 20 // de ce projet sous le nom gnu_gpl.txt 21 // 22 // ============================================================================= 23 // 24 $RACINE='..' ; 25 include( $RACINE.'/pinfo.php' ) ; 26 include( $RACINE.'/LIB/param.php' ) ; 27 include( $RACINE.'/LIB/util.php' ) ; 28 include( $RACINE.'/LIB/xml.php' ) ; 29 include( $RACINE.'/LIB/mysql.php' ) ; 30 31 $xml = new XML ; 32 $xml->xsl = relative2absolute( 'admin.xsl' ) ; 33 $xml->attributs = array( 'menu'=>'svg' ) ; 34 $xml->addElementText( 'titre', 'Administration du site : '.toXML($SITE_NOM) ) ; 35 $xml->addElementText( 'site', toXML($SITE_NOM) ) ; 36 $resto = &$xml->addElement( 'resto' ) ; 37 38 $file = fromGET('r') ; 39 $action = fromGET('a') ; 40 if ( $file != false ) $file.= '.dat' ; 41 42 if ( array_key_exists( 'dat', $_FILES ) ) 43 { 44 clearstatcache() ; 45 if ( !is_dir('SVG') ) mkdir( 'SVG' ) ; 46 $file = $_FILES['dat']['name'] ; 47 $dest = 'SVG/'.$file ; 48 if ( move_uploaded_file( $_FILES['dat']['tmp_name'], $dest ) ) 49 { 50 $resto->addElementText( 'comment', "UPLOAD $file : ok" ) ; 51 $action = 'r' ; 52 } 53 else 54 { 55 $file = false ; 56 $resto->addElementText( 'comment', "UPLOAD $f : problème" ) ; 57 } 58 } 59 60 if ( $action == 'd' ) 61 { 62 $efface = 'SVG/'.$file ; 63 unlink( $efface ) ; 64 $resto->addElementText('comment',"$file supprimé"); 65 } 66 $dir = @opendir( 'SVG' ) ; 67 if ( $dir ) 68 { 69 while ( $f = readdir( $dir ) ) 70 { 71 list( $u, $e ) = explode( '.', $f ) ; 72 if ( $e != 'dat' ) continue ; 73 $resto->addElementSimple( 'sauvegarde',array('n'=>$u) ) ; 74 } 75 closedir( $dir ) ; 76 } 77 78 if ( $action != 'r' ) 79 { 80 $xml->affiche() ; 81 exit() ; 82 } 83 84 $c = new MYSQL ; 85 $current_tbl = '' ; 86 $first_ligne = $first_insert = $first_field = $cote = false ; $sql = '' ; 87 $f = fopen( 'SVG/'.$file, 'r' ) or die( 'No file...') ; 88 89 $restoi = &$resto->addElement( 'restauration' ) ; 90 // la cle 91 $b = fgets( $f, 1024 ) ; $cle = trim( $b ) ; 92 if ( feof( $f ) ) die( 'invalid file' ) ; 93 $table_begin = $cle."_TB" ; 94 $table_end = $cle."_TE" ; 95 $create_begin = $cle."_CB" ; 96 $create_end = $cle."_CE" ; 97 $data_begin = $cle."_DB" ; 98 $data_end = $cle."_DE" ; 99 $row_begin = $cle."_RB" ; 100 $row_end = $cle."_RE" ; 101 $field_begin = $cle."_FB" ; 102 $field_end = $cle."_FE" ; 103 104 // la date 105 $b = fgets( $f, 1024 ) ; 106 if ( feof( $f ) ) die( 'invalid file' ) ; 107 108 while( true ) 109 { 110 $b = fgets( $f, 1024 ) ; 111 if ( feof( $f ) ) break ; 112 $b = rtrim( $b ) ; 113 $token = explode( ' ', $b, 2 ) ; 114 if ( $token[0] == $table_begin ) 115 $current_tbl = $token[1] ; 116 elseif ( $token[0] == $table_end ) 117 $current_tbl = '' ; 118 elseif ( $token[0] == $create_begin ) 119 { 120 $sql = 'DROP TABLE IF EXISTS '.$current_tbl ; 121 $c->query( $sql ) ; 122 $sql = '' ; 123 } 124 elseif ( $token[0] == $create_end ) 125 { 126 $c->query( $sql ) ; 127 $restoi->addElementSimple( 'creation', 128 array('tbl'=>toXML($current_tbl) ) ); 129 } 130 elseif ( $token[0] == $data_begin ) 131 { 132 $nblignes=0 ; 133 } 134 elseif ( $token[0] == $data_end ) 135 { 136 $restoi->addElementSimple( 'table', 137 array( 'tbl'=>toXML($current_tbl), 'nb'=>$nblignes ) ) ; 138 } 139 elseif ( $token[0] == $row_begin ) 140 { 141 $sql = "INSERT INTO $current_tbl VALUES(" ; 142 $first_field = true ; 143 } 144 elseif ( $token[0] == $row_end ) 145 { 146 $sql.= ")" ; 147 $c->query( $sql ) ; 148 $nblignes++ ; 149 } 150 elseif ( $token[0] == $field_begin ) 151 { 152 if ( ! $first_field ) $sql .= ',' ; 153 $first_field = false ; 154 $cote = true ; 155 $first_ligne = true ; 156 $sql.= "'" ; 157 } 158 elseif ( $token[0] == $field_end ) 159 { 160 $cote = false ; 161 $sql.= "'" ; 162 } 163 else 164 { 165 if ( !$first_ligne ) $sql .= "\n" ; 166 $first_ligne = false ; 167 if ( $cote ) 168 $sql.= addslashes($b) ; 169 else 170 $sql.= $b ; 171 } 172 } 173 $resto->addElementText( 'comment', "Restauration depuis $file réussie" ) ; 174 fclose( $f ) ; 175 $c->close() ; 176 $xml->affiche() ; 177 ?>
Date de génération : 24/10/2008 21:34