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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Загрузка файлов и счетчик
 
 автор: Евгений_М   (23.01.2009 в 10:38)   письмо автору
 
 

Здравствуйте!!! У меня не получается следующие:

в файле index.php есть ссылка на файл download.php
(<a href='download.php?id=%s>Загрузить</a>)%s это-id

в download.php след.код

<?php
include ("config.php");
if (isset($_GET['id'])) {$id = $_GET['id'];}

$result = mysql_query("select link,counter from files where id='$id'",$db);

if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел.<br><strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result);

$new_counter = $myrow['counter']+1;
$update = mysql_query("UPDATE files SET counter = '$new_counter' WHERE id='$id'",$db);
}
if ($update)
{

echo "<html><head>
<meta http-equiv='Refresh' content='0; URL=$link'>
</head></html>";
exit();

}

else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>

при нажатие на ссылку открывается файл download.php и начинает бесконечно обновляться при этом загрузки файла не происходит, подскажите где допустил ошибку???
Спасибо!!!

  Ответить  
 
 автор: Николай2357   (23.01.2009 в 11:04)   письмо автору
 
   для: Евгений_М   (23.01.2009 в 10:38)
 

Постоянно обновляется, потому что не указан урл, но советую обратить внимание еще на эти поправки:
1. Переменную из массива GET нужно привести в соответствие.
2. Не стоит выводить информацию об ошибках, и тем более о структуре базы, если конечно это не отладочный вариант
3. Использовать лучше header, нежели метатег.
4. Не стоит менять показания счетчика в php. MySQL умеет делать это сам.
5. Струтура немного некорректна, так как изменит показания счетчика вне зависимости от того, удачно прошла загрузка или вообще не прошла.

<?php 
include ("config.php");
$id = isset($_GET['id'])?intval($_GET['id']):null;

$result mysql_query("SELECT link FROM files WHERE id='$id'",$db);

/*if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел.<br><strong>Код ошибки:</strong></p>";
exit(mysql_error());
}*/

if (mysql_num_rows($result) > 0)

{
$myrow mysql_fetch_array($result); 

$update mysql_query("UPDATE files SET counter = counter+1 WHERE id='$id'",$db); 
}
if (
$update)
{
header("location: ".$myrow['link']);
/*echo "<html><head>
<meta http-equiv='Refresh' content='0; URL=$link'>
</head></html>";*/
exit();

}

else
{
echo 
"<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>

  Ответить  
 
 автор: Евгений_М   (23.01.2009 в 11:11)   письмо автору
 
   для: Николай2357   (23.01.2009 в 11:04)
 

ОООгромное спасибо!!! все работает!!!

  Ответить  
 
 автор: Евгений_М   (23.01.2009 в 11:14)   письмо автору
 
   для: Николай2357   (23.01.2009 в 11:04)
 

ну да это скорее счетчик кликов ну на первое время пойдет!!!

  Ответить  
Rambler's Top100
вверх

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