• 17-11-2024, 18:59:59
    #1
    Ben
    Üyeliği durduruldu
    Forumdan bir müşterimin mobil uygulaması için, kullanıcı koduyla URL Yönlendirme sistemine ihtiyacımız vardı. Bende ihtiyacı giderecek bir sistem yazdım.
    Eğer ihtiyacı olan arkadaşlarımız olursa, dosyaları aşağıda açık olarak paylaşıyorum.


    Özellikleri:
    Yönlendirme Dosyası üzerinden Kullanıcı Kodu ve URL Eklenir SQL Kayıt Yapar.
    İndex üzerinden kullanıcı kendi kodunu girince o siteye yönlendirilir. Sonraki girişlerinde ise girmesine gerek kalmaz hep o URL adreslerini açar.

    Belki bir arkadaşımızın ihtiyacı olur.


    SQL
    CREATE DATABASE kullanici_url;
    USE kullanici_url;
    CREATE TABLE kullanicilar (
        id INT AUTO_INCREMENT PRIMARY KEY,
        kullanici_adi VARCHAR(255) UNIQUE NOT NULL,
        url VARCHAR(255) NOT NULL
    );
    index.php
    <?php
    session_start();
    if (isset($_SESSION['username'])) {
    $servername = "localhost";
    $username = "dbuser";
    $password = "dbpas";
    $database = "db";
    $conn = new mysqli($servername, $username, $password, $database);
    if ($conn->connect_error) {
    die("Veritabanı bağlantısı başarısız: " . $conn->connect_error);
    }
    $username = $_SESSION['username'];
    $query = "SELECT url FROM kullanicilar WHERE kullanici_adi = '$username'";
    $result = $conn->query($query);
    if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    header("Location: " . $row['url']);
    exit;
    } else {
    unset($_SESSION['username']);
    }
    }
    ?>
    <!DOCTYPE html>
    <?php
    session_start();
    if (isset($_SESSION['username'])) {
    $servername = "localhost";
    $username = "dbuser";
    $password = "dbpas";
    $database = "db";
    $conn = new mysqli($servername, $username, $password, $database);
    if ($conn->connect_error) {
    die("Veritabanı bağlantısı başarısız: " . $conn->connect_error);
    }
    $username = $_SESSION['username'];
    $query = "SELECT url FROM kullanicilar WHERE kullanici_adi = '$username'";
    $result = $conn->query($query);
    if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    header("Location: " . $row['url']);
    exit;
    } else {
    unset($_SESSION['username']);
    }
    }
    ?>
    <!DOCTYPE html>
    <html lang="tr">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ana Ekran</title>
    <style>
    body{font-family:'Arial',sans-serif;background:linear-gradient(135deg,#007BFF,#0056b3);display:flex;justify-content:center;align-items:center;min-height:100vh;color:#fff;padding:10px}
    .container{background:#fff;color:#333;width:100%;max-width:400px;padding:20px 30px;border-radius:15px;box-shadow:0 8px 15px rgba(0,0,0,0.2);text-align:center;margin:0 auto}
    .logo img{max-width:120px;height:auto;margin-bottom:20px}
    h1{font-size:1.8rem;margin-bottom:20px}
    form{display:flex;flex-direction:column;gap:15px}
    input[type="text"]{width:95%;padding:12px;font-size:1rem;border:1px solid #ddd;border-radius:8px;outline:none;box-shadow:inset 0 2px 4px rgba(0,0,0,0.1);transition:border-color .3s}
    input[type="text"]:focus{border-color:#007BFF}
    button{padding:12px;font-size:1rem;font-weight:700;color:#fff;background:#007BFF;border:none;border-radius:8px;cursor:pointer;transition:background-color .3s ease}
    button:hover{background:#0056b3}
    @media (max-width: 600px) {
    h1{font-size:1.5rem}
    input[type="text"],button{font-size:.9rem}
    .container{padding:20px}
    }</style>
    </head>
    <body>
    <div class="container">
    <div class="logo">
    <img src="barkodlogo.png" alt="Logo">
    <p>Denemek için demo yazabilirsiniz</p>
    </div>
    <form action="yonlendirme.php" method="post">
    <input type="text" id="username" name="username" placeholder="Kullanıcı Adı" required>
    <button type="submit">İlerle</button>
    <p>Bu sistem barkodlu satış yapmak isteyen tüm işletmeler için uygundur.
    <br><br>Detaylı Bilgi: <a href="tel:905333998629">0533 399 86 29</a></p>
    </form>
    </div>
    </body>
    </html>
    yönlendirme.php
    <?php
    session_start();
    $servername = "localhost";
    $username = "dbuser";
    $password = "dbpas";
    $database = "db";
    $conn = new mysqli($servername, $username, $password, $database);
    if ($conn->connect_error) {
    die("Veritabanı bağlantısı başarısız: " . $conn->connect_error);
    }
    if (isset($_SESSION['username'])) {
    $username = $_SESSION['username'];
    $query = "SELECT url FROM kullanicilar WHERE kullanici_adi = '$username'";
    $result = $conn->query($query);
    if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    header("Location: " . $row['url']);
    exit;
    } else {
    unset($_SESSION['username']);
    }
    }
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['username'])) {
    $username = $conn->real_escape_string($_POST['username']);
    $query = "SELECT url FROM kullanicilar WHERE kullanici_adi = '$username'";
    $result = $conn->query($query);
    if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    $_SESSION['username'] = $username;
    header("Location: " . $row['url']);
    exit;
    } else {
    echo "<div style='color: red; text-align: center;'>Bu kullanıcı adı için bir URL bulunamadı!</div>";
    }
    }
    if (isset($_GET['delete'])) {
    $id = intval($_GET['delete']);
    $query = "DELETE FROM kullanicilar WHERE id = $id";
    $conn->query($query);
    header("Location: yonlendirme.php");
    exit;
    }
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['kullanici_adi'], $_POST['url'])) {
    $id = isset($_POST['id']) ? intval($_POST['id']) : 0;
    $kullanici_adi = $conn->real_escape_string($_POST['kullanici_adi']);
    $url = $conn->real_escape_string($_POST['url']);
    if ($id > 0) {
    $query = "UPDATE kullanicilar SET kullanici_adi = '$kullanici_adi', url = '$url' WHERE id = $id";
    } else {
    $query = "INSERT INTO kullanicilar (kullanici_adi, url) VALUES ('$kullanici_adi', '$url')";
    }
    $conn->query($query);
    header("Location: yonlendirme.php");
    exit;
    }
    ?>
    <!DOCTYPE html>
    <html lang="tr">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Yönetim Paneli</title>
    <style>
    body{font-family:Arial,sans-serif;margin:0;padding:0;background:#f4f4f9;color:#333;display:flex;justify-content:center;align-items:center;min-height:100vh}
    .container{width:90%;max-width:1200px;margin:20px auto}
    h1{text-align:center;margin-bottom:20px;color:#007BFF}
    table{width:100%;border-collapse:collapse;margin-bottom:20px;background:#fff;box-shadow:0 4px 6px rgba(0,0,0,0.1)}
    th,td{padding:15px;text-align:left;border:1px solid #ddd}
    th{background:#007BFF;color:#fff}
    tr:nth-child(even){background:#f9f9f9}
    .btn{padding:10px 15px;text-decoration:none;color:#fff;background:#007BFF;border-radius:5px;cursor:pointer;border:none;font-size:.9rem}
    .btn.edit{background:#28a745}
    .btn.delete{background:#dc3545}
    .btn.add{display:block;margin:20px auto;background:#007BFF;text-align:center;width:200px}
    .modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);justify-content:center;align-items:center;z-index:1000}
    .modal.active{display:flex}
    .modal-content{background:#fff;padding:20px;border-radius:10px;width:90%;max-width:500px;box-shadow:0 4px 6px rgba(0,0,0,0.2)}
    .modal-header{font-size:1.5rem;margin-bottom:20px;text-align:center}
    .modal-footer{text-align:center;margin-top:20px}
    .modal-footer .btn{margin:0 10px}
    input,textarea{width:100%;padding:10px;margin-bottom:15px;border:1px solid #ddd;border-radius:5px}
    @media (max-width: 600px) {
    table,th,td{font-size:.8rem}
    .btn{font-size:.8rem;padding:8px 10px}
    }
    </style>
    </head>
    <body>
    <div class="container">
    <h1>Kullanıcı Yönetim Paneli</h1>
    <button class="btn add" onclick="openModal()">Yeni Kullanıcı Ekle</button>
    <table>
    <thead>
    <tr>
    <th>ID</th>
    <th>Kullanıcı Adı</th>
    <th>URL</th>
    <th>İşlemler</th>
    </tr>
    </thead>
    <tbody>
    <?php
    $query = "SELECT * FROM kullanicilar";
    $result = $conn->query($query);
    if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
    echo "<tr>
    <td>{$row['id']}</td>
    <td>{$row['kullanici_adi']}</td>
    <td>{$row['url']}</td>
    <td>
    <button class='btn edit' onclick='openModal({$row['id']}, \"{$row['kullanici_adi']}\", \"{$row['url']}\")'>Düzenle</button>
    <a class='btn delete' href='yonlendirme.php?delete={$row['id']}'>Sil</a>
    </td>
    </tr>";
    }
    } else {
    echo "<tr><td colspan='4'>Henüz bir kullanıcı yok.</td></tr>";
    }
    ?>
    </tbody>
    </table>
    </div>
    <div class="modal" id="modal">
    <div class="modal-content">
    <div class="modal-header">Kullanıcı Ekle/Düzenle</div>
    <form action="yonlendirme.php" method="post">
    <input type="hidden" name="id" id="userId">
    <label for="kullanici_adi">Kullanıcı Adı:</label>
    <input type="text" id="kullaniciAdi" name="kullanici_adi" required>
    <label for="url">URL:</label>
    <input type="url" id="url" name="url" required>
    <div class="modal-footer">
    <button type="button" class="btn" onclick="closeModal()">İptal</button>
    <button type="submit" class="btn">Kaydet</button>
    </div>
    </form>
    </div>
    </div>
    <script>
    function openModal(id = 0, kullaniciAdi = '', url = '') {
    document.getElementById('userId').value = id;
    document.getElementById('kullaniciAdi').value = kullaniciAdi;
    document.getElementById('url').value = url;
    document.getElementById('modal').classList.add('active');
    }
    function closeModal() {
    document.getElementById('modal').classList.remove('active');
    }
    </script><a href="yonlendirme.php?logout=true" class="btn">Çıkış Yap</a>
    </body>
    </html>
  • 17-11-2024, 19:04:58
    #2
    Paylaşım için teşekkürler
    • Ben
    Ben bunu beğendi.
    1 kişi bunu beğendi.