güzel örnek detaylı olmuşİstediğiniz gibi bir link kısaltma işlevi sağlayan bir PHP kodu oluşturabilirsiniz. İşte basit bir örnek:
<?php
if (isset($_POST['submit'])) {
$url = $_POST['url'];
$shortUrl = shortenUrl($url);
echo 'Kısaltılmış link: ' . $shortUrl;
}
function shortenUrl($url) {
// Burada linki kısaltma işlemini gerçekleştirecek kodları yazmanız gerekecek.
// Kısaltılmış linki oluşturun ve döndürün.
// Bu örnekte kısaltma işlemi rastgele karakterlerden oluşan bir dize oluşturmakla sınırlıdır.
$shortUrl = generateRandomString(6); // 6 karakter uzunluğunda rastgele bir dize oluşturuluyor.
$shortUrl = 'Bağlantıları görmek için lütfen Giriş Yap' . $shortUrl;
return $shortUrl;
}
function generateRandomString($length) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charLength - 1)];
}
return $randomString;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Link Kısaltma</title>
</head>
<body>
<form method="post" action="">
<input type="text" name="url" placeholder="Linki girin">
<input type="submit" name="submit" value="Kısalt">
</form>
</body>
</html>
Bu örnekte, kullanıcı tarafından girilen URL'yi kısaltma işlemini gerçekleştirmek için shortenUrl() fonksiyonunu kullanıyoruz. Kısaltılmış linki oluşturduktan sonra formu yeniden yükleyerek kısaltılmış linki ekrana basıyoruz.
Tabii ki, bu örnek sadece temel bir yönlendirme yapısını göstermektedir. Gerçek bir link kısaltma servisi daha karmaşık olabilir ve veritabanı kullanabilir. Güvenlik, yönlendirme istatistikleri ve diğer özellikler gibi ek işlevler de dikkate alınmalıdır. Ancak yukarıdaki örnek, basit bir başlangıç noktası olarak kullanılabilir ve ihtiyaçlarınıza göre özelleştirilebilir.
CREATE TABLE url_shortener (
id INT AUTO_INCREMENT PRIMARY KEY,
original_url TEXT NOT NULL,
short_url VARCHAR(10) NOT NULL
);
<form action="kisalt.php" method="post">
<input type="url" name="original_url" placeholder="Orijinal URL" required>
<input type="submit" value="Kısalt">
</form>
<?php
// Veritabanı bağlantısı oluşturun (veritabanı bilgilerinizi güncelleyin)
$servername = "localhost";
$username = "kullanici_adi";
$password = "parola";
$dbname = "veritabani_adi";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Veritabanı bağlantısı başarısız: " . $conn->connect_error);
}
// Kullanıcının girdiği orijinal URL'yi alın
$original_url = $_POST["original_url"];
// Benzersiz bir kısaltılmış URL oluşturun (örneğin, rastgele karakterlerle)
$short_url = substr(str_shuffle("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"), 0, 6);
// Kısaltılmış URL'yi veritabanına kaydedin
$sql = "INSERT INTO url_shortener (original_url, short_url) VALUES ('$original_url', '$short_url')";
if ($conn->query($sql) === TRUE) {
echo "Kısaltılmış URL: http://yourdomain.com/$short_url";
} else {
echo "Hata: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ redirect.php?short_url=$1 [L]
<?php
// Veritabanı bağlantısını oluşturun (veritabanı bilgilerinizi güncelleyin)
$servername = "localhost";
$username = "kullanici_adi";
$password = "parola";
$dbname = "veritabani_adi";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Veritabanı bağlantısı başarısız: " . $conn->connect_error);
}
// Kısaltılmış URL'yi alın
$short_url = $_GET["short_url"];
// Veritabanından orijinal URL'yi bulun
$sql = "SELECT original_url FROM url_shortener WHERE short_url = '$short_url'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
$original_url = $row["original_url"];
header("Location: $original_url");
exit;
} else {
echo "Kısaltılmış URL bulunamadı.";
}
$conn->close();
?>
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?