deneme yaparken kendim bir tane yapmıştım. yönlendirme tarafı yok ama konuya biraz vakıf olan arkadaşlar yönlendirme kısmını sıfırdan hazırlamakla uğraşmadan çözebilir diye düşünüyorum. geliştirmek isteyen de geliştirebilir.
<!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>