Подскажите как объявить переменную

gadz

Новичок
Подскажите как объявить переменную

Подскажите как правильно объявить глобальную переменную

в php 4 ошибка не выходила.
установил PHP Version 5.2.11

выходит ошибка Notice: Undefined variable: op in G:\apache\localhost\www\1\get.php on line 57
можно посмотреть тут http://81.24.82.17/1/elman/


PHP:
<?php 



function MainForm() 
{ 



echo "<FORM ACTION=\"get.php\" METHOD=\"POST\" enctype=\"multipart/form-data\">" 
."<input type=hidden name=\"op\" value=\"sendform\">" 
    ."Введите URL файла который собираетесь скачать<br>" 
    ."<input type=\"text\" name=\"fio\" size=\"100\"><br>" 
    ."Введите место назначения файла либо полный ftp адрес либо <b>./каталог/</b> если качаете на свой сайт<br>если оставите поле пустым загрузка произойдет в папку <b>download</b><br>" 
    ."<input type=\"text\" name=\"fio1\" size=\"100\"><br>"  
    ."<input type=\"submit\" name=\"Submit\" value=\"Получить файл\">" 
    ."</form>"; 
echo ""; 
} 

function sendform($fio, $fio1) 
{ 

  $fn = $fio; 
  $handle = fopen ($fn, 'rb'); 
  $contents = ""; 
  if(!$handle) 
    echo 'Не могу открыть исходный файл'; 
  else 
  { 
    while(!feof($handle)) 
    { 
      $data = fread($handle, 8192); 
      $contents .= $data; 
    } 
    fclose ($handle); 
    if ($fio1=="") $fio1 = "/apache/localhost/www/1/download/elman/"; 
    $handle = fopen ($fio1 . basename($fn), 'wb'); 
    if(!$handle) 
      echo 'Не могу создать записать файл'; 
    else 
    { 
      fwrite($handle, $contents); 
      fclose($handle); 
      echo 'Передача завершена'; 
    } 
  } 
print "<br><p><a href=get.php>Назад </a></p>"; 

} 

switch($op) {      /*  по этой переменной выходит ошибка*/
    case "sendform": 
    sendform($fio,$fio1); 
    break; 

    default: 
    MainForm(); 
    break; 
} 

?>
 

Adelf

Administrator
Команда форума
register_globals + гугл


Неужели так много книг и всяких туториалов, которые проповедуют стиль с register_globals?
 

dimagolov

Новичок
gadz, ты статью по ссылке читал? там же все подробно расписано!!!
 

gadz

Новичок
читаю

-~{}~ 14.12.09 19:16:

все равно не видит когда пишу switch($_POST['op']) ошибка

Notice: Undefined index: op in G:\apache\localhost\www\1\elman\get.php on line 56
 

gadz

Новичок
это я понял и чтотеперь делать?
разделять форму и скрипт?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Мей-би проверять определена ли?
 

gadz

Новичок
сейчас попоробую isset как посоветовали

-~{}~ 14.12.09 19:54:

Мистер ты гений
Выглядит уже не так солидно, но работает.
в функции поменял $fn = $_POST['fio'];

и вместо switch оператор if

if (!isset($op)) {
mainform(); ;
}
if (isset ($op)) {
sendform($fio,$fio1);
}



а суперглобальные массивы работают на ранних PHP 2, 3 и 4?
 

gadz

Новичок
работала и до этого , только ошибка в дизайн сайта не вписывалась ))
 

dimagolov

Новичок
gadz, я понимаю, что ты из Дагестана, но даже там PHP 2, 3 и 4 должны встречаться крайне редко. Хотя бы потому, что даже поддержка PHP 4 закончилась в августе 2008 года, то есть почти полтора года тому назад.
 
Сверху