PDA

Просмотр полной версии : Нужен скрипт линкшифратор


misterzym
09.07.2008, 21:36
Нужен такой скрипт: заходиш на страницу, там 2 формы ввода, в первую ставиш сслку ( link1.ru ) а во вторую ставиш пасс, а скрипт делает следующим образом - дает свою сслку ( link2.ru )при заходе на которую спрашивает выше введенный пасс, и если пасс верный то отправляет на ссылку введеную выше (link1.ru). Так сказать общественный сервис, все что вводят сохранял и не путал. Кто может мне помоч выполнить задачу?

blaga
09.07.2008, 21:39
программировать то умеешь?

misterzym
09.07.2008, 21:42
средненько, на это уже нехвататет...

blaga
09.07.2008, 21:44
ок. алгоритм примерный то есть у тебя?

blaga
09.07.2008, 21:48
1. ну есть у тебя пасс и ссылка. пишеш их в БД
2. генеришь ссылку вторую. пишешь в БД
3. запрашивают у тебя вторую ссылку.
4. вводят пароль.
5. сравниваешь ссылку два и пароль из БД
6. Если все ок. редирект на 1 ссылку.
7. если нет то шлеш нафиг

misterzym
09.07.2008, 21:50
вот с БД мне какраз и не надобы... в этом вся проблема
ну, я предпологаю, сделать следующим образом: скрипт посто создает страницы по порядковым номерам и выдает на них ссылки, а в самих страницах уже свой маленький скриптик который просто сверяет пасс введенный с тем что в него записали ( никого шифрования ненадо, просто тупо сверку ) и если совпадает то переадресация... ну ет я так на вскидку набрасал

blaga
09.07.2008, 21:55
бред. юзай БД.

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
Спасиб большое! ну ошибки то уж я сам проверю, но за пример спасибо!