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

Форум PHP

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

 

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

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

тема: Программа FileCounter из книги PHP Практика создания Web-сайтов
 
 автор: Veli   (20.03.2006 в 14:01)   письмо автору
 
 

Здравствуйте.
Я недавно начал читать книгу и на данный момент времени столкнулся с проблемой правильной работы скрипта "счетчик загрузки файлов с сервера" или FileCounter как она названа в книге.
Вопрос в следующем: файл counter.php начинается со следущих строк
<?
$down_file=array();
$down_name=array();

$down_file['test.zip'] = "http://localhost/filecounter/test.zip";
$down_name['test.zip'] = "Имя файла";

if($_GET['down']!="")
{
if (array_key_exists($_GET['down'],$down_file))
{
//соединение с базой даннных
require_once("config.php");
// учитываем закаченный файл
// выясняем первичный ключ (id_page), соответствующий закачиваемоему файлу
$query = "SELECT * FROM files WHERE name='".$_GET['down']."'";
$fls = @mysql_query($query);
.................

Дак вот. Строка if($_GET['down']!=""). Я не могу сообразить, с чем связано слово в квадратных скобках ['down']. До этого мы как бы с ним не работали, а здесь оно уже проверяется!
Из-за этого при загрузке скрипта вылазит следующая ошибка:
Notice: Undefined index: down in z:\home\localhost\www\filecounter\counter.php on line 9

Помогите, кто знает. Наверное вопрос адресован в первую очередь людям, знакомым с данной книгой. Спасибо.

   
 
 автор: Duran   (20.03.2006 в 14:22)   письмо автору
 
   для: Veli   (20.03.2006 в 14:01)
 

$_GET -это массив, который содержит переменные, типа GET, т.е. переданные через URL. Например : http://site.php?down='wasya.zip'

На стороне сервера в массив $_GET будет добавлена переменная down со значением 'wasya.zip'

Естественно, опросить эту переменную можно и ассоциативно, т.е.:
$per= $_GET['down']

Дык вот, если использовать форму с передачей данных по GET или прямо набрать в адресной строке вашу переменную выше указанным синтаксисом (со знаком вопроса), то все заработает. Судя по вашему примеру, эта переменная должна содержать 'test.zip'

   
 
 автор: cheops   (20.03.2006 в 14:34)   письмо автору
 
   для: Veli   (20.03.2006 в 14:01)
 

notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
?>

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985

   
Rambler's Top100
вверх

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