Отправляет email-рассылки с помощью сервиса Sendsay

За 2007-04-14

Re[2]: PHP

Д> http://test1.ru/catalog.php?rubr=1
Д> В этом случае Денвер присвивает ей значение 1.
Д> Но этого почему-то не происходит при закачке файла на сервер.
Д> Подскажите, пожалуйста, в чём причина и как исправить ситуацию.

На сервере отключено register_globals
http://ru.php.net/results.php?q=register_globals&l=ru&p=wholesite

И это правильно (почему - написано там же).

Решение в-тупую:
получать это значение внутри php из $_REQUEST[...]

Правильное решение:
написать класс-оболочку массива $_REQUEST, управляющую допустимыми
значениями, что-нибудь вроде этого:

class FRequest
{

private $R;
private $filters;

function __construct($Request=array())
{
$this->R=$Request;
}

function addFilter($param,$filter_string)
{
$this->filters[$param]=$filter_string;
}

function get($param)
{
return preg_replace($this->filters[$param],'',$this->R[$param]);
}

}

и использовать:

$FRequest=new FRequest($_REQUEST);
$FRequest->addFilter('rubr','[^(0-9)]'); // параметр rubr может быть только
числовым
$rubr=$FRequest->get('rubr');

Надеюсь, что вышеприведенные решения Вам помогут, поэтому позволю себе
пару слов о философии :-)

Конечно, это решение написано из головы (т.е. не проверялось), так как
оно слишком простое, работает только с плоским массивом, и годится
только для программы из 10 строчек. Суть - в самой идее. Использовать
переменные и массивы годится только для институтской лабы: сдал и
забыл. В коммерческом программировании надо понимать, что любое
значение (число, строка, массив, ...) является объектом языка
(и объектом бизнес-модели) со своими методами доступа.

Денвер развращает. Программиста, использующего денвер, я бы даже
не пригласил на собеседование.

   2007-04-14 12:44:03 (#656875)

Re: CMS

> Посоветуйте, пожалуйста, сабж для некоммерческого использования типа как здесь:
> http://dle-news.ru/
> http://pc-soft.ru/
> http://www.igram.net/

> т.е чтобы было известно кто автор новости, когда написано и была возможность
> писать коментарии
> Желательно с русским меню в панели управления

Joomla
www.joomlaportal.ru
www.joom.ru

   2007-04-14 11:53:29 (#656862)

Re: CMS

Drupal подойдёт

> Посоветуйте, пожалуйста, сабж для некоммерческого использования типа как
здесь:

   2007-04-14 08:51:58 (#656819)

Re: PHP

не используйте глобальные переменные - это не хорошо.
Вместо этого писать:

switch ($_POST['rubr']) {
.....
}
Ибо при аплоаде данные передаются по POST

   2007-04-14 08:43:31 (#656818)

Re: PHP

Здравствуйте,

Выяснилось, что не определяется значение переменной
$rubr. Присвоение ей значения производится при переходе по ссылке:
http://test1.ru/catalog.php?rubr=1

В этом случае Денвер присвивает ей значение 1.
Но этого почему-то не происходит при закачке файла на сервер.
Подскажите, пожалуйста, в чём причина и как исправить ситуацию.

заранее благодарен,
Дмитрий

Д> Здравствуйте,
Д> подскажите, пожалуйста, по какой причине ниже приведённый код
Д> не работает после закачки файлов на сервер, но замечательно работает в Денвере?

Д> <? switch ($rubr)
Д> { case 1: $opn='01divan.txt';break;
Д> case 2: $opn='02stoyki.txt';break;
Д> case 3: $opn='03korpus.txt';break;
Д> case 4: $opn='04gurnal.txt';break; } //проверяем переменную
Д> $rubr

Д> $count = 1;
Д> $sub = fopen ("catalog/$opn","r"); //в зависимости
от
Д> её значения, открываем разные файлы
Д> while ($data = fgetcsv ($sub, 1000, "|"))
Д> {
Д> $num = count ($data);
Д> $count++;
Д> for ($i=0; $i < $num; $i++)
Д> { print "<table width='100%' border='0'
Д> cellpadding='0'><tr><td class='f4'><img
Д> src='img/cupboards/$data[$i].gif' width='120' height='120' align='left' hspace='10'
vspace='12'>><br>";
Д> $i++;
Д> print "<strong>$data[$i]</strong><br>";
Д> $i++;
Д> print "$data[$i]<br>";
Д> $i++;
Д> print "$data[$i]<br>";
Д> $i++;
Д> print "<a href='http://$data[$i]'>$data[$i]</a><br>";
Д> print "</td></tr></table>"; // отображаем
информацию
Д> в браузере
Д> }
Д> }
Д> fclose ( $sub );
?>>

Д>



библиотекa сайтостроительства http://www.i2r.ru/static/244/

   2007-04-14 08:30:55 (#656816)