Logo

ThinkDIY

Think不止,DIY不息

666汽车尾灯为什么要设计成红色?

'''''''''''''''''''''''''''''这个写法需要 PHP 7.1+,在 PHP 7.0 及以下会直接 fatal error。

修复方法

把 4 个文件里的所有 [$a, $b, $c] = ... 改成 list($a, $b, $c) = ...

需要改的文件和位置:

index.php 找到:

php

[$page_items, $page, $total_pages] = paginate($items, $page_size);

改成:

php

list($page_items, $page, $total_pages) = paginate($items, $page_size);

all.php 找到:

php

[$page_items, $page, $total_pages] = paginate($items, 40);

改成:

php

list($page_items, $page, $total_pages) = paginate($items, 40);

articles.php 找到:

php

[$page_articles, $page, $total_pages] = paginate($all_articles, 20);

改成:

php

list($page_articles, $page, $total_pages) = paginate($all_articles, 20);

ranking.php 找到:

php

[$page_rankings, $page, $total_pages] = paginate($all_rankings, 20);

改成:

php

list($page_rankings, $page, $total_pages) = paginate($all_rankings, 20);

shop.php 找到:

php

[$page_products, $page, $total_pages] = paginate($all_products, $page_size);

改成:

php

list($page_products, $page, $total_pages) = paginate($all_products, $page_size);

downloads.php 找到:

php

[$page_items, $page, $total_pages] = paginate($all_items, 20);

改成:

php

list($page_items, $page, $total_pages) = paginate($all_items, 20);

search.php 找到:

php

[$page_items, $page, $total_pages] = paginate($items, 20);

改成:

php

list($page_items, $page, $total_pages) = paginate($items, 20);

额外注意:其它 PHP 7.1+ 特性

如果你确实是 PHP 7.0,检查以下地方是否也报错:

inc/bootstrap.php 里的 paginate 函数(PHP 5.4+ 就支持,没问题)

inc/header.php$active_nav ?? ''?? 是 PHP 7.0+,如果你 PHP 5.6 会报错,需要改成:

php

$__active = isset($active_nav) ? $active_nav : '';

建议:如果 PHP 版本 < 7.0,升级到 PHP 7.4 或 8.x 是更好的选择(现在几乎没理由跑 7.0 以下)。

🛠️ 方案 C:检查文件是否齐全

在服务器上,你项目的根目录,应该能看到这些:

text

你的站点根目录/
├── inc/
│   ├── config.php        ← 必须有
│   ├── bootstrap.php     ← 必须有
│   ├── head.php          ← 必须有
│   ├── header.php        ← 必须有
│   └── footer.php        ← 必须有
├── js/
│   ├── app.js            ← 必须有(第 1 批新增)
│   └── ...(其它后台 JS)
├── css/
├── data.sqlite           ← 数据库
├── index.php             ← 第 5 批新增
├── all.php               ← 第 5 批
├── articles.php          ← 第 4 批
├── downloads.php         ← 第 4 批
├── ranking.php           ← 第 4 批
├── shop.php              ← 第 4 批
├── copy.php              ← 第 2 批
├── download.php          ← 第 2 批
├── rankingview.php       ← 第 3 批
├── productpage.php       ← 第 3 批
├── article.php           ← 第 2 批(覆盖旧文件)
├── search.php            ← 第 5 批
├── api.php
└── ...

最常见的低级错误:

  • inc/ 建在了错误目录(比如建在 js/ 里)
  • ❌ 文件大小写不对(Linux 区分大小写:Bootstrap.phpbootstrap.php
  • ❌ 文件名打错:bootstrap.php 写成了 bootstrap.php.php(Windows 会自动隐藏后缀)
  • ❌ 用 FTP 上传时是二进制模式,PHP 文件变成乱码

验证:在浏览器访问:

text

你的域名/inc/bootstrap.php
  • 如果显示空白 → 正常(因为 bootstrap 只定义函数不输出)
  • 如果显示 404 → 文件不在
  • 如果显示 PHP 源码 → PHP 没解析(Apache 没配好)

🛠️ 方案 D:数据库权限问题

如果是 Linux 服务器,SSH 上去执行:

bash

# 找到你的站点目录,比如 /var/www/html
cd /var/www/html

# 检查数据库文件是否存在
ls -la data.sqlite
ls -la data.sqlite-wal data.sqlite-shm 2>/dev/null

# 检查 inc 目录权限
ls -la inc/

# 给运行 PHP 的用户读写权限(通常是 www-data)
sudo chown -R www-data:www-data .
sudo chmod 755 inc
sudo chmod 644 inc/*.php
sudo chmod 664 data.sqlite
sudo chmod 664 data.sqlite-wal data.sqlite-shm 2>/dev/null

# 目录要可写(SQLite 需要写 WAL 文件)
sudo chmod 775 .

Nginx 或 Apache 的 PHP 错误日志:

bash

# Nginx + PHP-FPM
sudo tail -n 50 /var/log/nginx/error.log
sudo tail -n 50 /var/log/php*-fpm.log

# Apache
sudo tail -n 50 /var/log/apache2/error.log

日志里通常有精确的错误信息。

🚑 应急:先退回旧页面

如果你现在站点无法访问,想快速恢复:

  1. index.php 重命名为 index.php.bak
  2. 把旧 index.html(如果你还留着)恢复成 index.html
  3. 访问 你的域名/index.html 立即恢复

旧文件如果之前删了,从备份恢复。

📝 请告诉我以下信息,我可以精确诊断

回复我:

  1. F12 → Console 里的红色报错(截图或复制文字)
  2. F12 → Network → 点 index.php → Response 标签里的内容
  3. PHP 版本(php -vinfo.php 输出)
  4. 你装了哪几批(是刚装完第 5 批,还是之前批次还没装?)

有这 4 项我能立刻定位问题。

💡 我的猜测

80% 是方案 B(PHP 版本 < 7.1 用了数组解构)。

快速验证:在项目根目录新建 test.php

php

<?php
list($a, $b) = [1, 2];
echo "list OK<br>";
[$c, $d] = [3, 4];
echo "array destructuring OK<br>";

访问 test.php

  • 显示两行 → PHP 版本 ≥ 7.1,问题在别处
  • 只显示 "list OK" → PHP 版本 < 7.1,用方案 B 修复

修复完之后,删掉 test.php

这个写法需要 PHP 7.1+,在 PHP 7.0 及以下会直接 fatal error。

修复方法

把 4 个文件里的所有 [$a, $b, $c] = ... 改成 list($a, $b, $c) = ...

需要改的文件和位置:

index.php 找到:

php

[$page_items, $page, $total_pages] = paginate($items, $page_size);

改成:

php

list($page_items, $page, $total_pages) = paginate($items, $page_size);

all.php 找到:

php

[$page_items, $page, $total_pages] = paginate($items, 40);

改成:

php

list($page_items, $page, $total_pages) = paginate($items, 40);

articles.php 找到:

php

[$page_articles, $page, $total_pages] = paginate($all_articles, 20);

改成:

php

list($page_articles, $page, $total_pages) = paginate($all_articles, 20);

ranking.php 找到:

php

[$page_rankings, $page, $total_pages] = paginate($all_rankings, 20);

改成:

php

list($page_rankings, $page, $total_pages) = paginate($all_rankings, 20);

shop.php 找到:

php

[$page_products, $page, $total_pages] = paginate($all_products, $page_size);

改成:

php

list($page_products, $page, $total_pages) = paginate($all_products, $page_size);

downloads.php 找到:

php

[$page_items, $page, $total_pages] = paginate($all_items, 20);

改成:

php

list($page_items, $page, $total_pages) = paginate($all_items, 20);

search.php 找到:

php

[$page_items, $page, $total_pages] = paginate($items, 20);

改成:

php

list($page_items, $page, $total_pages) = paginate($items, 20);

额外注意:其它 PHP 7.1+ 特性

如果你确实是 PHP 7.0,检查以下地方是否也报错:

inc/bootstrap.php 里的 paginate 函数(PHP 5.4+ 就支持,没问题)

inc/header.php$active_nav ?? ''?? 是 PHP 7.0+,如果你 PHP 5.6 会报错,需要改成:

php

$__active = isset($active_nav) ? $active_nav : '';

建议:如果 PHP 版本 < 7.0,升级到 PHP 7.4 或 8.x 是更好的选择(现在几乎没理由跑 7.0 以下)。

🛠️ 方案 C:检查文件是否齐全

在服务器上,你项目的根目录,应该能看到这些:

text

你的站点根目录/
├── inc/
│   ├── config.php        ← 必须有
│   ├── bootstrap.php     ← 必须有
│   ├── head.php          ← 必须有
│   ├── header.php        ← 必须有
│   └── footer.php        ← 必须有
├── js/
│   ├── app.js            ← 必须有(第 1 批新增)
│   └── ...(其它后台 JS)
├── css/
├── data.sqlite           ← 数据库
├── index.php             ← 第 5 批新增
├── all.php               ← 第 5 批
├── articles.php          ← 第 4 批
├── downloads.php         ← 第 4 批
├── ranking.php           ← 第 4 批
├── shop.php              ← 第 4 批
├── copy.php              ← 第 2 批
├── download.php          ← 第 2 批
├── rankingview.php       ← 第 3 批
├── productpage.php       ← 第 3 批
├── article.php           ← 第 2 批(覆盖旧文件)
├── search.php            ← 第 5 批
├── api.php
└── ...

最常见的低级错误:

  • inc/ 建在了错误目录(比如建在 js/ 里)
  • ❌ 文件大小写不对(Linux 区分大小写:Bootstrap.phpbootstrap.php
  • ❌ 文件名打错:bootstrap.php 写成了 bootstrap.php.php(Windows 会自动隐藏后缀)
  • ❌ 用 FTP 上传时是二进制模式,PHP 文件变成乱码

验证:在浏览器访问:

text

你的域名/inc/bootstrap.php
  • 如果显示空白 → 正常(因为 bootstrap 只定义函数不输出)
  • 如果显示 404 → 文件不在
  • 如果显示 PHP 源码 → PHP 没解析(Apache 没配好)

🛠️ 方案 D:数据库权限问题

如果是 Linux 服务器,SSH 上去执行:

bash

# 找到你的站点目录,比如 /var/www/html
cd /var/www/html

# 检查数据库文件是否存在
ls -la data.sqlite
ls -la data.sqlite-wal data.sqlite-shm 2>/dev/null

# 检查 inc 目录权限
ls -la inc/

# 给运行 PHP 的用户读写权限(通常是 www-data)
sudo chown -R www-data:www-data .
sudo chmod 755 inc
sudo chmod 644 inc/*.php
sudo chmod 664 data.sqlite
sudo chmod 664 data.sqlite-wal data.sqlite-shm 2>/dev/null

# 目录要可写(SQLite 需要写 WAL 文件)
sudo chmod 775 .

Nginx 或 Apache 的 PHP 错误日志:

bash

# Nginx + PHP-FPM
sudo tail -n 50 /var/log/nginx/error.log
sudo tail -n 50 /var/log/php*-fpm.log

# Apache
sudo tail -n 50 /var/log/apache2/error.log

日志里通常有精确的错误信息。

🚑 应急:先退回旧页面

如果你现在站点无法访问,想快速恢复:

  1. index.php 重命名为 index.php.bak
  2. 把旧 index.html(如果你还留着)恢复成 index.html
  3. 访问 你的域名/index.html 立即恢复

旧文件如果之前删了,从备份恢复。

📝 请告诉我以下信息,我可以精确诊断

回复我:

  1. F12 → Console 里的红色报错(截图或复制文字)
  2. F12 → Network → 点 index.php → Response 标签里的内容
  3. PHP 版本(php -vinfo.php 输出)
  4. 你装了哪几批(是刚装完第 5 批,还是之前批次还没装?)

有这 4 项我能立刻定位问题。

💡 我的猜测

80% 是方案 B(PHP 版本 < 7.1 用了数组解构)。

快速验证:在项目根目录新建 test.php

php

<?php
list($a, $b) = [1, 2];
echo "list OK<br>";
[$c, $d] = [3, 4];
echo "array destructuring OK<br>";

访问 test.php

  • 显示两行 → PHP 版本 ≥ 7.1,问题在别处
  • 只显示 "list OK" → PHP 版本 < 7.1,用方案 B 修复

修复完之后,删掉 test.php

这个写法需要 PHP 7.1+,在 PHP 7.0 及以下会直接 fatal error。

修复方法

把 4 个文件里的所有 [$a, $b, $c] = ... 改成 list($a, $b, $c) = ...

需要改的文件和位置:

index.php 找到:

php

[$page_items, $page, $total_pages] = paginate($items, $page_size);

改成:

php

list($page_items, $page, $total_pages) = paginate($items, $page_size);

all.php 找到:

php

[$page_items, $page, $total_pages] = paginate($items, 40);

改成:

php

list($page_items, $page, $total_pages) = paginate($items, 40);

articles.php 找到:

php

[$page_articles, $page, $total_pages] = paginate($all_articles, 20);

改成:

php

list($page_articles, $page, $total_pages) = paginate($all_articles, 20);

ranking.php 找到:

php

[$page_rankings, $page, $total_pages] = paginate($all_rankings, 20);

改成:

php

list($page_rankings, $page, $total_pages) = paginate($all_rankings, 20);

shop.php 找到:

php

[$page_products, $page, $total_pages] = paginate($all_products, $page_size);

改成:

php

list($page_products, $page, $total_pages) = paginate($all_products, $page_size);

downloads.php 找到:

php

[$page_items, $page, $total_pages] = paginate($all_items, 20);

改成:

php

list($page_items, $page, $total_pages) = paginate($all_items, 20);

search.php 找到:

php

[$page_items, $page, $total_pages] = paginate($items, 20);

改成:

php

list($page_items, $page, $total_pages) = paginate($items, 20);

额外注意:其它 PHP 7.1+ 特性

如果你确实是 PHP 7.0,检查以下地方是否也报错:

inc/bootstrap.php 里的 paginate 函数(PHP 5.4+ 就支持,没问题)

inc/header.php$active_nav ?? ''?? 是 PHP 7.0+,如果你 PHP 5.6 会报错,需要改成:

php

$__active = isset($active_nav) ? $active_nav : '';

建议:如果 PHP 版本 < 7.0,升级到 PHP 7.4 或 8.x 是更好的选择(现在几乎没理由跑 7.0 以下)。

🛠️ 方案 C:检查文件是否齐全

在服务器上,你项目的根目录,应该能看到这些:

text

你的站点根目录/
├── inc/
│   ├── config.php        ← 必须有
│   ├── bootstrap.php     ← 必须有
│   ├── head.php          ← 必须有
│   ├── header.php        ← 必须有
│   └── footer.php        ← 必须有
├── js/
│   ├── app.js            ← 必须有(第 1 批新增)
│   └── ...(其它后台 JS)
├── css/
├── data.sqlite           ← 数据库
├── index.php             ← 第 5 批新增
├── all.php               ← 第 5 批
├── articles.php          ← 第 4 批
├── downloads.php         ← 第 4 批
├── ranking.php           ← 第 4 批
├── shop.php              ← 第 4 批
├── copy.php              ← 第 2 批
├── download.php          ← 第 2 批
├── rankingview.php       ← 第 3 批
├── productpage.php       ← 第 3 批
├── article.php           ← 第 2 批(覆盖旧文件)
├── search.php            ← 第 5 批
├── api.php
└── ...

最常见的低级错误:

  • inc/ 建在了错误目录(比如建在 js/ 里)
  • ❌ 文件大小写不对(Linux 区分大小写:Bootstrap.phpbootstrap.php
  • ❌ 文件名打错:bootstrap.php 写成了 bootstrap.php.php(Windows 会自动隐藏后缀)
  • ❌ 用 FTP 上传时是二进制模式,PHP 文件变成乱码

验证:在浏览器访问:

text

你的域名/inc/bootstrap.php
  • 如果显示空白 → 正常(因为 bootstrap 只定义函数不输出)
  • 如果显示 404 → 文件不在
  • 如果显示 PHP 源码 → PHP 没解析(Apache 没配好)

🛠️ 方案 D:数据库权限问题

如果是 Linux 服务器,SSH 上去执行:

bash

# 找到你的站点目录,比如 /var/www/html
cd /var/www/html

# 检查数据库文件是否存在
ls -la data.sqlite
ls -la data.sqlite-wal data.sqlite-shm 2>/dev/null

# 检查 inc 目录权限
ls -la inc/

# 给运行 PHP 的用户读写权限(通常是 www-data)
sudo chown -R www-data:www-data .
sudo chmod 755 inc
sudo chmod 644 inc/*.php
sudo chmod 664 data.sqlite
sudo chmod 664 data.sqlite-wal data.sqlite-shm 2>/dev/null

# 目录要可写(SQLite 需要写 WAL 文件)
sudo chmod 775 .

Nginx 或 Apache 的 PHP 错误日志:

bash

# Nginx + PHP-FPM
sudo tail -n 50 /var/log/nginx/error.log
sudo tail -n 50 /var/log/php*-fpm.log

# Apache
sudo tail -n 50 /var/log/apache2/error.log

日志里通常有精确的错误信息。

🚑 应急:先退回旧页面

如果你现在站点无法访问,想快速恢复:

  1. index.php 重命名为 index.php.bak
  2. 把旧 index.html(如果你还留着)恢复成 index.html
  3. 访问 你的域名/index.html 立即恢复

旧文件如果之前删了,从备份恢复。

📝 请告诉我以下信息,我可以精确诊断

回复我:

  1. F12 → Console 里的红色报错(截图或复制文字)
  2. F12 → Network → 点 index.php → Response 标签里的内容
  3. PHP 版本(php -vinfo.php 输出)
  4. 你装了哪几批(是刚装完第 5 批,还是之前批次还没装?)

有这 4 项我能立刻定位问题。

💡 我的猜测

80% 是方案 B(PHP 版本 < 7.1 用了数组解构)。

快速验证:在项目根目录新建 test.php

php

<?php
list($a, $b) = [1, 2];
echo "list OK<br>";
[$c, $d] = [3, 4];
echo "array destructuring OK<br>";

访问 test.php

  • 显示两行 → PHP 版本 ≥ 7.1,问题在别处
  • 只显示 "list OK" → PHP 版本 < 7.1,用方案 B 修复

修复完之后,删掉 test.php

← 返回首页