etki alanı adı veritabanından url kodu eklemek ve php ile yönlendirme nasıl?

3 Cevap php

i daha sonra i http://localhost/a5c3 sonra gibi benim etki alanı adı (şimdi ben localhost üzerinde çalışıyorum) gelen kodu eklemek zorunda that.Then için mysql kodu oluşturmak kullanıcıdan url almak url kısaltma sisteminin yarısında duyuyorum here.Code parçasında sıkışmış gerçek domain.I yönlendirin bana en azından ben yapacağım anlamak için iyi olurdu yoksa ben yapacağım ben ne açıklayabilir.

3 Cevap

Eğer bir url ile kısa bir kodu ilişkilendirerek değilseniz o zaman bunu yapmak gerekir, ve yönlendirme kolay olacaktır.

Algoritma:

Daha sonra kullanmak üzere veritabanına form ve üretilen kod url kaydedin.

$url = $_POST['url']
generate code
Concatenate your url with the code
$full_url = $url.$code

gösteri kullanıcıya url kısaltılmış.

if you want redirect user, after he/she put the url in the browser addres then do this. create .htaccess file add following lines to it and drop it to your root folder.,

RewriteEngine on
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php?code=$1 [L]

. htaccess dosyası index.php için her şeyi yönlendirir. Örneğin eğer kullanıcı türleri http://example.com/ujijui sonra. htaccess arayacak http://example.com/index.php?code=ujijui. böylece $ _GET kullanarak url sorgu dizesi yakalayabilir.

sizin index.php

$code = $_GET['code']
mysql_connect('localhost', 'user', 'password')
mysql_select_db('your_db')
$sql = "SELECT url from Table where code=$code" 
$result = mysql_query($sql)
loop through result and get url

header("Location: $url")

olsun, bu sadece bir algoritma.

Eğer sunucu (mod_rewrite Apache kullanarak, örneğin) Varolan bir sayfaya var olmayan URL yönlendirmek olması gerekir. Bu 'catch-all' sayfasında, URL okumak verilen kod veritabanında olup olmadığını kontrol edin, ve eğer öyleyse, doğru url yönlendirme olacaktır. Ainab en pseudocode son bölümünü açıklıyor.

if you are not associating short code with a url then you need to do that, and redirection will be easy.

SELECT url from Table where code=code header("Location: $url")

Yönlendirme sorun için, böyle bir şey denemelisiniz:

. htaccess dosyası:

RewriteEngine on
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php?url=$1 [L]

Ve index.php:

<?php
$url = $_GET['url'];

// These will be taken from database
$urls_associations = array(
  '1234' => "http_//www.example.com",
  '5678' => "http_//www.google.com",
  '90AB' => "http_//stackoverflow.com",
);

// Redirect
if (isset($urls_associations[$url])) {
  $redirect = $urls_associations[$url];
  header("Location: $redirect");
  echo "<a href='$redirect'>Go To : $redirect</a>";
} else {
  echo "Unknown URL code.";
}

Ardından, kullanıcı örneğin gittiğinde. HTTP_ / / localhost/1234, o Elbette, bunun yerine bir dizi okuma veritabanı üzerinde bir sorgu çalıştırmak gerekir, vb HTTP_ / / example.com yönlendiriliyorsunuz, ama oldukça kolay görünüyor olur, gibi bir şey kullanabilirsiniz:

$code = mysql_escape_string($url);
$res = mysql_query("SELECT url FROM mytable WHERE code='$code'");
if ($redirect = mysql_result($res)) {
  header("Location: $redirect");
  echo "<a href='$redirect'>Go To : $redirect</a>";
} else {
  echo "Unknown URL code.";
}

(NOT: $ urls_associations içinde olan '_' yerine ':' Ben buraya yeni bir kullanıcı olduğum için, ben üç bağlantıları açamazsınız :))