php+mysql 数据库后台传输中文乱码问题?
在 数据库连接后 $link = mysqli_connect(HOST, DB_USER, DB_PWD, DB);
设置 编码 // 修改数据库连接字符集为 utf8
mysqli_set_charset($link,"utf8");
!!!一个 中文乱码 小问题 半天也解决不了
改变 编码不统一 可能导致 无法插入数据mysql_query(mysql, “SET CHARACTER SET GBK”);
mysql_query(mysql, “SET CHARACTER SET utf8”);
与 SET NAMES utf8
有什么区别mysql_query("SET NAMES UTF8");
数据库下 通过 SHOW VARIABLES LIKE 'character%';
命令查看 当前编码
//设置字符集为utf8,解决中文乱码的问题
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET CHARACTER_SET_RESULT = utf8");
备注:MySQL/MariaDB中的UTF-8并不是真正的UTF-8,其中的UTF8MB4才是真正的UTF-8。因此推荐使用UTF8MB4。
参考资料:MySql修改数据库编码为UTF8_红苹果乐园-CSDN博客_数据库的编码格式修改为utf8
os站点 PHP页面顶部 出现Notice: Undefined index: act in 空间路径 on line 18警告提示
if ($_POST['act'] == 'submit')
修改为 if (@$_POST['act'] == 'submit')
在$_GET['act'] 前面加个@关闭警告
打开 phpMyAdmin 一直弹 错误提示窗口 的问题 错误显示如下代码
Notice in ./libraries/classes/Display/Results.php#1210
Trying to access array offset on value of type bool
Backtrace
./libraries/classes/Display/Results.php#1328: PhpMyAdmin\Display\Results->_getTableHeadersForColumns(
网上查阅发现这是 phpMyAdmin 和 php版本 不对应导致的
phpmyadmin 4.0 支持 PHP 5.2——5.4,
phpmyadmin 4.9 支持 PHP 5.5——7.0,
phpmyadmin 5.0 支持 PHP 7.1 及以上版本。
idea站点 页脚出现 如下报错
Fatal error: Uncaught Error: Call to undefined function redirect() in 路径 on line 208
也是php版本问题
os站点 登陆页面 页眉出现 如下报错
Notice: Undefined index: submit in 路径 on line 4
还是php版本问题
一般都是使用php版本 过高引起的
php页面连接mysql数据库 出错自查
原数据库连接代码
$sql = "select * from link where uid = $mid and url = '".addslashes($url)."' limit 1";
$res = $mysqli::query($sql);
插入下面代码 //debug打印错误信息
if (!$res) {
printf(“Error: %s\n”, mysqli_error($mysqli));
exit();
}
引号 一定要是英文状态下的英文状态下的引号printf("Error: %s\n", mysqli_error($mysqli));
用 print_r()
函数打印变量,以更容易理解的形式展示。
函数 mysqli_error()
用于 返回 错误描述mysql_error()
函数返回上一个 MySQL 操作产生的文本错误信息
在php在或者 可以用 echo '<script>alert("测试一下");</script>';
查看 错误位置
php与mysql连接 mysqli::query()
, mysqli_query()
, mysqli->query()
还有 老版的 mysql::query()
,mysql_query()
, mysql->query()
执行一个或多个针对数据库的查询 mysqli_multi_query()
还有 最前面加$符号的 如 $mysqli->query
就一个 空格问题 折腾了 好几个小时 $res = mysql::query("$sql");
$sql
前面少了一个空格 $res = mysql::query(" $sql");
$sql = "select * from link where uid = $mid and url = '".addslashes($url)."' limit 1";
$res = mysql::query("$sql");
在link.php
页面有这么一段代码 其中 语句前是否有空格 差别很大
links站点 数据库内核代码升级为mysqli_query
后 无法 插入数据的问题 解决了、
原来在低版本下 数据库字段 创建没有默认值 也能插入, 换到 高版本(在php7 数据库mysql7 或是 MariaDB 10 以上)后 该字段 设置 一定要默认值 才行
新创建的字段(hits) 点击量 。
实在找到 出错原因,页面死活不报错。折腾了很久。 最后才想到 替换sql语句直接 从数据库管理工具phpmyadmin内复制出能插入成功的sql语句 代入代码中测试。
源码link.php
页面代码 备忘
// $sql = "INSERT INTO `link` (`id`, `icon`, `title`, `url`, `category_id`, `uid`, `hits`, `ctime`) VALUES (NULL, '11', '22', '33', '4', '1', '0', '1497361351')";
$sql = build_insert_sql("link", array(
"category_id" => $cid,
"icon" => addslashes($icon),
"url" => addslashes($url),
"title" => addslashes($title),
"uid" => $mid,
"ctime" => time()
));
$lid = mysql::query("$sql");
在phpmyadmin下插入空值 数据会
报错误提示 Warning: #1366 Incorrect integer value
1366错误是MySQL配置问题,不允许向数据库插入空值。
数据库导入sql文件时报错
提示 : Invalid default value for 'create_time'
如何处理
找到 出错语句
create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
将datetime 修改改为 timestamp
参考资料: MySQL中_Invalid default value_错误解决方法_'嗯哼。๛-CSDN博客
网站搬家后报 No Input file specified
导致搬家失败的解决方案
删除主机空间源码目录下 上一个主机 备份文件(.user.ini 和 .htaccess)
每个 主机空间 根据环境软件 的类型及版本 都不同 因而 配置信息 也不同 这两配置文件 不必要备份。
举例说明 也许上一个主机使用的是 Nginx 而 搬迁后 使用Apache
报错如下
Warning: file_put_contents(/usr/local/lighthouse/softwares/links.beiduoye.cn/tpl_c/m/head.html.cache.php): failed to open stream: Permission denied in /usr/local/lighthouse/softwares/links.beiduoye.cn/inc/php-inc/src/core.php on line 270
请修改tpl_c
下m
目录的权限 修改为777
links站点 左侧分类分页按钮
实现动态隐藏(第一页的时候隐藏 向左按钮,最后一页的时候隐藏向右按钮)
document.getElementById('c_nav_firstp').style.visibility="visible";
document.getElementById('c_nav_prev').style.visibility="visible";
document.getElementById('c_nav_next').style.visibility="visible";
document.getElementById('c_nav_lastp').style.visibility="visible";
带cplayer音乐播放插件的网站 浏览器 按F12源代码检查 会 报如下错误
DevTools 无法加载来源映射:无法加载 http://code.beiduoye.cn/usr/themes/bdy/js/cplayer.js.map 的内容:HTTP 错误:状态代码 404,net::ERR_HTTP_RESPONSE_CODE_FAILURE
解决方法---
删除 cplayer.min.js 这个文件下 末尾 这行注释
//# sourceMappingURL=cplayer.js.map
links站点 tpl目录下 代码修改后 报如下错
Warning: file_put_contents(/usr/local/lighthouse/softwares/links.beiduoye.cn/tpl_c/head.html.cache.php): failed to open stream: Permission denied in /usr/local/lighthouse/softwares/links.beiduoye.cn/inc/php-inc/src/core.php on line 270
解决方法:
修改tpl_c目录权限chmod -R 777 tpl_c
Xshell操作时报错如下
删除文件本地误上传的index (2).php
文件linux syntax error near unexpected token
('`
是因为修改操作 有括号
的文件 需要转义
方法如下:rm -f index\(1\).php
或 rm -f "index\(1\).php"
带加号的参数直接传入url会不显示+号
示例:
var url = "https://code.beiduoye.cn/?q=1+1";
直接window.open(url);
参数会变成1 1
应当写成window.open(encodeURIComponent(url);
没有进行转化 控制台 会报错 Invalid or unexpected token:
数据格式错误
跨越 请求图片时
控制台 报错
Access to XMLHttpRequest at 'https://pic3.zhimg.com/v2-c8bc5ddaea5cc52923697f25b129d754_r.jpg?source=1940ef5c' (redirected from 'https://www.beiduoye.cn/rand_bg/get_bg.php?key=other') from origin 'https://www.beiduoye.cn' has been blocked by CORS policy: Request header field x-requested-with is not allowed by Access-Control-Allow-Headers in preflight response.
原版后台php代码header("Location: $source");
修改代码header('Access-Control-Allow-Origin:*',"Location: $source");
暂无评论