• 15-08-2023, 09:13:14
    #1
    Dün @KeyCodE; hocamın buradaki konumda isteği üzerine sabahtan birşeyler yapmaya çalıştım. Kod geliştirmeye fazlasıyla açık. Sadece temel olarak işlemi gerçekleştiriyor. güvenlik önlemi, kısaltılmış linkin asıl linke gitmesini sağlayan sayfaları kullanmak isteyen arkadaşlar ekleyebilir.

    Paylaştığım Diğer Hazır Kodlar;
    Süper Lig Puan Durumu (PHP)
    Son Deprem Verileri (PHP)
    Javascript ile Klavye Hız Testi
    Javascript ile Vücut Kitle İndeksi Hesaplama
    Javascript ile Kredi Hesaplama






    <!DOCTYPE html>
    <html>
    <head>
        <title>URL Kısaltma Servisi</title>
        <style>
            body {font-family: Arial, sans-serif;background-color: #f7f7f7;margin: 0;padding: 0;}
            header {background-color: #333;color: #fff;text-align: center;padding: 10px;}
            .container {max-width: 600px;margin: 0 auto;padding: 20px;background-color: #fff;box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);border-radius: 4px;margin-top: 50px;}
            label {font-weight: bold;display: block;margin-bottom: 5px;}
            input[type="text"] {width: 96%;padding: 10px;border: 1px solid #ccc;border-radius: 4px;}
            button {background-color: #007bff;color: #fff;border: none;padding: 10px 20px;border-radius: 4px;cursor: pointer;width: 100%;margin-top:10px;}
            button:hover {background-color: #0056b3;}
            .result {margin-top: 20px;border: 1px solid #ccc;padding: 10px;border-radius: 4px;background-color: #f7f7f7;}
        </style>
    </head>
    <body>
        <header>
            <h1>URL Kısaltma Servisi</h1>
        </header>
        <div class="container">
        <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
            <input type="text" name="original_url" placeholder="Kısaltılacak Linki Buraya Yazın." required>
            <button type="submit">Kısalt</button>
        </form>
        <?php
    $servername = "localhost";
    $username = "linkkisalt";
    $password = "linkkisalt";
    $dbname = "linkkisalt";
    $conn = new mysqli($servername, $username, $password, $dbname);
    if ($conn->connect_error) {
        die("Veritabanı bağlantısında hata oluştu: " . $conn->connect_error);
    }
    function generateRandomString($length = 10) {
        $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        $randomString = '';
        for ($i = 0; $i < $length; $i++) {
            $randomString .= $characters[rand(0, strlen($characters) - 1)];
        }
        return $randomString;
    }
    function isRandomStringExists($randomString, $conn) {
        $sql = "SELECT COUNT(*) as count FROM linkler WHERE short_url = '$randomString'";
        $result = $conn->query($sql);
        
        if ($result && $result->num_rows > 0) {
            $row = $result->fetch_assoc();
            return $row["count"] > 0;
        }
        return false;
    }
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $original_url = $_POST["original_url"];
        do {
            $short_url = generateRandomString();
        } while (isRandomStringExists($short_url, $conn));
        
        $sql = "INSERT INTO linkler (original_url, short_url) VALUES ('$original_url', '$short_url')";
        echo "<div class='result'>";
        if ($conn->query($sql) === TRUE) {
            echo "<b>URL kısaltma başarılı!</b><br><br>";
            echo "Orijinal URL: $original_url<br>";
            echo "Kısaltılmış URL: <a target='_blank' href='https://site.com/$short_url'>https://site.com/$short_url</a>";
        } else {
            echo "Hata oluştu: " . $sql . "<br>" . $conn->error;
        }
        echo "</div>";
    }
    $conn->close();
    ?>
    </body>
    </html>
  • 15-08-2023, 09:18:22
    #2
    paylaşım için teşekkür ederim
  • 15-08-2023, 10:07:15
    #3
    Güzel görünüyor hocam teşekkürler.
  • 12-04-2024, 13:30:48
    #4
    nasıl kuracağiz hocam bu sistemi?

    Hata oluştu: INSERT INTO linkler (original_url, short_url) VALUES ('https://www.r10.net/hazir-kod-bankasi/3778824-link-kisaltma-servisi-php-ucretsiz-kod.html#post1087210476', 'LBbskWDc85')
    Table 'yonlen_linkkis.linkler' doesn't exist

    bu şekilde bir hata aldım
  • 15-04-2024, 19:34:57
    #5
    Kodu deneyip hata alan var mı ?
    yardımcı olabilir misiniz ?
  • 28-06-2024, 10:17:53
    #6
    Erk4n adlı üyeden alıntı: mesajı görüntüle
    Kodu deneyip hata alan var mı ?
    yardımcı olabilir misiniz ?
    aldığınız hatayı zahmet edip google translate yardımı ile çevirdiğiniz zaman "yonlen_linkkis" veritabanında "linkler" diye bir tablo olmadığını söylüyor.

    Bu problemi çözmek için ise "yonlen_linkkis " isimli veritabanını açıp üst menüde ki "SQL" butonuna tıklamanız, ardından aşağıda ki kodu yapıştırıp altta bulunan "Git" butonuna tıklamanız gerekmektedir.

    CREATE TABLE linkler (
        id SERIAL PRIMARY KEY,
        original_url TEXT NOT NULL,
        short_url TEXT NOT NULL
    );
  • 28-06-2024, 10:27:08
    #7
    Erk4n adlı üyeden alıntı: mesajı görüntüle
    Kodu deneyip hata alan var mı ?
    yardımcı olabilir misiniz ?
    Lakin düzeltsenizde birşey olmayacaktır, o yüzden ben size tam kodu yazayım. Aşağıya yazacağım kod sorunsuz çalışmaktadır.


    db.php
    <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "url_shortener"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) {    die("Connection failed: " . $conn->connect_error); } ?>
    link_kisalt.php
    <?php include 'db.php'; function generateShortUrl() {    return substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 6); } if ($_SERVER['REQUEST_METHOD'] == 'POST') {    $original_url = $_POST['original_url'];        //burada veritabanında daha önceden böyle bir kısaltma varmı diye kontrol ediyoruz hocam    $sql = "SELECT short_url FROM links WHERE original_url = ?";    $stmt = $conn->prepare($sql);    $stmt->bind_param("s", $original_url);    $stmt->execute();    $stmt->bind_result($short_url);    $stmt->fetch();    $stmt->close();        if ($short_url) {        echo "Short URL: " . $short_url;    } else {        $short_url = generateShortUrl();                $sql = "INSERT INTO links (original_url, short_url) VALUES (?, ?)";        $stmt = $conn->prepare($sql);        $stmt->bind_param("ss", $original_url, $short_url);                if ($stmt->execute()) {            echo "Short URL: " . $short_url;        } else {            echo "Error: " . $sql . "<br>" . $conn->error;        }                $stmt->close();    } } $conn->close(); ?>
    db.php
    <?php include 'db.php'; $short_url = $_GET['short']; $sql = "SELECT original_url FROM links WHERE short_url = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("s", $short_url); $stmt->execute(); $stmt->bind_result($original_url); $stmt->fetch(); if ($original_url) {    header("Location: " . $original_url);    exit(); } else {    echo "URL not found."; } $stmt->close(); $conn->close(); ?>
    index.php
    <!DOCTYPE html> <html> <head>    <title>URL Shortener</title> </head> <body>    <h1>URL Shortener</h1>    <form method="post" action="shorten.php">        <label for="original_url">Original URL:</label>        <input type="text" id="original_url" name="original_url" required>        <button type="submit">Shorten</button>    </form> </body> </html>
    RewriteEngine On
    RewriteRule ^([a-zA-Z0-9]{6})$ yonlendirme.php?short=$1 [L]
  • 28-06-2024, 10:45:35
    #8
    Deneyeceğim teşekkür ederim
  • 28-06-2024, 12:40:59
    #9
    pekmezcimuzo adlı üyeden alıntı: mesajı görüntüle
    Lakin düzeltsenizde birşey olmayacaktır, o yüzden ben size tam kodu yazayım. Aşağıya yazacağım kod sorunsuz çalışmaktadır.


    db.php
    <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "url_shortener"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) {    die("Connection failed: " . $conn->connect_error); } ?>
    link_kisalt.php
    <?php include 'db.php'; function generateShortUrl() {    return substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 6); } if ($_SERVER['REQUEST_METHOD'] == 'POST') {    $original_url = $_POST['original_url'];        //burada veritabanında daha önceden böyle bir kısaltma varmı diye kontrol ediyoruz hocam    $sql = "SELECT short_url FROM links WHERE original_url = ?";    $stmt = $conn->prepare($sql);    $stmt->bind_param("s", $original_url);    $stmt->execute();    $stmt->bind_result($short_url);    $stmt->fetch();    $stmt->close();        if ($short_url) {        echo "Short URL: " . $short_url;    } else {        $short_url = generateShortUrl();                $sql = "INSERT INTO links (original_url, short_url) VALUES (?, ?)";        $stmt = $conn->prepare($sql);        $stmt->bind_param("ss", $original_url, $short_url);                if ($stmt->execute()) {            echo "Short URL: " . $short_url;        } else {            echo "Error: " . $sql . "<br>" . $conn->error;        }                $stmt->close();    } } $conn->close(); ?>
    db.php
    <?php include 'db.php'; $short_url = $_GET['short']; $sql = "SELECT original_url FROM links WHERE short_url = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("s", $short_url); $stmt->execute(); $stmt->bind_result($original_url); $stmt->fetch(); if ($original_url) {    header("Location: " . $original_url);    exit(); } else {    echo "URL not found."; } $stmt->close(); $conn->close(); ?>
    index.php
    <!DOCTYPE html> <html> <head>    <title>URL Shortener</title> </head> <body>    <h1>URL Shortener</h1>    <form method="post" action="shorten.php">        <label for="original_url">Original URL:</label>        <input type="text" id="original_url" name="original_url" required>        <button type="submit">Shorten</button>    </form> </body> </html>
    RewriteEngine On
    RewriteRule ^([a-zA-Z0-9]{6})$ yonlendirme.php?short=$1 [L]
    2 adet db.php