【问题标题】:How to detect error in MAMP? [duplicate]如何检测 MAMP 中的错误? [复制]
【发布时间】:2017-01-07 17:14:11
【问题描述】:

MAMP 服务器。尝试通过此代码将图像上传到数据库:

$msg = "";
if(isset($_POST['upload'])) {
    $target = "cell-phones-store/".basename($_FILES['image']['name']);
    $db = mysqli_connect("localhost", "root", "root", "images");

    $image = $_FILES['image']['name'];
    $text = $_POST['text'];

    $sql = "INSERT INTO image (image, text) VALUES ('$image', '$text')";
    mysqli_query($db, $sql);

    if(move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
        $msg = "OK!";
    } else {
        $msg = "Error";
    }
}

但是有一个错误:500 Internal Server Error,没有任何警告和错误页面上的任何其他信息。

这是我的 .htaccess 文件:

php_value error_reporting -1
php_flag display_errors on
php_flag display_startup_errors on

php_flag ignore_repeated_source off
php_flag ignore_repeated_errors off

php_flag track_errors on

php_flag log_errors on

php_flag mysql.trace_mode on

php_value display_errors 1
php_value display_startup_errors 1
php_value error_reporting E_ALL

在 php.ini 中也试过这段代码:

error_reporting = E_ALL
display_errors On

display_startup_errors = On

为什么上传图片会出错?

【问题讨论】:

    标签: php mysqli mamp


    【解决方案1】:
    1. 请检查错误日志文件(你可以在apache配置文件中得到它的路径)
    2. 您的代码$sql = "INSERT INTO image (image, text) VALUES ('$image', '$text')"; 错误,因为$image 和$text 变量不会连接。此外,您应该避免将要查询的变量和bind 连接起来,而不是——至少如果您想避免使用SQL injection

    【讨论】:

    • “不会连接”是什么意思?
    • 我的意思是 SQL 服务器将获得与 $sql 变量中相同的字符串,并且 $image 和 $text 变量不会被它们的值替换
    • 我已将查询更正为 $sql = "INSERT INTO image (image) VALUES ('$image')";但结果相同。
    • 但是您检查过 Apache 错误日志文件吗?
    • 为什么你认为变量不会被值替换?
    猜你喜欢
    • 2015-02-07
    • 2013-08-16
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2013-10-17
    • 2012-03-03
    相关资源
    最近更新 更多