MAMP: ошибка HTTP 500 из файла PHP - PullRequest
1 голос
/ 14 мая 2011

Получение HTTP-ошибки 500 на локальном сервере MAMP при попытке выполнить файл php.

Все остальные мои страницы будут работать, но эта не будет, поэтому я думаю, что это может быть связано с настройками php?

<?php 

// User.class.php

require_once 'DB.class.php';

class User {

    public $id;
    public $username;
    public $hashedPassword;
    public $email;
    public $joinDate;

    // Takes an associative array with the DB row as an argument.

    function __construct($data) {

        $this->id = (isset($data['id'])) ? $data['id'] : "";
        $this->username = (isset($data['username'])) ? $data['username'] : "";
        $this->hashedPassword = (isset($data['password'])) ? $data['password'] : "";
        $this->email = (isset($data['email'])) ? $data['email'] : "";
        $this->joinDate = (isset($data['join_date'])) ? $data['join_date'] : "";

    }

    public function save($isNewUser = false) {

        $db = new DB();

        // Update already registered user.
        if (!$isNewUser) {

            $data = array(
                "username" => "'$this->username'";
                "password" => "'$this->hashedPassword'";
                "email" => "'$this->email'";
            );

            $db->update($data, 'users', 'id = '.$this->id);

        }

        // Register new user.
        else {

            $data = array(
                "username" => "'$this->username'";
                "password" => "'$this->hashedPassword'";
                "email" => "'$this->email'";
                "join_date" => "'".date("Y-m-d H:i:s", time())."'"
            );

            $this->id = $db->insert($data, 'users');
            $this->joinDate = time();

        }

        return true;    

    }

}

?>

Журнал ошибок PHP:

[13-May-2011 23:58:28] PHP Parse error:  syntax error, unexpected ';', expecting ')' in /Applications/MAMP/htdocs/Project/classes/User.class.php on line 35

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Возможно, потому что у вас есть значения массива, оканчивающиеся точкой с запятой, когда они должны быть запятыми:

$data = array(
                "username" => "'$this->username'";
                "password" => "'$this->hashedPassword'";
                "email" => "'$this->email'";
                "join_date" => "'".date("Y-m-d H:i:s", time())."'"
            );

должно быть:

$data = array(
                "username" => $this->username,
                "password" => $this->hashedPassword,
                "email" => $this->email,
                "join_date" => date("Y-m-d H:i:s", time())
            );
2 голосов
/ 18 декабря 2011

Массив с точками с запятой должен вызывать фатальную ошибку в PHP, а не 500 внутренних ошибок сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...