我有一个名为 API 的文件夹,里面有我的 .php 文件。这些文件是new_user.php
(源文件)、一个名为db_connexion.php
(打开与我的 mySQL 数据库的 PDO 连接)的文件和一个名为PasswordHash.php
.
按照我在谷歌上搜索的本教程,我访问了这个站点,下载了源文件,添加PasswordHash.php
到我的 API 文件夹中。现在,当我尝试将 PasswordHash 包含到我的 new_user 文件中时,我需要像这样引用它:include '/PasswordHash.php';
,否则我会收到以下错误:Class 'PasswordHash' not found
。当我像这样引用它时,我得到"NetworkError: 500 Internal Server Error - http://localhost/PTC/API/new_user.php"
.
我在做什么错(我试图在将密码写入我的数据库之前设置密码加密)?
这是我的 AngularJS 应用程序注册表作为 POST 请求发送的内容:
{"email":"email@example.com","username":"mihamiha","password":"ex4mPl3"}
新用户.php:
<?php
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Headers: Authorization, Content-Type');
// pass hashing library
include '/PasswordHash.php';
// database connection file
include '/db_connexion.php';
$data = file_get_contents("php://input");
$data = json_decode($data, true);
// check if data is there
if (isset($data['email']) && isset($data['username']) && isset($data['password'])) {
// if email is properly formatted
if (preg_match('/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/', $data['email'])) {
// remove whitespace from beginning
$email = trim($data['email']);
}
// strips html, php tags, removes whitespace from beginning/end
$username = strip_tags(trim($data['username']));
$pass = $data['password'];
// hash object
$hash_obj = new PasswordHash( 8, false );
// hash pass
$hash = $hash_obj->HashPassword($pass);
}
else {
echo 'data missing!';
}
die();