Какие сообщения об ошибках я могу вставить в этот скрипт, чтобы выяснить проблему - PullRequest
0 голосов
/ 29 апреля 2011

Я читаю книгу под названием PHP 5 Advanced Techniques Ларри Уллмана.

В главе 4 он знакомит нас с PEAR. После долгой борьбы мне удалось заставить PEAR работать с MAMP и установить пакет Auth и MDB2, необходимый для этого кода аутентификации. Однако, когда я запускаю его, я получаю эту ошибку сервера

The website encountered an error while retrieving http://localhost:8888/phpvqp2_scripts/Ch04/login.php. It may be down for maintenance or configured incorrectly.
Here are some suggestions:
Reload this web page later.

Есть ли какая-либо отладка, которую я могу вставить в код, чтобы выяснить, в чем проблема? Я немного новичок, поэтому подробные инструкции были бы очень полезны.

<?php # Script 4.3 - login.php

/*  This page uses PEAR Auth to control access.
 *  This assumes a database called "auth",
 *  accessible to a MySQL user of "root@localhost" 
 *  with a password of "root".
 *  Table definition:

    CREATE TABLE auth (
    username VARCHAR(50) default '' NOT NULL,
    password VARCHAR(32) default '' NOT NULL,
    PRIMARY KEY (username),
    KEY (password)
    )
 *  MD5() is used to encrypt the passwords.
 */

// Need the PEAR class:
require_once ('Auth.php');

// Function for showing a login form:
function show_login_form() {

    echo '<form method="post" action="login.php">
<p>Username <input type="text" name="username" /></p>
<p>Password <input type="password" name="password" /></p>
<input type="submit" value="Login" />
</form><br />
';

} // End of show_login_form() function.

// Connect to the database: 
$options = array('dsn' => 'mysql://root:root@localhost/auth');

// Create the Auth object:
$auth = new Auth('DB', $options, 'show_login_form');

// Add a new user:
$auth->addUser('me', 'mypass');

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <title>Restricted Page</title>
</head>
<body>
<?php

// Start the authorization:
$auth->start();

// Confirm authorization:
if ($auth->checkAuth()) {

    echo '<p>You are logged in and can read this. How cool is that?</p>';

} else { // Unauthorized.

    echo '<p>You must be logged in to access this page.</p>';

}

?>
</body>
</html>

1 Ответ

0 голосов
/ 29 апреля 2011

Включите display_errors в вашем php.ini, чтобы вы получили реальное сообщение об ошибке.

Если это все еще не работает, включите log_errors, чтобы ошибки вашего скрипта отправлялись в файл или системный журнал.

...