PHP делаем скрипт сокращения ссылок без сторонних сервисов
В редакторе
PHP делаем скрипт сокращения ссылок без сторонних сервисов
Brain_Script
4302
2017-05-29 12:55:55
DirectoryIndex index.php
Options -Indexes
php_flag register_globals off
RewriteEngine on
# Ниже строка чпу благодаря ней урл будет выглядеть примерно так http://test-s.lok/-v465h
RewriteRule ^-(.*) /redirect.php?key=$1 [L]
<?php
/*------------ mysql.php -------------*/
$db = mysql_connect('localhost','test','test') or die('error');
mysql_select_db('test')or die('error');
?>
<?php
/*------------ index.php -------------*/
// PHP делаем скрипт сокращения ссылок без сторонних сервисов
require_once('mysql.php');
$link = htmlspecialchars($_POST['link']);
if(empty($_POST['submit'])){}
if(empty($_POST['link'])){}
else{
@$select = mysql_fetch_assoc(mysql_query("SELECT * FROM `short` WHERE `url` = '".$link."'"));
if($select){
$result = [
'url' => $select['url'],
'key' => $select['short_key'],
'link' => 'http://'.$_SERVER['HTTP_HOST'].'/-'.$select['short_key']
];
print_r($result);
}
else{
/*---- Генерация уникального id взято и публичного доступа в интернете----*/
$letters='qwertyuiopasdfghjklzxcvbnm1234567890';
$count=strlen($letters);
$intval=time();
$result='';
for($i=0;$i<4;$i++) {
$last=$intval%$count;
$intval=($intval-$last)/$count;
$result.=$letters[$last];
}
/*---------------------------*/
mysql_query("INSERT INTO `short` (`id`, `url`, `short_key`) VALUES (NULL, '".$link."', '".$result.$intval."') ");
@$select = mysql_fetch_assoc(mysql_query("SELECT * FROM `short` WHERE `url` = '".$link."'"));
$result = [
'url' => $select['url'],
'key' => $select['short_key'],
'link' => 'http://'.$_SERVER['HTTP_HOST'].'/q/'.$select['short_key']
];
print_r($result);
}
}
// вот и все, пишите комментарии ставьте лайки будем делать еще чтонибуть интересное и полезное.
?>
<form method="post" action="">
<input type="text" name="link">
<input type="submit" name="submit">
</form>
<?php
/*------------ redirect.php -------------*/
// теперь делаем сам редирект на готовую ссылку
require_once('mysql.php');
$key = htmlspecialchars($_GET['key']);
if(empty($_GET['key'])){}
else{
@$select = mysql_fetch_assoc(mysql_query("SELECT * FROM `short` WHERE `short_key` = '".$key."'"));
if($select){
$result = [
'url' => $select['url'],
'key' => $select['short_key']
];
// а теперь собственно сам редирект
header('location: '.$result['url']);
// проверяем
}
}
?>
Войдите для добавления комментария.