phpMyAdmin从4.1.x升级到4.2.x注意事项

 更新时间:2016年11月25日 16:19  点击:1889
从phpMyAdmin4.2.0开始,phpMyAdmin 高级功能的默认数据库 phpmyadmin 中又新增了一张表 pma__savedsearches。所以利用升级脚本 update.sh 将 phpMyAdmin 从 4.1.x 升级到 4.2.x 后,登录 phpMyAdmin 会出现以下提示

phpMyAdmin 高级功能尚未完全设置,部分功能未激活。
点击查看提示信息,就会发现 $cfg['Servers'][$i]['savedsearches'] 出现错误提示。

 

备注:如果是全新安装LAMP一键安装脚本,则不受影响。

解决办法:
1、删除 phpMyAdmin 安装目录 /data/www/default/phpmyadmin 下旧的配置文件 config.inc.php,再下载最新的文件。
命令如下:
rm -f /data/www/default/phpmyadmin/config.inc.php
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/lamp/master/conf/config.inc.php -O /data/www/default/phpmyadmin/config.inc.php
chown apache:apache /data/www/default/phpmyadmin/config.inc.php
2、导入最新的 sql 文件,将数据库 phpmyadmin 中新增的一张表 pma__savedsearches 创建出来。在安装最新版 phpMyAdmin 时,update.sh 脚本已经把最新的 create_tables.sql 复制到网站服务器上传文件夹 upload/ 中。在 phpMyAdmin 的导入标签中,执行该 sql 文件即可。
phpMyAdmin从4.1.x升级到4.2.x注意事项
3、退出 phpMyAdmin,重新登录后,错误提示已经不存在了。
phpMyAdmin从4.1.x升级到4.2.x注意事项

 

 

本方法使用PHPEXCEL插件读取excel文件转化为数组了,后期还有没有完成的我们可以把转换成数组之后再保存到mysql数据库这个就非常的方便了。
 代码如下 复制代码

<?php
/**
 * @desc PHPEXCEL导入
 * return array();
 */
