Помогите, передача данных по форме

IBSN

Новичок
Помогите, неработает if () в function()

Значит так создал (большой кодик):
PHP:
<form name=form method=POST action=>
<input type=hidden name=material value="<?=$material?>">
<input type=hidden name=tip value="<?=$tip?>">
<input type=hidden name=forma value="<?=$forma?>">
<?php
function material() 
{
echo ' Материал: </font><select size="1" onchange="javascript:document.form.submit()" name="material" style="color: #FFFFFF; font-size: 10px; font-family: Tahoma; background-color: #555548; border-style: double; border-color: #555548">
<option value="dub">Дуб</option>
<option value="buk">Бук</option>
<option value="alp">Альп. Ольха</option>
            </select>';
}

function tip() 
{
echo ' Тип двери: </font><select size="1" onchange="javascript:document.form.submit()" name="tip" style="color: #FFFFFF; font-size: 10px; font-family: Tahoma; background-color: #555548; border-style: double; border-color: #555548">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
            </select>';
}

function forma() 
{
echo ' Форма двери: </font><select size="1" onchange="javascript:document.form.submit()" name="forma" style="color: #FFFFFF; font-size: 10px; font-family: Tahoma; background-color: #555548; border-style: double; border-color: #555548">';

if ($tip =="1" & $material =="dub")
{
echo '
<option value="Dp">Dp</option>
<option value="Ds">Ds</option>
<option value="Dr">Dr</option>
<option value="Cz">Cz</option>
';
}

if ($tip =="2" & $material =="dub")
{
echo '
<option value="Dp">Dp</option>
<option value="Dr">Dr</option>
<option value="Cz">Cz</option>
<option value="DGr">DGr</option>
<option value="DGp">DGp</option>
';
}

if ($tip =="3" & $material =="dub")
{
echo '
<option value="Dp">Dp</option>
<option value="Dr">Dr</option>
<option value="Cz">Cz</option>
';
}

if ($tip =="4" & $material =="dub")
{
echo '
<option value="Dp">Dp</option>
<option value="Dr">Dr</option>
<option value="Cz">Cz</option>
<option value="DGr">DGr</option>
<option value="DGp">DGp</option>
<option value="Dr+kratka">Dr+kratka</option>
';
}

if ($tip =="5" & $material =="dub")
{
echo '
<option value="Dp">Dp</option>
<option value="Cz">Cz</option>
';
}
  
          echo '</select>';
}

if ($material <>"" & $tip =="")
{
tip();
}
if ($tip <>"" & $forma =="")
{
forma();
}
if ($material =="" & $tip =="" & $forma=="")
{
material();
}

?>
</form>
Все работает если выбрать - Дуб - 1(2,3...) - но доходит до формы двери и ничего неполучается =(
В чем проблемма???

ПОЧЕМУ НЕ РАБОТАЕТ if() в function()????
 

netdog

net @
1. потому что это супер кривой код
2. Правильнее будет не & А && или and
3. читай про register_globals (faq) & [m]register_globals[/m] (понадобиться)
4. главное в твоем случае читай [m]variables.scope[/m] (область видимости переменных)


5. Пока всё не прочитаешь, сюда не возвращайся ;)
 

Кром

Новичок
Хотя нет, здесь у тебя $tip и $material, локальны, а значит внутри функции они равны 0.
 

IBSN

Новичок
Net Dog
все прочитал, но мне не нужна там безопастность, так как этот сайт расчитан для ламеров, а хакерам там делать вообще нечего =)
 

netdog

net @
1. Дело не только в безопасности... А в правильном написании...
2. Хренова читал про область видимости ... :)

<?php
$a = 'string';

function Test()
{
global $a;

echo $a;
}

test();
?>
 

Кром

Новичок
>решил проблемму поменяв function`ы на if`ы

>все прочитал, но мне не нужна...

Хорошая шутка. Петросян просто нервно курит. IBSN, ты гонишь. Ничего ты не читал. Поэтому проблема твоя не решилась. Что, скрипт работает? Какая удача! Ай да мастер на все руки! Оказывается, то что тебе советуют, полное фуфло, по сравнению с твоим искрометным решением.
Напиши статью об этом. Всем будет интересно узнать про твой виртуозный подход к решению столь нетривиальных проблем.
 

IBSN

Новичок
Net Dog спасибо... я все поменял и поставил global`s - все работает
 

netdog

net @
Ну я же говорю что хреново читал... Всё что я дал, советую таки прочитать пару раз... Решит кучу будущих вопросов. И нервов...
 
Сверху