Aapke saare files (PHP, CSS, JS, aur .htaccess) ko mila kar check karne ke baad, **Error 500** ke mukhya kaaran aur unka samadhan niche diya gaya hai. Aapne code bahut achha likha hai, lekin production server (Hostinger) par kuch chhoti cheezein crash kar rahi hain.
### 1. Vendor Folder aur Composer (Sabse Badi Wajah)
Aapke `database.php` aur `mail.php` mein `vendor/autoload.php` ko call kiya gaya hai.
* **Galti:** Agar aapne Hostinger par `vendor` folder upload nahi kiya hai, toh PHP ko `Firebase` aur `PHPMailer` ki libraries nahi milengi, aur server turant **Error 500** de dega.
* **Solution:** Apne computer par `composer install` chalayein aur jo `vendor` folder bane, use Hostinger ke `public_html` (ya jahan aapki files hain) ke bahar ya barabar upload karein.
### 2. File Paths ki Galti (Directory Structure)
Aapne `header.php` mein call kiya hai: `require_once __DIR__ . '/../config/session.php';`.
Lekin `auth.php` mein call kiya hai: `require_once __DIR__ . '/database.php';`.
* **Galti:** Agar aapki files ka structure sahi nahi hai, toh `require_once` fail ho jayega.
* **Sahi Structure:**
```text
/ (root)
├── config/
│ ├── auth.php
│ ├── database.php
│ ├── mail.php
│ ├── session.php
│ └── firebase-credentials.json
├── includes/
│ ├── functions.php
│ ├── header.php
│ ├── sidebar.php
│ └── footer.php
├── vendor/ (Iska hona bahut zaroori hai)
├── index.php
└── dashboard.php
```
### 3. Firebase Credentials JSON
`database.php` mein line hai: `$serviceAccountPath = __DIR__ . '/firebase-credentials.json';`.
* **Galti:** Agar aapne Firebase console se download ki hui JSON file ko rename karke `config` folder mein nahi dala hai, toh connection fail ho jayega.
* **Solution:** JSON file ko `config` folder mein rakhein.
### 4. .htaccess Custom Error Pages
Aapke `.htaccess` mein ye lines hain:
[cite_start]`ErrorDocument 500 /shayari/500.php`[cite: 1].
* **Galti:** Agar `/shayari/` naam ka folder nahi hai ya `500.php` file missing hai, toh server "Error 500" dikhane ki koshish mein "Recursive Error" mein phans jayega aur crash ho jayega.
* **Solution:** In lines ko temporary hata dein ya check karein ki path sahi hai.
### 5. SMTP Password aur Mail Config
`mail.php` mein aapne password `YourStrongPasswordHere` rakha hai.
* **Galti:** Agar ye sahi nahi hai, toh `Auth.php` mein jab `sendOTP` call hoga, toh PHPMailer error dega jo handle na hone par server crash kar sakta hai.
---
### 🔥 Turant Check Karne Ka Tarika (Debugging)
Error 500 ko khatam karne ke liye, **`index.php`** ke sabse upar (yani `
Warning: require_once(/home/u395065556/domains/kasppra.com/public_html/shayari/vendor/autoload.php): Failed to open stream: No such file or directory in /home/u395065556/domains/kasppra.com/public_html/shayari/config/mail.php on line 3
Fatal error: Uncaught Error: Failed opening required '/home/u395065556/domains/kasppra.com/public_html/shayari/vendor/autoload.php' (include_path='.:/opt/alt/php82/usr/share/pear:/opt/alt/php82/usr/share/php:/usr/share/pear:/usr/share/php') in /home/u395065556/domains/kasppra.com/public_html/shayari/config/mail.php:3
Stack trace:
#0 /home/u395065556/domains/kasppra.com/public_html/shayari/config/auth.php(4): require_once()
#1 /home/u395065556/domains/kasppra.com/public_html/shayari/index.php(12): require_once('/home/u39506555...')
#2 {main}
thrown in /home/u395065556/domains/kasppra.com/public_html/shayari/config/mail.php on line 3