Нужен скрипт линкшифратор

Discussion in 'PHP' started by misterzym, 9 Jul 2008.

  1. misterzym

    misterzym New Member

    Joined:
    13 Jun 2008
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Нужен такой скрипт: заходиш на страницу, там 2 формы ввода, в первую ставиш сслку ( link1.ru ) а во вторую ставиш пасс, а скрипт делает следующим образом - дает свою сслку ( link2.ru )при заходе на которую спрашивает выше введенный пасс, и если пасс верный то отправляет на ссылку введеную выше (link1.ru). Так сказать общественный сервис, все что вводят сохранял и не путал. Кто может мне помоч выполнить задачу?
     
  2. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    программировать то умеешь?
     
    1 person likes this.
  3. misterzym

    misterzym New Member

    Joined:
    13 Jun 2008
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    средненько, на это уже нехвататет...
     
  4. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    ок. алгоритм примерный то есть у тебя?
     
  5. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    1. ну есть у тебя пасс и ссылка. пишеш их в БД
    2. генеришь ссылку вторую. пишешь в БД
    3. запрашивают у тебя вторую ссылку.
    4. вводят пароль.
    5. сравниваешь ссылку два и пароль из БД
    6. Если все ок. редирект на 1 ссылку.
    7. если нет то шлеш нафиг
     
  6. misterzym

    misterzym New Member

    Joined:
    13 Jun 2008
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    вот с БД мне какраз и не надобы... в этом вся проблема
    ну, я предпологаю, сделать следующим образом: скрипт посто создает страницы по порядковым номерам и выдает на них ссылки, а в самих страницах уже свой маленький скриптик который просто сверяет пасс введенный с тем что в него записали ( никого шифрования ненадо, просто тупо сверку ) и если совпадает то переадресация... ну ет я так на вскидку набрасал
     
  7. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    бред. юзай БД.
     
  8. misterzym

    misterzym New Member

    Joined:
    13 Jun 2008
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    попробую с БД сделать...
     
  9. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    Держи пример, тока что написал, простейший, на ошибки не проверял.

    Дамп БД:
    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: дада, я знаю, что в админке ксс, аффтар пусть сам избавляется от нее ;)
     
  10. misterzym

    misterzym New Member

    Joined:
    13 Jun 2008
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Спасиб большое! ну ошибки то уж я сам проверю, но за пример спасибо!