/home/u764571690/domains/savitrfoundation.com/public_html/scholar/pages
Edit: /home/u764571690/domains/savitrfoundation.com/public_html/scholar/pages/bank.php (19033B)
'/',
'domain' => '', // Empty for localhost compatibility
'secure' => false, // Allow HTTP for localhost
'httponly' => true,
'samesite' => 'Lax',
'lifetime' => 2592000 // 30 days cookie lifetime
]);
session_start();
}
// Correct path to db.php
require_once __DIR__ . '/../db.php';
// ✅ PERFORMANCE: Local cache class for pages/cache directory
class LocalSimpleCache extends SimpleCache {
private static $cacheDir = __DIR__ . '/cache';
private static $defaultTTL = 300;
public static function init() {
if (!file_exists(self::$cacheDir)) {
@mkdir(self::$cacheDir, 0755, true);
}
}
public static function get($key) {
self::init();
$file = self::$cacheDir . '/' . md5($key) . '.cache';
if (!file_exists($file)) return false;
$data = @unserialize(file_get_contents($file));
if ($data === false) return false;
if (time() > $data['expires']) {
@unlink($file);
return false;
}
return $data['value'];
}
public static function set($key, $value, $ttl = null) {
self::init();
$ttl = $ttl ?? self::$defaultTTL;
$file = self::$cacheDir . '/' . md5($key) . '.cache';
$data = ['value' => $value, 'expires' => time() + $ttl, 'created' => time()];
$fp = @fopen($file, 'c+');
if ($fp === false) return @file_put_contents($file, serialize($data)) !== false;
$lockAcquired = false;
for ($i = 0; $i < 10; $i++) {
if (flock($fp, LOCK_EX | LOCK_NB)) {
$lockAcquired = true;
break;
}
usleep(500000);
}
if ($lockAcquired) {
ftruncate($fp, 0);
fwrite($fp, serialize($data));
flock($fp, LOCK_UN);
fclose($fp);
return true;
} else {
fclose($fp);
return @file_put_contents($file, serialize($data)) !== false;
}
}
public static function delete($key) {
self::init();
$file = self::$cacheDir . '/' . md5($key) . '.cache';
return @unlink($file);
}
}
if (!isset($_SESSION['user_logged_in']) || $_SESSION['user_logged_in'] !== true) {
header('Location: ../student');
exit();
}
$applicantId = (int)($_SESSION['applicant_id'] ?? 0);
$userId = $_SESSION['user_id'] ?? '';
$userName = $_SESSION['user_name'] ?? 'Student';
try {
// ✅ PERFORMANCE: Cache bank details for 5 minutes (rarely changes)
$bankCacheKey = 'bank_details_' . $applicantId;
$applicant = LocalSimpleCache::get($bankCacheKey);
if ($applicant === false) {
// ✅ OPTIMIZED: Single query to fetch applicant and user data together
$stmt = $pdo->prepare("
SELECT
a.*,
u.user_id,
u.bank_verified
FROM applicants a
LEFT JOIN users u ON a.applicant_id = u.applicant_id
WHERE a.applicant_id = ?
LIMIT 1
");
$stmt->execute([$applicantId]);
$applicant = $stmt->fetch(PDO::FETCH_ASSOC);
if ($applicant) {
LocalSimpleCache::set($bankCacheKey, $applicant, 300); // Cache for 5 minutes
}
}
if (!$applicant) {
throw new Exception('Application not found');
}
$bankVerified = $applicant['bank_verified'] ?? null;
$scholarId = $applicant['user_id'] ?? ($_SESSION['user_id'] ?? '');
} catch (Exception $e) {
$error_message = $e->getMessage();
}
?>
Bank Details - Student Dashboard - Savitr Foundation Scholarship
Welcome,
Scholar ID:
Bank Details
Your bank account is NOT verified. Verify immediately. This bank account is not opened by NGO and you have not verified this account. For bank verification, please contact our Technical Officer or open a new account with the help of the Technical Officer within 7 days otherwise your application may be rejected.
Technical Officer: 7772056856 (message on WhatsApp; if urgent then call)
Your bank account is verified.
Bank
Account Holder
Account Number
Missing Bank Details
Important: Your bank account details are missing. Please update your bank details to receive your scholarship.
Update Bank Details