function importExcel($file)
{
    require_once 'PHPExcel.php';
    require_once 'PHPExcel/IOFactory.php';
    require_once 'PHPExcel/Reader/Excel5.php';
    $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
    $objPHPExcel = $objReader->load($file);
    $sheet = $objPHPExcel->getSheet(0);
    $highestRow = $sheet->getHighestRow(); // 取得总行数
    $highestColumn = $sheet->getHighestColumn(); // 取得总列数
    $objWorksheet = $objPHPExcel->getActiveSheet();
 
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
    $excelData = array();
    for ($row = 1; $row <= $highestRow; $row++) {
        for ($col = 0; $col < $highestColumnIndex; $col++) {
            $excelData[$row][] =(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
        }
    }
    return $excelData;
}
 
//用法:
importExcel('test.xsl');
在未看到这篇文章之前我们一般不会对于缓存这么看重,经过测试之后我们发现使用文件缓存比直接使用数据库要快几倍,下面测试是6倍之多哦,下面一起来看看吧。

在Thinkphp项目中测试各种环境下的程序执行时间
不使用缓存:

 代码如下 复制代码

<?php
header("content-type:text/html;charset=utf-8");
      
$starttime=caltime();//开始时间   

$articles=array();

//循环取出500条文章信息
for($i=0;$i<100;$i++){
   $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5";
   $articles=array_merge($articles,M('article')->query($sql));
}

$overtime=caltime();//结束时间

echo '不使用缓存条件下程序执行时间是:'.($overtime-$starttime).'秒';

?>

结果:不使用缓存条件下程序执行时间是:0.0600001811981秒

文件缓存:

 代码如下 复制代码

<?php
header("content-type:text/html;charset=utf-8");

$starttime=caltime();//开始时间

$articles=S('articles');
if(!$articles){
   $articles=array();
   //循环取出500条 www.111cn.net 文章信息
   for($i=0;$i<100;$i++){
       $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5";
       $articles=array_merge($articles,M('article')->query($sql));
   }
   S('articles',$articles,60);
}

$overtime=caltime();//结束时间

echo '使用文件缓存条件下程序执行时间是:'.($overtime-$starttime).'秒';
?>

结果:使用文件缓存条件下程序执行时间是:0.00999999046326秒

 代码如下 复制代码

<?php
header("content-type:text/html;charset=utf-8");
      
$starttime=caltime();//开始时间

$mem=new Memcache();
if(!$mem->connect('127.0.0.1',11211)){
   echo '连接失败';
}

$articles=$mem->get('articles');

if(!$articles){
   $articles=array();
   //循环取出500条文章信息
   for($i=0;$i<100;$i++){
       $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5";
       $articles=array_merge($articles,M('article')->query($sql));
   }
   $mem->set('articles',$articles,MEMCACHE_COMPRESSED,60);
}

$overtime=caltime();//结束时间

echo '使用memcache缓存条件下程序执行时间是:'.($overtime-$starttime).'秒';
?>

结果:使用memcache缓存条件下程序执行时间是:0.00999999046326秒

 代码如下 复制代码

<?php
header("content-type:text/html;charset=utf-8");
      
$starttime=caltime();//开始时间

$redis=new Redis();
$redis->connect('127.0.0.1','6379');

if(!$redis){
   echo '连接失败';
}

$articles=$redis->get('articles');

if(!$articles){
   $articles=array();
   //循环取出500条www.111cn.net文章信息
   for($i=0;$i<100;$i++){
       $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5";
       $articles=array_merge($articles,M('article')->query($sql));
   }
   $redis->setex('articles',60,$articles);
}

$overtime=caltime();//结束时间

echo '使用redis缓存条件下程序执行时间是:'.($overtime-$starttime).'秒';

?>

结果:使用redis缓存条件下程序执行时间是:0.00999999046326秒

可见使用缓存的条件下,程序的执行速度比不使用缓存的时候快了6倍,

但是不同缓存由于数据不是特别庞大,几乎没有什么差别

本文章给各位整理了三种php计划任务的例子,分别是利用了windows,linux及php的ignore_user_abort的函数来执行,下面我给大家分别举几个例子,有兴趣的朋友可进入参考。

WINDOWS中设置计划任务执行PHP文件

1、写一个PHP程序,命名为test.php,内容如下所示:

 代码如下 复制代码
<?
$fp = fopen("test.txt", "a+");
fwrite($fp, date("Y-m-d H:i:s") . " 成功成功了!n");
fclose($fp);
?>

程序大胆地写,什么include/require尽管用,都没问题
2、新建Bat文件,命名为test.bat,内容如下所示:

D:phpphp.exe -q D:websitetest.php

3、建立WINDOWS计划任务:
开始–>控制面板–>任务计划–>添加任务计划
浏览文件夹选择上面的bat文件
设置时间和密码(登陆WINDOWS的)
保存即可了。
4、大功告成! 可以右键计划任务点“运行”试试

用PHP脚本实现定时任务

PHP脚本执行时间限制,默认的是30m 解决办法:set_time_limit();或者修改PHP.ini 设置max_execution_time时间(不推荐)
如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即使关闭页面依然正常执行
如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep使用程序休眠一会,然后在执行
 
PHP定时执行的代码:

 代码如下 复制代码

<?php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=5;// 每隔5s运行
 
//方法1--死循环
do{
echo '测试'.time().'<br/>';
sleep($interval);// 等待5s
}while(true);
 
//方法2---sleep 定时执行
require_once './curlClass.php';//引入文件
 
$curl = new httpCurl();//实例化
$stime = $curl->getmicrotime();
for($i=0;$i<=10;$i++){
 
echo '测试'.time().'<br/>';
sleep($interval);// 等待5s
 
}
ob_flush();
flush();
$etime = $curl->getmicrotime();
echo '<hr>';
echo round(($etime-stime),4);//程序执行时间

Linux的Crontab执行PHP脚本

一、在Crontab中使用PHP执行脚本
就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本。
每一小时执行myscript.php如下:

 代码如下 复制代码
 # crontab -e
00 * * * * /usr/local/bin/php /home/john/myscript.php

/usr/local/bin/php为PHP程序的路径。
二、在Crontab中使用URL执行脚本
如果你的PHP脚本可以通过URL触发,你可以使用lynx或curl或wget来配置你的Crontab。
下面的例子是使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。但是,像下面的,我们在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。

 代码如下 复制代码
00 * * * * lynx -dump /myscript.php

 
下面的例子是使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出。使用"curl -o"选项,你也可以把脚本的输出转储到临时文件。

 代码如下 复制代码

*/5 * * * * /usr/bin/curl -o temp.txt /myscript.php

 
下面的例子是使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。"-O temp.txt"表示输出会发送到临时文件。

 代码如下 复制代码
 */10 * * * * /usr/bin/wget -q -O temp.txt /myscript.php
今天看到一个站长写了一个文件批量插件了,也是利用php写了,个人感觉还非常的不错于是整理一下给各位同学参考一下有兴趣的可下载测试一下。

说明:
uploadx php批量上传组件遵循开源协议(GPL),任何个人、组织可自由对本程序进行使用、二次开发等权力。
由此也将声明本人不对您个人、组织使用本程序所带来的商业利益及损失有干涉及负责,但请保留版权信息。
也欢迎对uploadx提出保贵的建议及意见,不胜感激。
本程序使用PHP程序编写,能更高效的批量处理PHP开发中的文件上传,图片处理、批量添加图片水印等问题,在使用本程序前请详细阅读使用说明!

HTML表单页

 代码如下 复制代码

<form enctype="multipart/form-data" action="uploadx.php" method="post">  
    <input name="uploadx[]" type="file">  
    <input name="uploadx[]" type="file">  
    <input type="submit" value="上传">  
</form>  

uploadx.php处理页

require ('./classes/uploadx.class.php'); 
 
$uploadx = new uploadx; 
 
$uploadx->save = './temp'; 
$uploadx->name = 'auto'; 
$uploadx->mini = '200,200,mini'; 
$uploadx->mark = './images/logo.png,0,60'; 
print_r($uploadx->is()); 

参数说明:

$uploadx->save
上传文件的保存目录
$uploadx->name;
上传文件的命名方式
参数说明
auto=自动随机文件名,
null=原文件名(覆盖),
其他自定义如按时间:date('YmdHis'); 
$uploadx->mini;
生成缩略图参数
width = 生成缩略图宽度。
height = 生成缩略图高度。
mini = 生成缩略图文件后缀附加名
默认留空不生成缩略图; 
$uploadx->mark;
上传图片文件添加水印参数:
水印文件,水印位置,水印透明度

位置参数说明:
0 = 随机;
1 = 左上角;
2 = 顶部居中;
3 = 右上角;
4 = 左居中;
5 = 中部居中;
6 = 右居中;
7 = 左下角;
8 = 底部居中;
9 = 右下角;

$uploadx->is(true);
返回已上传文件的数组
is参数说明:
true = 返回所有上传文件
false = 过滤失败文件 
$uploadx->is(); 
返回数据数组格式说明:
name = 上传后已保存的文件名
mini = 生成缩略图的文件名
mark = 添加水印状态,1表示成功,否则失败
code = 错误代码:0表示上传成功
error = 错误信息:上传错误时提示的错误信息
其中生成缩略图和添加水印功能也可单独使用!

以上是对uploadx2.0 进行简单的介绍, 
也欢迎各位能在使用过程中进行改进补充

例子

 代码如下 复制代码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>uploadx demo</title>
</head>

<body>
<form enctype="multipart/form-data" action="uploadx.php" method="post">
 <input name="uploadx[]" type="file"> <br />
 <input name="uploadx[]" type="file"> <br />
 <input name="uploadx[]" type="file"> <br />
 <input name="uploadx[]" type="file"> <br />
 <br />
 <input type="submit" value="上传所选文件">
</form>
</body>
</html>

<?php

require ('./classes/uploadx.class.php');

$uploadx = new uploadx;

$uploadx->save = './temp';
$uploadx->name = 'auto';
$uploadx->mini = '200,200,mini';
$uploadx->mark = './images/logo.png,0,60';
print_r($uploadx->mini('./temp/2.jpg'));


uploadx.class.php

<?php

class uploadx {
  var $form = 'uploadx';
  var $save = './';  
  var $size = '1024';
  var $type = 'gif,bmp,png,jpg,jpeg,swf,flv,mp3,wma,rar,zip,7z,doc,docx,ppt,pptx,xls,xlsx,txt,pdf';
  var $name = null;
  var $mini = null;
  var $mark = null;
  var $version = '2.0';

  public function is($type = true){
   foreach ($this->files() as $key => $val) {
    $file = $mini = null;
    $file = $this->saves($val['name'], $val['type'], $val['tmp_name'], $val['size'], $val['error']);
    $file['code'] || $file['path'] = rtrim($this->save,'/').'/'.$file['name'];
    $file['code'] || $file['mini'] = $this->mini($file['path']);  
    $file['code'] || $file['mark'] = $this->mark($file['path']);    
    $file['code'] && $file['error'] = $this->error($file['code']);
    $type ? $files[] = $file :  ($file['code'] || $files[] = $file);
   }
    return isset($files) ? $files : array();
  }
  private function files(){
   if(count($_FILES[$this->form])<1) return array();
   if(is_array($_FILES[$this->form]['name'])){
    for($i=0; $i<count($_FILES[$this->form]['name']); $i++) {
     if($_FILES[$this->form]['error'][$i]==4) continue;
     $files[] = array(
      'name'=>$_FILES[$this->form]['name'][$i],
      'type'=>$_FILES[$this->form]['type'][$i],
      'tmp_name'=>$_FILES[$this->form]['tmp_name'][$i],
      'error'=>$_FILES[$this->form]['error'][$i],
      'size'=>$_FILES[$this->form]['size'][$i]);
    } 
   }else{
     $files[] = $_FILES[$this->form];
   }
     return $files;
  }
  private function saves($name, $type, $temp, $size, $error){  
    if($error) return array('name'=>$name, 'code'=>$error);
    $prefix = strtolower(pathinfo($name, PATHINFO_EXTENSION));
    if(!in_array($prefix, explode(',', strtolower($this->type)))){
     return array('name'=>$name, 'code'=>'-1');
    }
    if($size/1024>$this->size){
     return array('name'=>$name, 'code'=>'-2');
    }
    if(!is_dir($this->save)){
     if(!mkdir($this->save, 0777, TRUE)){
     return array('name'=>$name, 'code'=>'-3');
     }     
    }
    $filename = $this->name ? ($this->name=='auto' ? uniqid() : $this->name) : trim(basename($name,$prefix),'.');
    $savefile = trim($this->save,'/').'/'. $filename.'.'.$prefix;
    if(!@move_uploaded_file($temp,$savefile)){
     return array('name'=>$name, 'code'=>'-4');
    }
     @chmod($savefile,0777); 
    return array('name'=>$filename.'.'.$prefix, 'code'=>0);
  }
  public function mini($file = null){
   if(!$file || !$this->mini) return false;
   if(!is_file($file)) return $this->error(-5,$file);
   list($width, $height, $extends) = explode(',', $this->mini);
   $types = array('gif','png','jpg','jpeg');
   $type = pathinfo($file, PATHINFO_EXTENSION);
   if(!in_array($type, $types)) return $this->error(-6);
   if(!is_file($file)) return $this->error(-5,$file);
   $mini = $extends ? basename($file, $type).$extends.'.'.$type : trim(basename($file),'.');
   $image = imagecreatefromstring(file_get_contents($file));
   $imagex = imagesx($image);
   $imagey = imagesy($image);
   $scale = $width / $imagex;
   if($width>$imagex){
    $mini_width = $imagex;
    $mini_height = $imagey;
   }else{
    $mini_width = $width;
    $mini_height = round($scale * $imagey);
   }
   if(function_exists('imagecreatetruecolor') && function_exists('imagecopyresampled')){
    $temp = imagecreatetruecolor($mini_width, $mini_height);
    imagecopyresampled($temp,$image,0,0,0,0,$mini_width, $mini_height, $imagex, $imagey);
   }else{
    $temp = imagecreate($mini_width, $mini_height);
    imagecopyresized($temp,$image,0,0,0,0,$mini_width, $mini_height, $imagex, $imagey);    
   }
    imagejpeg($temp, rtrim($this->save,'/').'/'.$mini, 100);
    imagedestroy($temp);
    imagedestroy($image);

   return is_file(rtrim($this->save,'/').'/'.$mini) ? $mini: false;
  }
  public function mark($file = null){
     if(!$file || !$this->mark) return false;     
     list($watermark, $position, $opacity) = explode(',', $this->mark);
     if(!is_file($file) || !is_file($watermark)) return $this->error(-5,'FILE='.$file.'||'.'Watermark='.$watermark);
   $type = pathinfo($file, PATHINFO_EXTENSION);
   $types = array('gif','png','jpg','jpeg');
   if(!in_array($type, $types)) return $this->error(-6,$file);
         $opacity = min($opacity,100);
   $file_data = imagecreatefromstring(file_get_contents($file));
         $file_width = imagesx($file_data);
         $file_height = imagesy($file_data);
         if (in_array(pathinfo($watermark, PATHINFO_EXTENSION), array('gif','png'))) {
          $mark_data = imagecreatefromstring(file_get_contents($watermark));
          $mark_width = imagesx($mark_data);
          $mark_height =  imagesy($mark_data);
          switch($position){
              case 1: $x = 5; $y = 5; break;
              case 2: $x = ($file_width - $mark_width)/2; $y = $mark_height; break;
              case 3: $x = ($file_width - $mark_width)-5; $y = $mark_height; break;
              case 4: $x = 5; $y = ($file_height - $mark_height) / 2; break;
              case 5: $x = ($file_width - $mark_width)/2; $y = ($file_height - $mark_height)/2; break;
              case 6: $x = ($file_width - $mark_width)-5; $y = ($file_height - $mark_height)/2; break;
              case 7: $x = 5; $y = ($file_height - $mark_height) - 5; break;
              case 8: $x = ($file_width - $mark_width)/2; $y = ($file_height - $mark_height)-5; break;
              case 9: $x = ($file_width - $mark_width)-5; $y = ($file_height - $mark_height)-5; break;
              default: $x = rand(0,($file_width - $mark_width)); $y = rand(0,($file_height - $mark_height));
          } 
     $temp = imagecreatetruecolor($mark_width, $mark_height); 
        imagecopy($temp, $file_data, 0, 0, $x, $y, $mark_width, $mark_height); 
        imagecopy($temp, $mark_data, 0, 0, 0, 0, $mark_width, $mark_height); 
        imagecopymerge($file_data, $temp, $x, $y, 0, 0, $mark_width, $mark_height, $opacity);          
           imagejpeg($file_data, $file, 100);
           imagedestroy($temp);
           imagedestroy($file_data);
           imagedestroy($mark_data);
           return true;
         }else{
           return $this->error(-6,$watermark);
         } www.111cn.net
  }
  private function error($code = 0, $extends = ''){
   if($code){
   switch ($code) {    
    case 6:  $error = '写入临时文件夹失败'; break;
    case 5:  $error = '写入系统临时文件夹错误'; break;
    case 4:  $error = '没有文件被上传请检查表单'; break;
    case 3:  $error = '文件上传出错上传不完整'; break;
    case 2:  $error = '文件大小超出表单限制'; break;
    case 1:  $error = '文件大小超出系统限制'; break;
    case -1: $error = '上传文件类型不合法'; break;
    case -2: $error = '上传文件大小超出后台限制'; break;  
    case -3: $error = '创建文件保存路径失败'; break; 
    case -4: $error = '保存文件失败请检查路径'; break; 
    case -5: $error = '读取文件错误'; break; 
    case -6: $error = '不支持该操作'; break; 
    default: $error = '未知错误';
   }
    return  '['.$code.']:'.$error.$extends;
   }else{
    return false; 
   } 
  }

}

 

[!--infotagslink--]

相关文章

  • phpmyadmin config.inc.php配置示例

    phpmyadmin config.inc.php配置示例...2013-09-29
  • 总结android studio注意事项及打不开等问题解决方法

    经过一段时间的使用,总结了android studio打不开等问题的6种解决方法及android studio注意事项,希望对大家有所帮助。 1 首次运行,建立好项目需要下载一些东西,如果...2016-09-20
  • 使用phpMyAdmin批量修改Mysql数据表前缀的方法

    多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分。而如何批量修改已有数据库的前缀名呢?全部导出修改后再导入?还是一个表一个表的修改?今天我要介绍的是相对简单的...2015-10-21
  • phpMyadmin创建数据库和设置用户权限图解

    phpmyadmin是一款很不错的WEB对mysql数据库管理软件,如果你想创建数据库与设置用户权限我们必须操作用户的很高的权限,如ROOT权限,下面我来给大家介绍介绍。 先来配...2016-11-25
  • 升级IDEA后Lombok不能使用的解决方法

    最近看到提示IDEA提示升级,寻思已经有好久没有升过级了。升级完毕重启之后,突然发现好多错误,本文就来介绍一下如何解决,感兴趣的可以了解一下...2021-07-14
  • 修改mysql密码phpmyadmin不能登录

    出现phpmyadmin不能登录是我在修改我mysql服务器密码之后导致的,后来百度了相关的原因,原来是修改了mysql密码之后我们还需要在phpmyadmin目录中去修改config.inc.php中...2016-11-25
  • anaconda升级sklearn版本的实现方法

    这篇文章主要介绍了anaconda升级sklearn版本的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-22
  • Android Gradle Plug 4.1.0 升级后gradle获取manifest位置失败问题解决

    这篇文章主要介绍了Android Gradle Plug 4.1.0 升级后gradle获取manifest位置失败问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-18
  • phpmyadmin不能登录,无任何提示的问题解决

    昨天有一朋友说自己的phpmyadmin不能登录并且无任何提示了,问我怎么解决,下面我来分享一下关于phpmyadmin不能登录问题总结. phpmyadmin不能登录没有提示 解决方法:...2016-11-25
  • Illustrator文字转曲的操作方法与注意事项分享

    今天小编在这里就来给Illustrator的这一款软件的使用者们来说一说文字转曲的操作方法以及注意事项,各位想知道具体信息的使用者们,那么下面就快来跟着小编一起看看吧。...2016-09-14
  • Delphi 实现软件自动升级的功能

    这篇文章主要介绍了Delphi 实现软件自动升级的功能的相关资料,希望通过本文能帮助到大家实现这样的功能,需要的朋友可以参考下...2020-06-30
  • phpMyAdmin 高级功能设置的方法图解

    phpmyadmin还有高级功能可能大部份站长不知道吧,今天本文章就来给大家介绍phpMyAdmin 高级功能设置的方法图解,希望文章对大家会有所帮助。 phpMyAdmin 安装后,默认...2016-11-25
  • AndroidStudio升级4.1后启动失败Plugin问题解决

    这篇文章主要介绍了AndroidStudio升级4.1后启动失败Plugin问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-18
  • phpmyadmin写入一句话木马的测试

    下面我们一起来看看一篇关于phpmyadmin写入一句话木马的测试教程,希望此教程能够对各位有帮助。 方法一,一句话木马偶尔拿到一个config中,发现是root,且还有phpmyadmi...2016-11-25
  • linux系统下pip升级报错的解决方法

    这篇文章主要给大家介绍了关于linux系统下pip升级报错的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-31
  • phpmyadmin无法登录提示please check errors given in your PHP

    下面来给各位同学介绍关于phpmyadmin无法登录提示please check errors given in your PHP and/or webserver,希望例子对各位有帮助。 今天帮别人弄网站的时候要...2016-11-25
  • IIS 环境下配置PHP5+MySql+PHPMyAdmin

    虽然主要是做.net开发的,但是,时不时的还要搞一下php,但是,php在windows下的配置,总是走很多弯路,正好前几天又配置了一下,因此总结在这里,做为自己的备忘,也希望给遇到问题的朋友们提供一些帮助。...2016-01-27
  • phpmyadmin无法登陆无响应问题解决办法

    phpmyadmin无法登陆无响应一般是session或cookie设置问题了,下文小编也是因为cookie与 session目录设置问题导致phpmyadmin不能正常登录了。 之前由于修改php.ini...2016-11-25
  • 微信小程序页面开发注意事项整理

    这篇文章主要介绍了微信小程序页面开发注意事项整理的相关资料,需要的朋友可以参考下...2017-05-22
  • 网页页面控制注意事项

    1、检查标题。2、检查版权信息,尤其是电话号码。3、图片、文件定位问题。4、产品页面首页指向产品类别问题。5、文章页面首页指向文章类别问题。6、产品图片大小...2016-09-20