Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Генерация ссылок

Сообщения:  [1-10]   [11-11] 

 
 автор: Unkind™   (01.06.2006 в 12:26)   письмо автору
 
   для: cheops   (01.06.2006 в 03:13)
 

Ясно...)

   
 
 автор: cheops   (01.06.2006 в 03:13)   письмо автору
 
   для: Unkind™   (31.05.2006 в 13:05)
 

>SELECT * FROM tbl WHERE ... ORDER BY RAND() LIMIT 5
>Не понял...И что вернет?
5 случайных записей из таблицы tbl, удовлетворяющих условию WHERE.

   
 
 автор: Unkind™   (01.06.2006 в 02:06)   письмо автору
 
   для: Diablo_   (01.06.2006 в 00:23)
 

А! Так скрипт для ламеров? Чего молчали?)

   
 
 автор: Diablo_   (01.06.2006 в 00:23)   письмо автору
 
   для: Unkind™   (31.05.2006 в 23:17)
 

Ну Вам то всё под силу, а вот ламерам, нет!:)

   
 
 автор: Unkind™   (31.05.2006 в 23:17)   письмо автору
 
   для: Diablo_   (31.05.2006 в 19:54)
 

Там где закодировать, там и раскодировать не трудно...=)

   
 
 автор: Diablo_   (31.05.2006 в 19:54)   письмо автору
 
   для: Unkind™   (31.05.2006 в 13:05)
 

А может быть можно как-то с помощью MD5 закодировать???
точнее, закодировать у меня получилось, а вот скачать по этой ссылке, не получается!

   
 
 автор: Unkind™   (31.05.2006 в 13:05)   письмо автору
 
   для: cheops   (31.05.2006 в 13:00)
 

SELECT * FROM tbl WHERE ... ORDER BY RAND() LIMIT 5
Не понял...И что вернет?

   
 
 автор: cheops   (31.05.2006 в 13:00)   письмо автору
 
   для: Diablo_   (31.05.2006 в 12:10)
 

Они скрее всего генерируются при помощи конструкции ORDER BY RAND()
SELECT * FROM tbl WHERE ... ORDER BY RAND() LIMIT 5

   
 
 автор: Unkind™   (31.05.2006 в 12:50)   письмо автору
 
   для: Diablo_   (31.05.2006 в 12:10)
 

Например:

order.php

<?php
include "config.php";

header ("Content-type:text/html; charset=windows-1251");

//ID файла, отправленного с формы
$id htmlspecialchars($_POST['id']);

$q mysql_query("SELECT * FROM catalog WHERE id='".$id."' LIMIT 1);
if(myqsl_affected_rows(
$q) == 0)
{
echo "
<html>
<
head><title>Ошибка</title></head>
<
body>
Файлакоторый вы заказали нет в каталоге.<br/>
</
body></title>";
exit();
}
else
{
while(
$var == mysql_fetch_array($q))
{
$name = $var['type'];
$type = $var['type'];
}
}
echo "
<html>
<
head><title>Скачивание файла</title></head>
<
body>";
$rand = rand(10000000, 99999999);
mysql_query("
INSERT INTO orders VALUS(0'".$id."''".$rand."');
echo 
"Вы заказали ".$name." (".$type.")<br/>";
echo 
"Скачать файл можно по этой ссылке:<br/>";
echo 
"<a href="download.php?id=".$rand.">DOWNLOAD</a><br/>";
echo "
</body></title>";
?>


download.php

<?php
include "config.php";
$rand htmlspecialchars($_GET['id']);
$query mysql_query("SELECT * FROM orders WHERE rand='".$rand."');
if(myqsl_affected_rows() == 0)
{
header ("
Content-type:text/htmlcharset=windows-1251");
echo "
<html>
<
head><title>Ошибка</title></head>
<
body>
Вы не заказывали этот файл<br/>
</
body></title>";
exit();
}
else
{
$sql = mysql_query("SELECT id FROM order WHERE rand='".$rand."');
$id mysql_result($sql0);
$q mysql_query("SELECT type, link FROM catalog WHERE id='".$id."' LIMIT 1);
if(myqsl_affected_rows(
$q) == 0)
{
header ("
Content-type:text/htmlcharset=windows-1251");
echo "
<html>
<
head><title>Ошибка</title></head>
<
body>
Файлакоторый вы заказали нет в каталоге.<br/>
</
body></title>";
exit();
}
else
{
while(
$var = mysql_fetch_array($q))
{
$type = $var['type'];
$link = $var['link'];
}
}
header ("
Content-type".$type."");
$file = fopen($link, "r");
fpassthru(
$file);
//Удаление из таблицы заказов
$delete_query = mysql_query("DELETE FROM orders WHERE rand='".$rand."'");
?>

Нужно две таблицы orders (заказы) и catalog (каталог файлов с полями type - тип файла и link - его местоположением)...

   
 
 автор: RV   (31.05.2006 в 12:42)   письмо автору
 
   для: Diablo_   (31.05.2006 в 12:10)
 

Ну например так.
links.php

<?
$file 
$_GET['file'];

$sql "SELECT * FROM file_tables WHERE file_id = $file";

$result fetch_array($sqlMYSQL_ASSOC);

if (
$result['time'] > $spec_time
{
                
// срок годности вышел. ссылка померла
}
else
{
                
header("Location: path/to/file/" $result['file_name']);
}
?>

имеем ссылку links.php?file=1234567890qwertg
таблица file_tables состоит из метки времени, настоящего пути до файла, фиктивного пути до файла (1234567890qwertg).
первое что пришло в голову. можно еще постоянно переименовывать файлы и давать им имена типа md5(time()).rar чтобы обломить прямые ссылки

   

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования