Нужен такой скрипт: заходиш на страницу, там 2 формы ввода, в первую ставиш сслку ( link1.ru ) а во вторую ставиш пасс, а скрипт делает следующим образом - дает свою сслку ( link2.ru )при заходе на которую спрашивает выше введенный пасс, и если пасс верный то отправляет на ссылку введеную выше (link1.ru). Так сказать общественный сервис, все что вводят сохранял и не путал. Кто может мне помоч выполнить задачу?
1. ну есть у тебя пасс и ссылка. пишеш их в БД 2. генеришь ссылку вторую. пишешь в БД 3. запрашивают у тебя вторую ссылку. 4. вводят пароль. 5. сравниваешь ссылку два и пароль из БД 6. Если все ок. редирект на 1 ссылку. 7. если нет то шлеш нафиг
вот с БД мне какраз и не надобы... в этом вся проблема ну, я предпологаю, сделать следующим образом: скрипт посто создает страницы по порядковым номерам и выдает на них ссылки, а в самих страницах уже свой маленький скриптик который просто сверяет пасс введенный с тем что в него записали ( никого шифрования ненадо, просто тупо сверку ) и если совпадает то переадресация... ну ет я так на вскидку набрасал
Держи пример, тока что написал, простейший, на ошибки не проверял. Дамп БД: Code: -- 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 Code: <? // 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 Code: <? $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'abc'; $dbname = 'links'; $adminuser = 'root'; $adminpass = '123'; $site_url = 'http://localhost/a/'; ?> admin.php Code: <? // 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: дада, я знаю, что в админке ксс, аффтар пусть сам избавляется от нее