Просмотр полной версии : Нужен скрипт линкшифратор
misterzym
09.07.2008, 21:36
Нужен такой скрипт: заходиш на страницу, там 2 формы ввода, в первую ставиш сслку ( link1.ru ) а во вторую ставиш пасс, а скрипт делает следующим образом - дает свою сслку ( link2.ru )при заходе на которую спрашивает выше введенный пасс, и если пасс верный то отправляет на ссылку введеную выше (link1.ru). Так сказать общественный сервис, все что вводят сохранял и не путал. Кто может мне помоч выполнить задачу?
программировать то умеешь?
misterzym
09.07.2008, 21:42
средненько, на это уже нехвататет...
ок. алгоритм примерный то есть у тебя?
1. ну есть у тебя пасс и ссылка. пишеш их в БД
2. генеришь ссылку вторую. пишешь в БД
3. запрашивают у тебя вторую ссылку.
4. вводят пароль.
5. сравниваешь ссылку два и пароль из БД
6. Если все ок. редирект на 1 ссылку.
7. если нет то шлеш нафиг
misterzym
09.07.2008, 21:50
вот с БД мне какраз и не надобы... в этом вся проблема
ну, я предпологаю, сделать следующим образом: скрипт посто создает страницы по порядковым номерам и выдает на них ссылки, а в самих страницах уже свой маленький скриптик который просто сверяет пасс введенный с тем что в него записали ( никого шифрования ненадо, просто тупо сверку ) и если совпадает то переадресация... ну ет я так на вскидку набрасал
misterzym
09.07.2008, 21:57
попробую с БД сделать...
BlackSun
09.07.2008, 22:57
попробую с БД сделать...
Держи пример, тока что написал, простейший, на ошибки не проверял.
Дамп БД:
-- phpMyAdmin SQL Dump
-- version 2.11.3deb1ubuntu1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июл 10 2008 г., 00:55
-- Версия сервера: 5.0.51
-- Версия PHP: 5.2.4-2ubuntu5.1
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- База данных: `links`
--
-- --------------------------------------------------------
--
-- Структура таблицы `links`
--
CREATE TABLE IF NOT EXISTS `links` (
`id` int(11) NOT NULL auto_increment,
`link` text NOT NULL,
`pass` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Дамп данных таблицы `links`
--
INSERT INTO `links` (`id`, `link`, `pass`) VALUES
(1, 'http://asd.ru', '40bd001563085fc35165329ea1ff5c5ecbdbbeef');
index.php
<?
// Sample by BlackSun [S.T.A.R.S. Team]
if (file_exists('config.php'))
{
include('config.php');
} else
{
die('Config.php not found =(');
}
if (isset($_GET['id']) and is_numeric($_GET['id']))
{
if (isset($_POST['pass']))
{
$mysql = mysql_connect($dbhost, $dbuser, $dbpass) or die('Cant connect to DB.');
mysql_select_db($dbname) or die('Cant select DB.');
$result = mysql_query("SELECT * FROM links WHERE id='".$_GET['id']."'");
$num = mysql_num_rows($result);
if ($num > 0)
{
$row = mysql_fetch_array($result);
if ($row['pass'] == sha1($_POST['pass']))
{
echo "<script>document.location='".$row['link']."';</script>";
// - or -
// header('Location: '.$row['link']);
} else
{
echo "Invalid password.";
}
} else
{
echo "Not found.";
}
} else
{
?>
<html>
<head>
<title>Links</title>
</head>
<body>
<form method="POST">
Enter password: <input type="password" name="pass" style="width:150px"><input type="submit" value="Go">
</form>
</body>
</html>
<?
}
} else
{
echo 'ID invalid.';
}
?>
config.php
<?
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'abc';
$dbname = 'links';
$adminuser = 'root';
$adminpass = '123';
$site_url = 'http://localhost/a/';
?>
admin.php
<?
// Sample by BlackSun [S.T.A.R.S. Team]
if (file_exists('config.php'))
{
include('config.php');
} else
{
die('Config.php not found =(');
}
if (isset($_COOKIE['adminuser']) and isset($_COOKIE['adminpass']) and
$_COOKIE['adminuser'] == $adminuser and $_COOKIE['adminpass'] == $adminpass)
{
if (!isset($_POST['link']) or !isset($_POST['pass']))
{
?>
<html>
<head>
<title>Admin zone</title>
</head>
<body>
Добавить ссылку:<br>
<form method="POST">
<table cellpadding="0" cellspacing="0" border="0" width="400px">
<tr>
<td width="100px">Ссылка:</td>
<td><input type="text" style="width:100%" name="link"></td>
</tr>
<tr>
<td>Пароль:</td>
<td><input type="password" style="width:150px" name="pass"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Add link"></td>
</tr>
</table>
</form>
</body>
</html>
<?
} else
{
$link = $_POST['link'];
if (substr($link, 0, 7) != 'http://')
{
die('Invalid url');
}
$link = addslashes($link);
$pass = sha1($_POST['pass']);
$mysql = mysql_connect($dbhost, $dbuser, $dbpass) or die('Cant connect to DB.');
mysql_select_db($dbname) or die('Cant select DB.');
$result = mysql_query("SELECT * FROM links");
$num = mysql_num_rows($result);
$num++;
mysql_query("INSERT INTO links (`id`, `link` ,`pass` ) VALUES ('".$num."', '".$link."', '".$pass."');");
echo "Добавлено:<br>\r\n";
echo "link: ".htmlspecialchars($link)."<br>\r\n";
echo "Pass: ".htmlspecialchars($_POST['pass'])."<br>\r\n";
echo "Link 2: ".$site_url."index.php?id=".$num."<br>\r\n";
echo "<a href='admin.php'><b>Add new</b></a>";
mysql_close($mysql);
}
} else
{
if (isset($_POST['user']) && isset($_POST['pass']))
{
if ($_POST['user'] == $adminuser && $_POST['pass'] == $adminpass)
{
setcookie('adminuser', $adminuser);
setcookie('adminpass', $adminpass);
//$_COOKIE['adminuser'] = $adminuser;
//$_COOKIE['adminpass'] = $adminpass;
echo "<script>document.location='admin.php';</script>";
} else
{
echo "Логин и/или пароль не правильные.";
}
} else
{
?>
<html>
<head>
<title>Admin zone</title>
</head>
<body>
Введите имя и пароль:<br>
<form method="POST">
<table cellpadding="0" cellspacing="0" border="0" width="200px">
<tr>
<td width="80px">Login:</td>
<td><input type="text" name="user" style="width:100%"></td>
</tr>
<tr>
<td>Pass:</td>
<td><input type="password" name="pass" style="width:100%"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Go to r00t">
</td>
</tr>
</table>
</form>
</body>
</html>
<?
}
}
?>
-------
PS: дада, я знаю, что в админке ксс, аффтар пусть сам избавляется от нее ;)
misterzym
10.07.2008, 02:03
Спасиб большое! ну ошибки то уж я сам проверю, но за пример спасибо!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot