Помогите, плз, с ПХП скриптом

X

XaocLord

Вот сам скрипт:
PHP:
<?
  $extension = ""; 		
  $counterdir = "../counters/"; 
  $textfont = "Verdana,Tahoma";  

  if (file_exists("$get$extension"))
       {
        header("location: $get$extension"); 
	$file = fopen("$counterdir/$get.txt","r");  
	$count = fread($file, 100);	
	$countplus = ($count + 1);	
        fclose($file);			
	$fileb = fopen("$counterdir/$get.txt","w"); 
	fwrite($fileb, $countplus, 100);
	fclose($fileb);
       }
  else 	echo "<font face=$textfont size=2>";
	echo "<center><br><br> Невозможно скачть файл <b>$get$extension</b><br>";
	
?>

Не хочет он увеличивать счетчик :( обращаюсь я к нему по
PHP:
<a href="download.php?get=имя файла">
Помогите, плз.
Заранее благодарен.
 

Malay

Member
Joined
Feb 6, 2004
Messages
32
Reaction score
1
Location
Одесса
Website
www.sf.biz.ua
Опусти строчку header("location: $get$extension");
в самый низ этого условия, поставь перед закрывающей скобкой }
 

Nestr

Member
Joined
Apr 7, 2006
Messages
61
Reaction score
13
Location
Odessa
<?

$extension = ".txt";
$counterdir = "counters/";
$textfont = "Verdana,Tahoma";
if (file_exists("$counterdir$get$extension"))
{
header("location: $counterdir$get$extension");
$file = fopen("$counterdir$get$extension","r");
$count = fread($file, 100);
$countplus = ($count + 1);
fclose($file);
$fileb = fopen("$counterdir$get$extension","w");
fwrite($fileb, $countplus, 100);
fclose($fileb);
}
else echo "<font face=$textfont size=2>";
echo "<center><br><br> Íåâîçìîæíî ñêà÷òü ôàéë <b>$get$extension</b><br>";

?>
 

Skif®

Member
Joined
Feb 2, 2006
Messages
9
Reaction score
1
Location
Москва
Какой клевый скрипт.
Во-первых, к переменным следует обращаться по-другому (даже если register_globals включено), а именно:
$get = $_GET["get"];
Во-вторых. Там fopen, а get передает прямое название файла. Сделай что-нибудь вроде этого:
if ( !preg_match("#^[A-Z0-9a-z\-\_\.]+$#", $get) ) {
die("Failed");
}

тогда у тебя в параметре get можно будет передавать лишь символы входящие в интервалы A-Z, a-z, 0-9 еще нижнее подчеркивание "_" и точку.
В-третьих. У тебя там следующий код:
else echo "<font face=$textfont size=2>";
echo "<center><br><br> Невозможно скачть файл <b>$get$extension</b><br>";

Как я понял, эти две строчки должны печататься вместе (а иначе у тебя будут проблемы с хидерами), следовательно их нужно заключить в скобки, как единый блок:

else {
echo "<font face=$textfont size=2>";
echo "<center><br><br> Невозможно скачть файл <b>$get$extension</b><br>";
}
 
Top