Пишем свой сервис кратких адресов

2 Май
2012

В принципе механизм примитивный, но может найти применение во многом.

Нам понадобится 4 php файла и одна таблица в базе данных.

Подробное описание процесса и исходный код под катом.

Приступим.

Создадим таблицу в базе данных

и выполним sql запрос:

CREATE TABLE *NEW TABLE NAME* (
ID INT(11) AUTO_INCREMENT PRIMARY KEY,
url varchar(255) NOT NULL
);

Вместо *NEW TABLE NAME* пишем имя созданной таблицы

Создаем файл config.php

(он у меня так назван. Если используете другое имя, то естественно в коде надо заменить).

Содержимое (строки прокомментированы)

<?
$host = "localhost"; //Хост вашей базы данных
$db = "DB_NAME_HERE"; //Имя базы данных
$table = "TABLE_NAME_HERE"; //Имя таблицы
$user = "DB_USERNAME_HERE"; //Ипя пользователя
$pass = "DB_PASSWORD_HERE"; //Пароль базы данных
$email = "EMAIL_ADDRESS_HERE"; //Ваш e-mail
$gophp = "http://www.domain.com/go.php"; //Адрес go.php


Создаем файл go.php


Содержимое (опять же комментирую строки)

<?
include("config.php"); //Подключаем предыдущий файл
mysql_connect(localhost,$user,$pass); //Подключение к MySQL
$result=mysql_db_query("$db", "SELECT url FROM $table WHERE ID='$id'") or die ("Couldn't open \"$db\" database. Please inform $email: ".mysql_error()); // Подключаемся к БД (в случае ошибки прекращаем подключение)
$row = mysql_fetch_array($result); // Получаем информацию
$url = $row["url"]; // Получаем url из БД
?>
<!DOCTYPE html>
Переадресация, пожалуйста подождите!
<meta http-equiv="refresh" content="0; URL=<? echo "$url"; ?>">





Но ведь надо…


Вроде бы все, но, оказывается, надо еще как-то эти адреса добавлять. Поэтому создаем файлы make.php и make2.php
Содержимое:
make.php

URL: <?escapeshellcmd($s_name);?>

make2.php
<?
//Код комментировать нет смысла. Все описано выше

include("config.php");
mysql_connect(localhost,$user,$pass);
mysql_db_query("$db","INSERT INTO $table (url) values ('$url')" )
or die("Error! " . mysql_error());
$result=mysql_db_query("$db", "SELECT ID FROM $table WHERE url='$url'") or die ("Couldn't open \"$db\" database. Please inform $email: ".mysql_error());
$row = mysql_fetch_array($result);
$title = $row["ID"];
echo "$gophp?id=$title";
?>
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх