File manager - Edit - /home/cipherteam/htdocs/cipherteam.in/admin3/editipo.php
Back
<?php include 'config.php'; session_start(); if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) { header("Location: login.php"); exit; } $id = $_GET['id'] ?? null; if (!$id) { die("Invalid IPO ID."); } $stmt = $pdo->prepare("SELECT * FROM ipo_post WHERE id = ?"); $stmt->execute([$id]); $ipo = $stmt->fetch(PDO::FETCH_ASSOC); if (!$ipo) { die("IPO not found."); } function formatDateForInput($dateStr) { return date('Y-m-d', strtotime($dateStr)); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Edit IPO — <?= htmlspecialchars($ipo['c_name']) ?></title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet"> <style> :root { --primary: #4f46e5; --primary-light: #e0e7ff; --primary-dark: #3730a3; --surface: #ffffff; --surface-alt: #f8fafc; --border: #e2e8f0; --text: #1e293b; --text-muted: #64748b; --success: #059669; --success-light: #ecfdf5; --radius: 12px; --radius-sm: 8px; --shadow-sm: 0 1px 2px rgba(0,0,0,0.05); --shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04); --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.08), 0 2px 4px -2px rgba(0,0,0,0.04); } * { box-sizing: border-box; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; background: #f1f5f9; color: var(--text); min-height: 100vh; margin: 0; padding: 0; } /* ── Top Bar ── */ .top-bar { background: var(--surface); border-bottom: 1px solid var(--border); padding: 16px 0; position: sticky; top: 0; z-index: 100; box-shadow: var(--shadow-sm); } .top-bar .inner { max-width: 960px; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; } .brand { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 20px; color: var(--primary); } .brand-icon { width: 36px; height: 36px; background: var(--primary); color: #fff; border-radius: 10px; display: grid; place-items: center; font-size: 18px; flex-shrink: 0; } .top-actions { display: flex; align-items: center; gap: 10px; } .btn-back { background: var(--surface-alt); color: var(--text-muted); border: 1px solid var(--border); padding: 8px 18px; border-radius: var(--radius-sm); font-weight: 500; font-size: 13px; text-decoration: none; transition: all 0.2s; display: inline-flex; align-items: center; gap: 6px; } .btn-back:hover { background: var(--primary-light); color: var(--primary); border-color: var(--primary); } .btn-view-top { background: var(--surface-alt); color: var(--text-muted); border: 1px solid var(--border); padding: 8px 18px; border-radius: var(--radius-sm); font-weight: 500; font-size: 13px; text-decoration: none; transition: all 0.2s; display: inline-flex; align-items: center; gap: 6px; } .btn-view-top:hover { background: var(--primary-light); color: var(--primary); border-color: var(--primary); } /* ── Main ── */ .main-wrap { max-width: 960px; margin: 0 auto; padding: 28px 24px 40px; } /* ── Success Alert ── */ .alert-modern { background: var(--success-light); color: var(--success); border: 1px solid #a7f3d0; border-radius: var(--radius-sm); padding: 14px 20px; font-size: 14px; font-weight: 600; display: flex; align-items: center; gap: 8px; margin-bottom: 20px; animation: slideDown 0.3s ease; } @keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } /* ── Company Banner ── */ .company-banner { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px 24px; margin-bottom: 24px; box-shadow: var(--shadow); display: flex; align-items: center; gap: 14px; } .company-banner-icon { width: 44px; height: 44px; border-radius: 10px; border: 1px solid var(--border); object-fit: contain; background: #fff; padding: 3px; flex-shrink: 0; } .company-banner-placeholder { width: 44px; height: 44px; border-radius: 10px; background: var(--primary-light); color: var(--primary); display: grid; place-items: center; font-size: 20px; flex-shrink: 0; } .company-banner-name { font-size: 18px; font-weight: 700; color: var(--text); } .company-banner-id { font-size: 12px; color: var(--text-muted); margin-top: 2px; } /* ── Section Card ── */ .sec-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; margin-bottom: 20px; } .sec-header { padding: 16px 24px; background: var(--surface-alt); border-bottom: 1px solid var(--border); } .sec-title { font-size: 14px; font-weight: 700; color: var(--text); margin: 0; display: flex; align-items: center; gap: 8px; } .sec-body { padding: 24px; } /* ── Form Fields ── */ .field-group { margin-bottom: 0; } .field-group label { display: block; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); margin-bottom: 6px; } .field-group .form-control, .field-group .form-select { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 14px; font-size: 14px; color: var(--text); background: var(--surface); transition: border-color 0.2s, box-shadow 0.2s; } .field-group .form-control:focus, .field-group .form-select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-light); outline: none; } .field-group .form-control::placeholder { color: #b0b8c9; } .field-group textarea.form-control { resize: vertical; min-height: 80px; } /* ── Footer Actions ── */ .form-actions { display: flex; justify-content: center; gap: 12px; margin-top: 8px; padding-top: 24px; border-top: 1px solid var(--border); } .btn-submit { padding: 12px 40px; border-radius: var(--radius-sm); background: var(--primary); color: #fff; font-size: 14px; font-weight: 700; border: none; cursor: pointer; transition: all 0.2s; } .btn-submit:hover { background: var(--primary-dark); transform: translateY(-1px); box-shadow: var(--shadow-md); } .btn-cancel { padding: 12px 40px; border-radius: var(--radius-sm); background: var(--surface-alt); color: var(--text-muted); font-size: 14px; font-weight: 600; border: 1px solid var(--border); text-decoration: none; transition: all 0.2s; display: inline-flex; align-items: center; } .btn-cancel:hover { background: var(--primary-light); color: var(--primary); border-color: var(--primary); } /* ── Responsive ── */ @media (max-width: 768px) { .main-wrap { padding: 16px; } .sec-body { padding: 16px; } .sec-header { padding: 14px 16px; } .company-banner { padding: 16px 18px; } .form-actions { flex-direction: column; } .btn-submit, .btn-cancel { width: 100%; text-align: center; justify-content: center; } } </style> </head> <body> <!-- Top Bar --> <div class="top-bar"> <div class="inner"> <div class="brand"> <div class="brand-icon">✏️</div> Edit IPO </div> <div class="top-actions"> <a href="viewipo.php?id=<?= urlencode($ipo['id']) ?>" class="btn-view-top">👁️ View</a> <a href="index.php" class="btn-back">← Back to List</a> </div> </div> </div> <div class="main-wrap"> <!-- Success Alert (hidden by default) --> <div id="success-alert" class="alert-modern d-none" role="alert"> ✅ IPO updated successfully! </div> <!-- Company Banner --> <div class="company-banner"> <?php if (!empty($ipo['img'])): ?> <img src="<?= htmlspecialchars($ipo['img']) ?>" alt="Logo" class="company-banner-icon" onerror="this.style.display='none'; this.nextElementSibling.style.display='grid';"> <div class="company-banner-placeholder" style="display:none;">📊</div> <?php else: ?> <div class="company-banner-placeholder">📊</div> <?php endif; ?> <div> <div class="company-banner-name"><?= htmlspecialchars($ipo['c_name']) ?></div> <div class="company-banner-id">ID #<?= htmlspecialchars($ipo['id']) ?> · Editing all fields</div> </div> </div> <form method="POST" id="edit-ipo-form"> <!-- General Info --> <div class="sec-card"> <div class="sec-header"> <p class="sec-title">📋 General Information</p> </div> <div class="sec-body"> <div class="row g-3"> <div class="col-md-6"> <div class="field-group"> <label>Company Name</label> <input type="text" name="c_name" class="form-control" value="<?= htmlspecialchars($ipo['c_name']) ?>" required> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>IPO Key</label> <input type="text" name="ipokey" class="form-control" value="<?= htmlspecialchars($ipo['ipokey']) ?>"> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>Live</label> <select name="islive" class="form-select"> <option value="NO" <?= $ipo['islive'] == 'NO' ? 'selected' : '' ?>>NO</option> <option value="YES" <?= $ipo['islive'] == 'YES' ? 'selected' : '' ?>>YES</option> </select> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>Image URL</label> <input type="text" name="img" class="form-control" value="<?= htmlspecialchars($ipo['img']) ?>"> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>Rating</label> <select name="rat" class="form-select"> <?php for ($i = 0; $i <= 10; $i++): ?> <option value="<?= $i ?>" <?= $ipo['rat'] == $i ? 'selected' : '' ?>><?= $i ?></option> <?php endfor; ?> </select> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>Emoji</label> <input type="text" name="emoji" class="form-control" value="<?= htmlspecialchars($ipo['emoji']) ?>"> </div> </div> <div class="col-12"> <div class="field-group"> <label>Details</label> <textarea name="details" class="form-control" rows="4"><?= htmlspecialchars($ipo['details']) ?></textarea> </div> </div> </div> </div> </div> <!-- Dates --> <div class="sec-card"> <div class="sec-header"> <p class="sec-title">📅 Date Information</p> </div> <div class="sec-body"> <div class="row g-3"> <div class="col-md-6"> <div class="field-group"> <label>Issue Date</label> <input type="text" name="i_date" class="form-control" value="<?= htmlspecialchars($ipo['i_date']) ?>"> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>Close Date</label> <input type="text" name="c_date" class="form-control" value="<?= htmlspecialchars($ipo['c_date']) ?>"> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>IPO Open</label> <input type="date" name="ipo_open" class="form-control" value="<?= formatDateForInput($ipo['ipo_open']) ?>"> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>IPO Close</label> <input type="date" name="ipo_close" class="form-control" value="<?= formatDateForInput($ipo['ipo_close']) ?>"> </div> </div> <div class="col-md-4"> <div class="field-group"> <label>IPO Allotment</label> <input type="date" name="ipo_allotment" class="form-control" value="<?= formatDateForInput($ipo['ipo_allotment']) ?>"> </div> </div> <div class="col-md-4"> <div class="field-group"> <label>IPO Refund</label> <input type="date" name="ipo_refund" class="form-control" value="<?= formatDateForInput($ipo['ipo_refund']) ?>"> </div> </div> <div class="col-md-4"> <div class="field-group"> <label>IPO Credit</label> <input type="date" name="ipo_credit" class="form-control" value="<?= formatDateForInput($ipo['ipo_credit']) ?>"> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>IPO Listing</label> <input type="date" name="ipo_listing" class="form-control" value="<?= formatDateForInput($ipo['ipo_listing']) ?>"> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>Date Note</label> <input type="text" name="date" class="form-control" value="<?= htmlspecialchars($ipo['date']) ?>"> </div> </div> </div> </div> </div> <!-- Financials --> <div class="sec-card"> <div class="sec-header"> <p class="sec-title">💰 Financial Details</p> </div> <div class="sec-body"> <div class="row g-3"> <div class="col-md-6"> <div class="field-group"> <label>Offer Price</label> <input type="text" name="o_price" class="form-control" value="<?= htmlspecialchars($ipo['o_price']) ?>"> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>Minimum Application</label> <input type="text" name="m_application" class="form-control" value="<?= htmlspecialchars($ipo['m_application']) ?>"> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>GMP</label> <input type="text" name="GMP" class="form-control" value="<?= htmlspecialchars($ipo['GMP']) ?>"> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>Subscription</label> <textarea name="subscription" class="form-control"><?= htmlspecialchars($ipo['subscription']) ?></textarea> </div> </div> </div> </div> </div> <!-- Status & Config --> <div class="sec-card"> <div class="sec-header"> <p class="sec-title">⚙️ Status & Configuration</p> </div> <div class="sec-body"> <div class="row g-3"> <div class="col-md-6"> <div class="field-group"> <label>Status</label> <select name="status" class="form-select"> <option value="PAST" <?= $ipo['status'] == 'PAST' ? 'selected' : '' ?>>PAST</option> <option value="PRESENT" <?= $ipo['status'] == 'PRESENT' ? 'selected' : '' ?>>PRESENT</option> <option value="NEW" <?= $ipo['status'] == 'NEW' ? 'selected' : '' ?>>NEW</option> </select> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>Suggestion</label> <select name="suggestion" class="form-select"> <?php $options = ['Wait', 'Avoid', 'Neutral', 'May Apply', 'Apply', 'Must Apply']; foreach ($options as $option): ?> <option value="<?= $option ?>" <?= $ipo['suggestion'] == $option ? 'selected' : '' ?>><?= $option ?></option> <?php endforeach; ?> </select> </div> </div> <div class="col-md-6"> <div class="field-group"> <label>Allotment Registrar</label> <select name="allotment" class="form-select"> <?php $registrars = [ 'https://ipo.bigshareonline.com/IPO_Status.html' => 'Bigshare', 'https://in.mpms.mufg.com/Initial_Offer/public-issues.html' => 'MUFG - Linkintime', 'https://ipostatus.kfintech.com/' => 'KFintech Kosmic', 'https://www.skylinerta.com/ipo.php' => 'Skyline', 'https://ipostatus1.cameoindia.com/' => 'Cameo', 'https://www.purvashare.com/investor-service/ipo-query' => 'Purva', 'https://maashitla.com/allotment-status/public-issues' => 'Maashitla', 'https://www.masserv.com/opt.asp' => 'Mas Services', 'https://www.satellitecorporate.com/ipo-query.php' => 'Satellite Corporate', 'http://ipo.alankit.com/' => 'Alankit', 'https://ipostatus.integratedregistry.in/RegistrarsToSTANew.aspx?od=2' => 'Integrated Registry', 'https://mudrarta.com/ipo.php' => 'Mudra RTA' ]; foreach ($registrars as $url => $label): ?> <option value="<?= $url ?>" <?= $ipo['allotment'] == $url ? 'selected' : '' ?>><?= $label ?></option> <?php endforeach; ?> </select> </div> </div> <div class="col-md-3"> <div class="field-group"> <label>NO</label> <input type="number" name="NO" class="form-control" value="<?= htmlspecialchars($ipo['NO']) ?>"> </div> </div> <div class="col-md-3"> <div class="field-group"> <label>TYPE</label> <select name="TYPE" class="form-select"> <option value="S" <?= $ipo['TYPE'] == 'S' ? 'selected' : '' ?>>SME</option> <option value="M" <?= $ipo['TYPE'] == 'M' ? 'selected' : '' ?>>Mainline</option> </select> </div> </div> <div class="col-12"> <div class="field-group"> <label>URL</label> <textarea name="url" class="form-control"><?= htmlspecialchars($ipo['url']) ?></textarea> </div> </div> </div> </div> </div> <!-- Actions --> <div class="form-actions"> <button type="submit" name="submit" class="btn-submit">✓ Update IPO</button> <a href="index.php" class="btn-cancel">Cancel</a> </div> </form> </div> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> <script> document.getElementById('edit-ipo-form').addEventListener('submit', function(e) { e.preventDefault(); const formData = new FormData(this); fetch('', { method: 'POST', body: formData }) .then(response => response.text()) .then(() => { const alertBox = document.getElementById('success-alert'); alertBox.classList.remove('d-none'); window.scrollTo({top: 0, behavior: 'smooth'}); setTimeout(() => { alertBox.classList.add('d-none'); }, 5000); }) .catch(error => { alert("Error updating IPO: " + error); }); }); </script> </body> </html> <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $ipo_open = date('d-m-Y', strtotime($_POST['ipo_open'])); $ipo_close = date('d-m-Y', strtotime($_POST['ipo_close'])); $ipo_allotment = date('d-m-Y', strtotime($_POST['ipo_allotment'])); $ipo_refund = date('d-m-Y', strtotime($_POST['ipo_refund'])); $ipo_credit = date('d-m-Y', strtotime($_POST['ipo_credit'])); $ipo_listing = date('d-m-Y', strtotime($_POST['ipo_listing'])); $sql = "UPDATE ipo_post SET c_name=?, ipokey=?, islive=?, img=?, i_date=?, c_date=?, o_price=?, m_application=?, rat=?, details=?, url=?, subscription=?, status=?, date=?, allotment=?, NO=?, TYPE=?, GMP=?, suggestion=?, ipo_open=?, ipo_close=?, ipo_allotment=?, ipo_refund=?, ipo_credit=?, ipo_listing=?, emoji=? WHERE id=?"; $stmt = $pdo->prepare($sql); $stmt->execute([ $_POST['c_name'], $_POST['ipokey'], $_POST['islive'], $_POST['img'], $_POST['i_date'], $_POST['c_date'], $_POST['o_price'], $_POST['m_application'], $_POST['rat'], $_POST['details'], $_POST['url'], $_POST['subscription'], $_POST['status'], $_POST['date'], $_POST['allotment'], $_POST['NO'], $_POST['TYPE'], $_POST['GMP'], $_POST['suggestion'], $ipo_open, $ipo_close, $ipo_allotment, $ipo_refund, $ipo_credit, $ipo_listing, $_POST['emoji'], $id ]); //header("Location: index.php"); } ?>
| ver. 1.4 |
Github
|
.
| PHP 8.2.9 | Generation time: 0.1 |
proxy
|
phpinfo
|
Settings