# I am create file in webroot and included DefaultPasswordHasher.php but not working

**URL:** <https://discourse.cakephp.org/t/i-am-create-file-in-webroot-and-included-defaultpasswordhasher-php-but-not-working/11203>\
**Category:** Need Help\
**Created:** [May 10, 2023, 5:25pm UTC](https://discourse.cakephp.org/t/i-am-create-file-in-webroot-and-included-defaultpasswordhasher-php-but-not-working/11203 "2023-05-10T17:25:53Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![spadeX](https://avatars.discourse-cdn.com/v4/letter/s/919ad9/32.png) [@spadeX](https://discourse.cakephp.org/u/spadeX)\
**Post date:** [May 10, 2023, 5:25pm UTC](https://discourse.cakephp.org/t/i-am-create-file-in-webroot-and-included-defaultpasswordhasher-php-but-not-working/11203/1 "2023-05-10T17:25:53Z")

</div>

i am create file in webroot and included DefaultPasswordHasher.php but not working

```auto

require CAKE."/Auth/DefaultPasswordHasher.php"; 

$conn = new mysqli($servername, $username, $password,$dbname);
		// Check connection
		if ($conn->connect_error) {
		  die("Connection failed: " . $conn->connect_error);
		}
		echo "Connected successfully";

		$stmt = $con->prepare("SELECT * FROM `users` WHERE `email` = ?");
		$username = $_POST['email'];
		$stmt->bind_param("s", $username);
		$stmt->execute();
		$result = $stmt->get_result();

		if ($result->num_rows == 0) { // User doesn't exist
			return false;
		   echo"No such username registered";
		  
		} else { // User exists

		    $row = $result->fetch_assoc();

		    if ((new DefaultPasswordHasher)->check($password, $row['password'])) {
		     
		        return true;
		    } else {
		     	return false;
		    }
		}

```

**Fatal error** : Uncaught Error: Undefined constant “CAKE” in F:\app.jw-app.com\webroot\webapi.php:3 Stack trace: #0 {main} thrown in **F:\app.jw-app.com\webroot\webapi.php** on line **3**

---

<div class="post-metadata">

**Author:** ![jimgwhit](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.cakephp.org/jimgwhit/32/378_2.png) [@jimgwhit](https://discourse.cakephp.org/u/jimgwhit)\
**Post date:** [May 10, 2023, 11:29pm UTC](https://discourse.cakephp.org/t/i-am-create-file-in-webroot-and-included-defaultpasswordhasher-php-but-not-working/11203/2 "2023-05-10T23:29:42Z")

</div>

I suggest starting here and read about cake’s connections: [Database](https://book.cakephp.org/4/en/orm.html)

---

<div class="post-metadata">

**Author:** ![spadeX](https://avatars.discourse-cdn.com/v4/letter/s/919ad9/32.png) [@spadeX](https://discourse.cakephp.org/u/spadeX)\
**Post date:** [May 11, 2023, 4:37am UTC](https://discourse.cakephp.org/t/i-am-create-file-in-webroot-and-included-defaultpasswordhasher-php-but-not-working/11203/3 "2023-05-11T04:37:49Z")

</div>

You don’t understand my problem, I want just import vendor folder in webapi.php file

---

<div class="post-metadata">

**Author:** ![KevinPfeifer](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.cakephp.org/kevinpfeifer/32/3365_2.png) [@KevinPfeifer](https://discourse.cakephp.org/u/KevinPfeifer)\
**Post date:** [May 11, 2023, 6:07am UTC](https://discourse.cakephp.org/t/i-am-create-file-in-webroot-and-included-defaultpasswordhasher-php-but-not-working/11203/4 "2023-05-11T06:07:26Z")

</div>

The `CAKE` constant is not defined just like the error says so either use

- an absolute path specific to your system or
- a relative path

But I’d rather discourage you from building a API this way and instead make a Cake controller which you manually connect to a route and inside that controller action you can then leverage evertyhing Cake has to offer.

---

<div class="post-metadata">

**Author:** ![spadeX](https://avatars.discourse-cdn.com/v4/letter/s/919ad9/32.png) [@spadeX](https://discourse.cakephp.org/u/spadeX)\
**Post date:** [May 11, 2023, 7:12am UTC](https://discourse.cakephp.org/t/i-am-create-file-in-webroot-and-included-defaultpasswordhasher-php-but-not-working/11203/5 "2023-05-11T07:12:54Z")

</div>

Okay then Why I am not allow method from outside cakephp already set cors but get cors errors so I am doing this way.
