Использование $_GET в php

koval2001

Новичок
Изменение переменной

Если я прописываю переменную напрямую в пхп файле , например
$imagefolder = 'animal';

файл выполняется правильно.

А если я в файле пхп прописываю переменную как:
$imagefolder = $_GET[imagefolder];

и посылаю эту переменну через ссылку
mysite.ru/index.php?imagefolder=animal
файл выполняется неправильно. Как правильно отправить переменную в файл ?

И такой вопрос, мне интерессно. У меня эта переменная $imagefolder = 'animal'; прописана в файле var.php. Далее этот файл с этой переменной инклудед в два других фала через:
require('includes/vars.php');

Так, вот если переменная четко прописана в var.php как $imagefolder = animal'; тогда все работает.
А если переменная 'плавающая' берется из url как $imagefolder = $_GET[imagefolder]; То она может теряться при переходе из var.php в ипользующие его файлы? И как сделать, что бы она не терялась?
 

dimagolov

Новичок
koval2001, выучи синтаксис для начала. кроме того:
1. не $_GET[imagefolder], а $_GET['imagefolder']
2. переменной в $_GET может и не быть, надо делать isset($_GET['imagefolder'])
3. почему там, где тебе нуже $imagefolder не писать так:
PHP:
 isset($_GET['imagefolder']) ? $_GET['imagefolder'] : $imagefolder
то есть если получили параметр, то его используем, а если нет, то предопределенное значение?

НО! использовать для построения путей в ФС полученные от пользователя значения НЕЛЬЗЯ! Надо делать примерно так:
PHP:
$folders= array ( 0=> 'other' , 1 => 'animal', 2 => 'car', 3 => 'nature', 4 => 'people');
...
$curfolder= isset($_GET['imagefolder']) && isset($folders[$_GET['imagefolder']])? $folders[$_GET['imagefolder']] : $folders[0];
и в параметрах передавать id директории
 

koval2001

Новичок
Круто!Огромное спасибо,dimagolov, все работает.

-~{}~ 01.10.09 19:17:

Автор оригинала: С.
Как ты это определил?
У меня в скрипте все просто, там картинка либо появляется либо нет )

-~{}~ 02.10.09 10:25:

У меня этот способ работает частично. Почему то теряется значение полученной таким образом переменной на третьем файле.
(я использую масив, но для простоты опишу проблему старым способом)
Т.е. у меня в vars.php описана эта переменная $_GET['imagefolder']
далее я вызываю ее
www.mysite.ru/index.php?imagefolder=animal
в файле index.php, я получаю то, что мне надо, но после отправки данных из index.php в файл newfile.php, этот новый файл использует не animal, а значение по умолчанию (в этом файле есть такде внутри работа со своим $_GET).

Каким способом, кроме, GET мне лучше менять значение этой переменной $imagefolder, что бы оно не терялось. Повторюсь, если прописываю четко $imagefolder='animal' в vars.php, то все работает.
 

Фанат

oncle terrible
Команда форума
я использую масив, но для простоты опишу проблему старым способом)
не надо описывать.
ты напиши
три скрипта, работающих так, как ты сейчас описал
и убедись, что все работает, как надо.
следовательно, проблема в этом "упрощении". которое тебе и надо исправлять
 
Сверху