Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка в активации скрипта по ссылке 
:(
    Опции темы
mr.Anderson
Дата 14.7.2006, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Есть ссылка. По нажатию она запускает PHP скрипт. Ссылка имеет примерно такой вид:
Код

<a href="download.php?file=gm.rar">Скачать</a>

По идее, она должна выполнить скрипт download.php а потом начать закачку файла. Но. Она просто перебрасывает меня на белую страницу, и ничего не делает. И скрипт не выполняет. Вот сам скрипт:
Код

<?php //блок имен файлов-счетчиков

 $c_gm = "counters/gmcounter.txt";
 $c_ed = "counters/edcounter.txt";
 $c_cd = "counters/cdcounter.txt";
 $c_tm = "counters/tmcounter.txt";

?>

<?php //блок функций

 function SetCounter( $f )
 {
  $f = fopen( $f, "a+" );
  FLOCK( $f, LOCK_EX );
  
  $tmp = trim( fread( $f, 10 ) );
  
  ftruncate( $f, 0 );
  fseek( $f, 0L, SEEK_SET );
  
  ++$tmp;
  fputs( $f, $tmp );

  FLOCK( $f, LOCK_UN );
  fclose( $f );
 }

?>

<?php //главный блок

 $str = $_SERVER['QUERY_STRING'];
 $str = substr( $str, 5 );
 
 if( $str == "guitarmastertrial.rar" )
  SetCounter( $c_gm );

 elseif( $str == "everyday.rar" )
  SetCounter( $c_ed );
  
 elseif( $str == "coder.rar" )
  SetCounter( $c_cd );
  
 elseif( $str == "timer.rar" )
  SetCounter( $c_tm );
  
 else
  echo "Unknown filename!";
  
?>


Добавлено @ 21:52 
Добавлю, что этот скрипт находится в корневой директории сайта, а скачиваемые файлы - в директории download. Вот скрипт со страницей, содержащей ссылки на файлы:
Код

<?php
include_once("modules/nav.htm");

function GetCount( $file )
{
 if( ! File_Exists( $file ) )
 {
  $f = fopen( $file, "w" );
  FLOCK( $f, LOCK_EX );
  fputs( $f, "0" );
  FLOCK( $f, LOCK_UN );
  fclose( $f );
 }

 $f = fopen( $file, "r" );
 FLOCK( $f, LOCK_EX );
 
 $count = trim( fgets( $f, 10 ) );

 FLOCK( $f, LOCK_UN );
 fclose( $f );
 
 echo "<font color='blue'>($count)</font>";
}
?>

  <td class="section"> <!-- PROGRAMS SECTION -->
  
   <table width="100%" border="1"> <!-- GREETINGS TABLE -->
    <tr>
     <td class="logo">
      Íàøè ïðîãðàììû
     </td>
    </tr>
     
    <tr>
     <td class="content"><br>
      <?=Tab()?>
      Â ýòîì ðàçäåëå ñîáðàíû âñå ðàçðàáîòêè <b>HomeMaster Studio<sup>TM</sup></b>. Íèæå ðàçìåùåíû íàçâàíèÿ ïðîãðàìì è èõ êðàòêèå îïèñàíèÿ.
      ×òîáû ïðîñìîòðåòü ïîëíîå îïèñàíèå, ïåðåéäèòå ïî ñîîòâåòñòâóþùåé ññûëêå íèæå îïèñàíèÿ.
      <br><?=Tab()?>Ðÿäîì ñ íàçâàíèåì ïðîãðàììû óêàçàíî, ñêîëüêî ðàç îíà áûëà ñêà÷àíà.
      <br><?=Tab()?>×òîáû ñêà÷àòü ïðîãðàììó, äîñòàòî÷íî ùåëêíóòü íà åå íàçâàíèè.<br>
      <?=Tab()?>Âñå ïëàòíûå ðàçðàáîòêè èìåþò òðèàë-ïåðèîä â 1 íåäåëþ. Èíñòðóêöèÿ ïî îïëàòå ïðîãðàììû 
      è ïîëó÷åíèþ êëþ÷à âëîæåíà â àðõèâ ñàìîé ïðîãðàììû.<br>
     </td>
    </tr>
   </table> <!-- END OF GREETINGS TABLE -->
   
   <br> <!-- PROGRAMS TABLES -->
   <table width="100%" border="1"> <!-- Guitar Master -->
    <tr><td class="logo">
     <a href="download.php?file=guitarmastertrial.rar">Ñàìîó÷èòåëü èãðû íà ãèòàðå</a> <?GetCount( "counters/gmcounter.txt" );?>
     <br><i>ShareWare, 30 ðóá</i>
     <br>(ðàçìåð 23 Ìá)
    </td></tr>  
    
    <tr><td class="content"><br>
     <?=Tab()?>Ýòà ïðîãðàììà îòëè÷àåòñÿ îò áîëüøèíñòâà ñàìîó÷èòåëåé, êîòîðûå ìîæíî íàéòè â èíòåðíåòå. Àáñîëþòíîå áîëüøèíñòâî 
     ñàìîó÷èòåëåé îáó÷àþò èãðàòü ïî íîòàì, ò.å. èñïîëíÿòü êëàññè÷åñêóþ ìóçûêó. Íàøà ïðîãðàììà îáó÷àåò èãðàòü ïî àêêîðäàì, áåç 
     çíàíèÿ íîò. Òàêîé ìåòîä èãðû ïîçâîëÿåò íàó÷èòüñÿ èãðå áûñòðî (âñåãî çà 1 ìåñÿö âû áóäåòå èãðàòü äîâîëüíî ñíîñíî, ÷åðåç ïîëãîäà 
     óæå áóäåòå èãðàòü íàìíîãî ëó÷øå, à ÷åðåç ãîä ñàìè óäèâèòåñü, êàê õîðîøî ó âàñ ïîëó÷àåòñÿ èñïîëíÿòü ïåñíè), ïëþñ âû íàó÷èòåñü 
     èñïîëíÿòü íå êëàññèêó, à îáû÷íûå ýñòðàäíûå, ïîõîäíûå, ïðàçäíè÷íûå è äð. ïåñíè.
     <p align="right"><a href="gm.php">[÷èòàòü ïîëíîå îïèñàíèå]</a><br><a href="gm_buy.php">[êóïèòü]</a></p>
    </td></tr>
   </table> <!-- END OF Guitar Master -->
   
   <br>
   <table width="100%" border="1"> <!-- EveryDay -->
    <tr><td class="logo">
     <a href="download.php?file=everyday.rar">Åæåäíåâíèê (îðãàíàéçåð)</a> <?GetCount( "counters/edcounter.txt" );?>
     <br><i>ShareWare, 20 ðóá</i><br>(ðàçìåð 1.5 Ìá)
    </td></tr>
    
    <tr><td class="content">
     <br><?=Tab()?>
      Ñîáñòâåííî íàçíà÷åíèå ïðîãðàììû ïîíÿòíî èç íàçâàíèÿ. Ãëàâíûì îòëè÷èåì ýòîé ïðîãðàììû îò ìîùíûõ êîðïîðàòèâíûõ ðàçðàáîòîê Microsoft 
      ÿâëÿåòñÿ ìàëåíüêèé îáúåì. Â "Åæåäíåâíèêå" îáúåäèíåíû òîëüêî ñàìûå íåîáõîäèìûå ôóíêöèè - áëîêíîò, òåëåôîííûé ñïðàâî÷íèê è õðàíèòåëü 
      ñîáûòèé ñ âîçìîæíîñòüþ îïîâåùåíèÿ. Ïðîãðàììà èìååò øèðîêèé ñïåêòð íàñòðîåê, â êîòîðûå âõîäÿò íàñòðîéêè âíåøíåãî âèäà, íàñòðîéêè 
      ïîèñêà è îïîâåùåíèé.
      <p align="right"><a href="ed.php">[÷èòàòü ïîëíîå îïèñàíèå]</a><br><a href="ed_buy.php">[êóïèòü]</a></p>
    </td></tr>
   </table> <!-- END OF EveryDay -->
   
   <br>
   <table width="100%" border="1"> <!-- Coder -->
    <tr><td class="logo">
     <a href="download.php?file=coder.rar">Øèôðîâùèê</a> <?GetCount( "counters/ccounter.txt" );?>
     <br><i>FREEWARE</i>
     <br>(ðàçìåð 1.2 Ìá)
    </td></tr>  
    
    <tr><td class="content"><br>
     <?=Tab()?>Ïðîãðàììà ïðåäíàçíà÷åíà äëÿ øèôðàöèè äàííûõ. Ðàçóìååòñÿ, åå íàäåæíîñòü íàìíîãî íèæå, ÷åì ó ìîùíûõ ïðîãðàìì 
     àíàëîãè÷íîãî íàçíà÷åíèÿ. Íî ó íåå òàêæå ìåíüøå ðàçìåð, ïëþñ îíà áåñïëàòíà. "Øèôðîâùèê" âïîëíå ïîäîéäåò äëÿ øèôðàöèè äàííûõ 
     íåáîëüøîé âàæíîñòè, íàïðèìåð, ïåðåïèñêè ïî ICQ èëè ñèñòåìàì ËÑ íà ôîðóìàõ. Àëãîðèòìû, èñïîëüçîâàííûå â ïðîãðàììå, âçëîìàòü âïîëíå 
     âîçìîæíî, ïîýòîìó, ïîâòîðþñü, åé ëó÷øå øèôðîâàòü íå ñåêðåòíóþ èíôîðìàöèþ.<br>&nbsp;&nbsp;&nbsp; ïðîãðàììå ïðèñóòñòâóåò òðè 
     àëãîðèòìà øèôðîâàíèÿ, âû âîëüíû âûáðàòü ëþáîé, êàêîé âàì áîëüøå íðàâèòñÿ.
     <p align="right"><a href="coder.php">[÷èòàòü ïîëíîå îïèñàíèå]</a></p>
    </td></tr>
   </table> <!-- END OF Coder -->
   
   <br>
   <table width="100%" border="1"> <!-- Timer -->
    <tr><td class="logo">
     <a href="download.php?file=download/timer.rar">Òàéìåð + ñåêóíäîìåð</a> <?GetCount( "counters/tcounter.txt" );?>
     <br><i>FREEWARE</i><br>(ðàçìåð 259 Êá)
    </td></tr>
    
    <tr><td class="content">
     <br><?=Tab()?>
      Ýòî î÷åíü ïðîñòàÿ è ìàëåíüêàÿ ïðîãðàììà. Èìååò äâà ðåæèìà ðàáîòû - òàéìåð (îòñ÷èòûâàåò âðåìÿ "íàçàä" îò çàäàííîãî) è ñåêóíäîìåð 
      (çàìåðÿåò âðåìÿ ñ òî÷íîñòüþ äî òûñÿ÷íûõ ñåêóíäû). Äëÿ ñèñòåì Windows 98 èìååòñÿ âîçìîæíîñòü îòêëþ÷åíèÿ êîìïüþòåðà ïîñëå îêîí÷àíèÿ 
      âðåìåíè â ðåæèìå òàéìåðà.
      <p align="right"><a href="timer.php">[÷èòàòü ïîëíîå îïèñàíèå]</a></p>
    </td></tr>
   </table> <!-- END OF Timer -->
   
  </td> <!-- END OF PROGRAMS SECTION -->

<?php
include_once("modules/info.htm");
?>

На абракадабру не обращайте внимания, не имеет значения. 

Это сообщение отредактировал(а) sim7 - 14.7.2006, 21:45


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
UzerPHp
Дата 14.7.2006, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Код

20:  fseek( $f, 0L, SEEK_SET );

 у меня ругается на эту строку а именно на  0L может в этом ошибка? 
PM MAIL   Вверх
mr.Anderson
Дата 14.7.2006, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Эту ошибку я уже нашел, не в этом дело.

Добавлено @ 22:07 
Скорее всего, неправильно указан параметр в ссылке в ?file=... . Скорее всего. 


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Guedda
Дата 14.7.2006, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



Попробуй это
Код

$str = $_SERVER['QUERY_STRING'];


заменить этим:
Код

$str = $_GET['file'];


Добавлено @ 23:34 
либо этим:
Код

$str = $HTTP_POST_VARS['file'];

если, конечно, у тебя php версии 4 


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0667 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.