Platon Technologies
neprihlásený Prihlásiť Registrácia
SlovakEnglish
open source software development oslavujeme 10 rokov vývoja otvoreného softvéru! Utorok, 13. október 2026

Rozdiely pre phpMyEdit/phpMyEditSetup.php medzi verziami 1.52 a 1.53

verzia 1.52, 2014/10/06 03:12:33 verzia 1.53, 2017/05/23 13:52:15
Riadok 19 
Riadok 19 
  * http://platon.sk/projects/phpMyEdit/   * http://platon.sk/projects/phpMyEdit/
  */   */
   
 /* $Platon: phpMyEdit/phpMyEditSetup.php,v 1.51 2010-09-20 01:00:49 nepto Exp $ */  /* $Platon: phpMyEdit/phpMyEditSetup.php,v 1.52 2014-10-06 03:12:33 nepto Exp $ */
   
 ?>  ?>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
Riadok 112  function echo_buffer($x)
Riadok 112  function echo_buffer($x)
 #:#              constraint is found. #:#  #:#              constraint is found. #:#
 #:#  Contributed by Wade Ryan,        #:#  #:#  Contributed by Wade Ryan,        #:#
 #:#                 20060906          #:#  #:#                 20060906          #:#
   #:#  Modified for PHP 7 by Igor Mino, #:#
   #:#                 20170523          #:#
 #:#####################################:#  #:#####################################:#
 function check_constraints($tb,$fd)  function check_constraints($tb,$fd)
 {  {
   $query    = "show create table $tb";    global $dbl;
   $result   = mysql_query($query);    $fds = mysqli_query($dbl, 'SHOW CREATE TABLE '.$tb);
   $tableDef = preg_split('/\n/',mysql_result($result,0,1));    $row = mysqli_fetch_array($fds,  MYSQLI_NUM);
     $tableDef = preg_split('/\n/', $row[1]);
   $constraint_arg="";    $constraint_arg="";
   while (list($key,$val) = each($tableDef)) {    while (list($key,$val) = each($tableDef)) {
     $words=preg_split("/[\s'`()]+/", $val);      $words=preg_split("/[\s'`()]+/", $val);
Riadok 161  function get_versions()
Riadok 163  function get_versions()
         return $ret_ar;          return $ret_ar;
 }  }
   
   if (!function_exists('mysqli_field_flags')) {
           function mysqli_field_flags($mysqli_result, $field_offset) {
                   $flags = array();
                   $constants = get_defined_constants( true );
                   foreach ($constants['mysqli'] as $c => $n) {
                           if (preg_match('/MYSQLI_(.*)_FLAG$/', $c, $m))
                                   if (!array_key_exists($n, $flags))
                                           $flags[$n] = $m[1];
                           $flags_num = mysqli_fetch_field_direct( $mysqli_result, $field_offset );
                           if (is_null($flags_num)) continue;
                           $flags_num = $flags_num->flags;
                           $result = array();
                           foreach ($flags as $n => $t)
                                   if ($flags_num & $n)
                                           $result[] = $t;
                           $returnFlags = implode(' ', $result);
                           $returnFlags = str_replace( 'PRI_KEY', 'PRIMARY_KEY', $returnFlags);
                           $returnFlags = strtolower($returnFlags);
                   }
                   return $returnFlags;
           }
   }
   
   function convert_mysqli_type($mysqli_type) {
           $convert = array(
                   'int'        => 'int',
                   'double'     => 'real',
                   'float'      => 'real',
                   'decimal'    => 'real',
                   'numeric'    => 'real',
                   'char'       => 'string',
                   'enum'       => 'string',
                   'set'        => 'string',
                   'blob'       => 'blob',
                   'text'       => 'blob',
           );
           foreach ($convert as $needle => $ret) {
                   if (stristr($mysqli_type, $needle) !== false) {
                           return $ret;
                   }
           }
           return $mysqli_type;
   }
   
   
 $self = basename($_SERVER['PHP_SELF']);  $self = basename($_SERVER['PHP_SELF']);
 $dbl  = @mysql_pconnect($hn, $un, $pw, strlen($ssl) ? MYSQL_CLIENT_SSL : null);  $dbl  = @mysqli_connect('p:'.$hn, $un, $pw, strlen($ssl) ? MYSQL_CLIENT_SSL : null);
   
 if ((!$dbl) or empty($submit)) {  if ((!$dbl) or empty($submit)) {
         echo '<h1>Please log in to your MySQL database</h1>';          echo '<h1>Please log in to your MySQL database</h1>';
Riadok 199  if ((!$dbl) or empty($submit)) {
Riadok 245  if ((!$dbl) or empty($submit)) {
                 <input type="submit" name="submit" value="Submit">                  <input type="submit" name="submit" value="Submit">
                 </form>'.PHP_EOL;                  </form>'.PHP_EOL;
 } else if (empty($db)) {  } else if (empty($db)) {
         $dbs     = @mysql_list_dbs($dbl);          $result = mysqli_query($dbl, 'SHOW DATABASES');
         $num_dbs = @mysql_num_rows($dbs);          $dbs = array();
           while (($row = mysqli_fetch_array($result,  MYSQLI_NUM)) != false) $dbs[] = $row[0];
         echo '<h1>Please select a database</h1>          echo '<h1>Please select a database</h1>
                 <form action="'.htmlspecialchars($self).'" method="POST">                  <form action="'.htmlspecialchars($self).'" method="POST">
                 <input type="hidden" name="hn" value="'.htmlspecialchars($hn).'">                  <input type="hidden" name="hn" value="'.htmlspecialchars($hn).'">
Riadok 208  if ((!$dbl) or empty($submit)) {
Riadok 255  if ((!$dbl) or empty($submit)) {
                 <input type="hidden" name="pw" value="'.htmlspecialchars($pw).'">                  <input type="hidden" name="pw" value="'.htmlspecialchars($pw).'">
                 <input type="hidden" name="ssl" value="'.htmlspecialchars($ssl).'">                  <input type="hidden" name="ssl" value="'.htmlspecialchars($ssl).'">
                 <table border="1" cellpadding="1" cellspacing="1" summary="Database selection">'.PHP_EOL;                  <table border="1" cellpadding="1" cellspacing="1" summary="Database selection">'.PHP_EOL;
         for ($i = 0; $i < $num_dbs; $i++) {          if (is_array($dbs)) foreach ($dbs as $db) {
                 $db = @mysql_db_name($dbs, $i);  
                 $checked = ! strcasecmp($un, $db) ? ' checked' : '';                  $checked = ! strcasecmp($un, $db) ? ' checked' : '';
                 $db = htmlspecialchars($db);                  $db = htmlspecialchars($db);
                 echo '<tr><td><input'.$checked.' type="radio" name="db" value="'.$db.'"></td><td>'.$db.'</td></tr>'.PHP_EOL;                  echo '<tr><td><input'.$checked.' type="radio" name="db" value="'.$db.'"></td><td>'.$db.'</td></tr>'.PHP_EOL;
Riadok 227  if ((!$dbl) or empty($submit)) {
Riadok 273  if ((!$dbl) or empty($submit)) {
                 <input type="hidden" name="db" value="'.htmlspecialchars($db).'">                  <input type="hidden" name="db" value="'.htmlspecialchars($db).'">
                 <input type="hidden" name="ssl" value="'.htmlspecialchars($ssl).'">                  <input type="hidden" name="ssl" value="'.htmlspecialchars($ssl).'">
                 <table border="1" cellpadding="1" cellspacing="1" summary="Table selection">'.PHP_EOL;                  <table border="1" cellpadding="1" cellspacing="1" summary="Table selection">'.PHP_EOL;
         $tbs     = @mysql_list_tables($db, $dbl);          $result = mysqli_query($dbl, 'SHOW TABLES FROM '.$db);
         $num_tbs = @mysql_num_rows($tbs);          $tbs = array();
         for ($j = 0; $j < $num_tbs; $j++) {          while (($row = mysqli_fetch_array($result,  MYSQLI_NUM)) != false) $tbs[] = $row[0];
                 $tb = @mysql_tablename($tbs, $j);          if (is_array($tbs)) foreach ($tbs as $tb) {
                 $tb = htmlspecialchars($tb);                  $checked = '';
                 $checked = $j == 0 ? ' checked' : '';  
                 echo '<tr><td><input'.$checked.' type="radio" name="tb" value="'.$tb.'"></td><td>'.$tb.'</td></tr>'.PHP_EOL;                  echo '<tr><td><input'.$checked.' type="radio" name="tb" value="'.$tb.'"></td><td>'.$tb.'</td></tr>'.PHP_EOL;
         }          }
         echo '</table><br>          echo '</table><br>
Riadok 261  if ((!$dbl) or empty($submit)) {
Riadok 306  if ((!$dbl) or empty($submit)) {
                 <table border="1" cellpadding="1" cellspacing="1" summary="Key selection">'.PHP_EOL;                  <table border="1" cellpadding="1" cellspacing="1" summary="Key selection">'.PHP_EOL;
 //              <tr><td><input type="radio" name="id" value="">  //              <tr><td><input type="radio" name="id" value="">
 //              <td><i>None</i></td><td><i>No id field required</i></td></tr>  //              <td><i>None</i></td><td><i>No id field required</i></td></tr>
         @mysql_select_db($db);          @mysqli_select_db($dbl, $db);
         $tb_desc = @mysql_query("DESCRIBE $tb");          $tb_desc = @mysqli_query("DESCRIBE $tb");
         $fds     = @mysql_list_fields($db,$tb,$dbl);          $fds     = mysqli_query($dbl, 'SHOW COLUMNS FROM '.$db.'.'.$tb);
         for ($j = 0; ($fd = @mysql_field_name($fds, $j)) != false; $j++) {          for ($j = 0; ($finfo = mysqli_fetch_array($fds, MYSQLI_ASSOC)) != false; $j++) {
                 $ff = @mysql_field_flags($fds, $j);                  $checked = stristr($finfo['Key'], 'primary_key') ? ' checked' : '';
                 strlen($ff) <= 0 && $ff = '---';                  echo '<tr><td><input',$checked,' type="radio" name="id" value="'.htmlspecialchars($finfo['Field']).'"></td>';
                 $checked = stristr($ff, 'primary_key') ? ' checked' : '';                  echo '<td>'.htmlspecialchars($finfo['Field']).'</td>';
                 echo '<tr><td><input',$checked,' type="radio" name="id" value="',htmlspecialchars($fd),'"></td>';                  echo '<td>'.htmlspecialchars($finfo['Type']).'</td>';
                 echo '<td>',htmlspecialchars($fd),'</td>';                  echo '<td>'.htmlspecialchars($finfo['Key']).'</td>';
                 echo '<td>',htmlspecialchars($ff),'</td>';  
                 $r = @mysql_fetch_array($tb_desc, $j);  
         }          }
         echo '</table><br>          echo '</table><br>
                 <input type="submit" name="submit" value="Submit">                  <input type="submit" name="submit" value="Submit">
Riadok 347  if ((!$dbl) or empty($submit)) {
Riadok 390  if ((!$dbl) or empty($submit)) {
         if ($id == '') {          if ($id == '') {
                 echo_buffer("\$opts['key_type'] = '';");                  echo_buffer("\$opts['key_type'] = '';");
         } else {          } else {
                 $fds = @mysql_list_fields($db,$tb,$dbl);                  $fds = mysqli_query($dbl, 'SHOW COLUMNS FROM '.$db.'.'.$tb);
                 for ($j = 0; ($fd = @mysql_field_name($fds, $j)) != ''; $j++) {                  for ($j = 0; ($finfo = mysqli_fetch_array($fds, MYSQLI_ASSOC)) != false; $j++) {
                         if ($fd == $id) {                          if ($finfo['Field'] == $id) {
                                 echo_buffer("\$opts['key_type'] = '".@mysql_field_type($fds, $j)."';");                                  echo_buffer("\$opts['key_type'] = '".convert_mysqli_type($finfo['Type'])."';");
                                 break;                                  break;
                         }                          }
                 }                  }
Riadok 444  appear in generated list. Here are some
Riadok 487  appear in generated list. Here are some
 */  */
 ");  ");
   
         @mysql_select_db($db);          @mysqli_select_db($dbl, $db);
         $tb_desc = @mysql_query("DESCRIBE $tb");          $tb_desc = mysqli_query($dbl, "DESCRIBE $db.$tb");
         $fds     = @mysql_list_fields($db, $tb, $dbl);          $ts_cnt = 0;
         $num_fds = @mysql_num_fields($fds);          while (($finfo = mysqli_fetch_array($tb_desc, MYSQLI_ASSOC)) != false) {
         $ts_cnt  = 0;                  $fd = $finfo['Field'];
         for ($k = 0; $k < $num_fds; $k++) {                  $fm = $finfo['Type'];
                 $fd = mysql_field_name($fds,$k);  
                 $fm = mysql_fetch_field($fds,$k);  
                 $fn = strtr($fd, '_-.', '   ');                  $fn = strtr($fd, '_-.', '   ');
                 $fn = preg_replace('/(^| +)id( +|$)/', '\\1ID\\2', $fn); // uppercase IDs                  $fn = preg_replace('/(^| +)id( +|$)/', '\\1ID\\2', $fn); // uppercase IDs
                 $fn = ucfirst($fn);                  $fn = ucfirst($fn);
                 $row = @mysql_fetch_array($tb_desc);  
                 echo_buffer('$opts[\'fdd\'][\''.$fd.'\'] = array('); // )                  echo_buffer('$opts[\'fdd\'][\''.$fd.'\'] = array('); // )
                 echo_buffer("  'name'     => '".str_replace('\'','\\\'',$fn)."',");                  echo_buffer("  'name'     => '".str_replace('\'','\\\'',$fn)."',");
                 $auto_increment = strstr($row[5], 'auto_increment') ? 1 : 0;                  $auto_increment = strstr($finfo['Extra'], 'auto_increment') ? 1 : 0;
                 if (substr($row[1],0,3) == 'set') {                  if (substr($finfo['Type'],0,3) == 'set') {
                         echo_buffer("  'select'   => 'M',");                          echo_buffer("  'select'   => 'M',");
                 } else {                  } else {
                         echo_buffer("  'select'   => 'T',");                          echo_buffer("  'select'   => 'T',");
Riadok 468  appear in generated list. Here are some
Riadok 508  appear in generated list. Here are some
                         echo_buffer("  'options'  => 'AVCPDR', // auto increment");                          echo_buffer("  'options'  => 'AVCPDR', // auto increment");
                 }                  }
                 // timestamps are read-only                  // timestamps are read-only
                 else if (@mysql_field_type($fds, $k) == 'timestamp') {                  else if ($finfo['Type'] == 'timestamp') {
                         if ($ts_cnt > 0) {                          if ($ts_cnt > 0) {
                                 echo_buffer("  'options'  => 'AVCPD',");                                  echo_buffer("  'options'  => 'AVCPD',");
                         } else { // first timestamp                          } else { // first timestamp
Riadok 476  appear in generated list. Here are some
Riadok 516  appear in generated list. Here are some
                         }                          }
                         $ts_cnt++;                          $ts_cnt++;
                 }                  }
                 echo_buffer("  'maxlen'   => ".@mysql_field_len($fds,$k).',');                  preg_match('/\((.*)\)/', 'varchar(11)', $matches);
                   $maxlen = max(1, intval($matches[1]));
                   echo_buffer("  'maxlen'   => ".$maxlen.',');
                 // blobs -> textarea                  // blobs -> textarea
                 if (@mysql_field_type($fds,$k) == 'blob') {                  if ($finfo['Type'] == 'blob') {
                         echo_buffer("  'textarea' => array(");                          echo_buffer("  'textarea' => array(");
                         echo_buffer("    'rows' => 5,");                          echo_buffer("    'rows' => 5,");
                         echo_buffer("    'cols' => 50),");                          echo_buffer("    'cols' => 50),");
                 }                  }
                 // SETs and ENUMs get special treatment                  // SETs and ENUMs get special treatment
                 if ((substr($row[1],0,3) == 'set' || substr($row[1],0,4) == 'enum')                  if ((substr($finfo['Type'],0,3) == 'set' || substr($finfo['Type'],0,4) == 'enum')
                                 && ! (($pos = strpos($row[1], '(')) === false)) {                                  && ! (($pos = strpos($finfo['Type'], '(')) === false)) {
                         $indent = str_repeat(' ', 18);                          $indent = str_repeat(' ', 18);
                         $outstr = substr($row[1], $pos + 2, -2);                          $outstr = substr($finfo['Type'], $pos + 2, -2);
                         $outstr = explode("','", $outstr);                          $outstr = explode("','", $outstr);
                         $outstr = str_replace("''", "'",  $outstr);                          $outstr = str_replace("''", "'",  $outstr);
                         $outstr = str_replace('"', '\\"', $outstr);                          $outstr = str_replace('"', '\\"', $outstr);
Riadok 495  appear in generated list. Here are some
Riadok 537  appear in generated list. Here are some
                         echo_buffer("  'values'   => array(".PHP_EOL.$indent.'"'.$outstr.'"),');                          echo_buffer("  'values'   => array(".PHP_EOL.$indent.'"'.$outstr.'"),');
                 }                  }
                 // automatic support for Default values                  // automatic support for Default values
                 if ($row[4] != '' && $row[4] != 'NULL') {                  if ($finfo['Default'] != '' && $finfo['Default'] != 'NULL') {
                         echo_buffer("  'default'  => '".$row[4]."',");                          echo_buffer("  'default'  => '".$finfo['Default']."',");
                 } else if ($auto_increment) {                  } else if ($auto_increment) {
                         echo_buffer("  'default'  => '0',");                          echo_buffer("  'default'  => '0',");
                 }                  }
Riadok 560  END;
Riadok 602  END;
         $filehandle = @fopen('./'.$contentFile, 'w+');          $filehandle = @fopen('./'.$contentFile, 'w+');
         if ($filehandle) {          if ($filehandle) {
                 fwrite($filehandle, $buffer);                  fwrite($filehandle, $buffer);
                 flush($filehandle);  
                 fclose($filehandle);                  fclose($filehandle);
                 echo 'phpMyEdit content file written successfully<br>';                  echo 'phpMyEdit content file written successfully<br>';
         } else {          } else {

Legend:
Odstranené z verzie1.52  
zmenené riadky
  Pridané vo verzii1.53

Platon Group <platon@platon.sk> http://platon.sk/
Copyright © 2002-2006 Platon Group
Stránka používa redakčný systém Metafox
Na začiatok